Ai Podcast Voiceover logo

Ai Podcast Voiceover

CommunityPopular
sickn33
ai-podcast-voiceover

Install and use the official AI Podcast Voiceover package, pinned by digest, for paid hosted work on the Beatra service.

Overview

Publishersickn33
Repositoryagentic-awesome-skills
Skill nameai-podcast-voiceover
Stars
47.1K
Forks
6.9K
Bundled files
Instructions only
LicenseMIT-0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by sickn33 on GitHub. Read the source before you install it.

Installation

Install the Ai Podcast Voiceover AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/sickn33/agentic-awesome-skills/tree/main/plugins/agentic-awesome-skills-claude/skills/ai-podcast-voiceover
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/sickn33/agentic-awesome-skills.git /tmp/agentic-awesome-skills
mkdir -p .claude/skills
cp -r /tmp/agentic-awesome-skills/plugins/agentic-awesome-skills-claude/skills/ai-podcast-voiceover .claude/skills/ai-podcast-voiceover
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Ai Podcast Voiceover in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Ai Podcast Voiceover on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Ai Podcast Voiceover is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

AI Podcast Voiceover Skill

Overview

Turn an article, notes, or a finished script into a solo podcast episode with a consistent host voice, natural pacing, pronunciation control, and an MP3 you can publish, from inside Claude Code, Codex, or OpenClaw. The work is produced on the hosted, paid Beatra service (mcp.beatra.ai).

This catalog entry is a reviewed pointer, not the executable package. It contains no client code and performs no Beatra operation by itself. The package it points to bundles three standard-library Python scripts that make network calls, store a credential, and can replace their own files. Read Install and Security & Safety Notes before activating it.

Pinned identityValue
Packageai-podcast-voiceover 0.1.7
Archivehttps://cdn.beatra.ai/agent-packages/ai-podcast-voiceover/v0.1.7/ai-podcast-voiceover-skill-0.1.7.zip
Archive SHA-256571a9b48f7e32e5350a4916f502ed78c66b16f6bffdde33dda1c4c1b00996c87
Source treebeatra-ai/ai-podcast-voiceover-skill@ddca11e (full SHA ddca11ec6853184468eab57a5b4b3649e5293f4d)
LicenseMIT No Attribution (MIT-0)

The archive holds regular files only (no symlinks, no executable bits, no binaries). Confirm that with the inspect commands below. Every file must be byte-identical to the source tree at the pinned commit.

When to Use This Skill

  • Use when the user explicitly wants AI Podcast Voiceover audio produced on Beatra and accepts that it is paid.
  • Use when they have agreed to send scripts to a third party for hosted synthesis.
  • Do not use for local TTS or when no paid synthesis was approved.

Install (pinned, verified, approved twice)

Step 1: Download and verify into a review directory

Explain that this downloads an external package from cdn.beatra.ai, then ask for approval. Only after approval:

bash
umask 077
review_dir="$(mktemp -d)"
cd "$review_dir" || exit 1
curl -fsSLO "https://cdn.beatra.ai/agent-packages/ai-podcast-voiceover/v0.1.7/ai-podcast-voiceover-skill-0.1.7.zip"
printf '%s  %s\n' \
  '571a9b48f7e32e5350a4916f502ed78c66b16f6bffdde33dda1c4c1b00996c87' \
  'ai-podcast-voiceover-skill-0.1.7.zip' | shasum -a 256 -c -

Stop if the check does not print OK. The expected digest comes from this catalog entry, not from a file on the same CDN.

Step 2: Inspect before activation

bash
unzip -l ai-podcast-voiceover-skill-0.1.7.zip
unzip -q ai-podcast-voiceover-skill-0.1.7.zip
find ai-podcast-voiceover -type l -print            # expect no output
find ai-podcast-voiceover -type f -perm -111 -print # expect no output
grep -n '"auto_update": True' ai-podcast-voiceover/scripts/mcp_client.py

Optionally confirm byte identity with the public source tree (a second, independent host):

bash
git clone --quiet --filter=blob:none --no-checkout https://github.com/beatra-ai/ai-podcast-voiceover-skill.git src
git -C src checkout --quiet ddca11ec6853184468eab57a5b4b3649e5293f4d -- skills/ai-podcast-voiceover
(cd ai-podcast-voiceover && find . -type f | LC_ALL=C sort | xargs shasum -a 256) > archive.sha
(cd src/skills/ai-podcast-voiceover && find . -type f | LC_ALL=C sort | xargs shasum -a 256) > tree.sha
cmp archive.sha tree.sha && echo IDENTICAL

Report to the user what the review found: SKILL.md, manifest.json, the bundled Markdown references, and scripts/authorize.py, scripts/mcp_client.py, scripts/uninstall.py (Python 3.10+, standard library only, no dependency installation, no lifecycle hooks). Summarize the network, credential, local-state, telemetry, and self-update behavior listed under Security & Safety Notes.

Step 3: Copy in and disable self-update before any other command

Ask for a second, separate approval, because this changes agent configuration. Then copy the reviewed tree to the host's skills directory (Claude Code shown; use the equivalent path for other hosts) and immediately turn off silent self-update for that exact path:

bash
dest="$HOME/.claude/skills/ai-podcast-voiceover"
test ! -e "$dest" || { echo "destination exists; stop and ask the user"; exit 1; }
cp -R ai-podcast-voiceover "$dest"
python3 "$dest/scripts/mcp_client.py" update --auto off

The last command must print Automatic Beatra package updates are disabled. It writes only ~/.beatra/updates/<id>/state.json and makes no network request. Run it before authorize.py, verify, tools, upload, or call: in this pinned version self-update is on by default. The setting is keyed to the resolved install path, so repeat it after moving or re-copying the directory.

Step 4: Authorize as its own decision

Authorization opens a browser sign-in and stores a bearer token. Ask first.

bash
python3 "$dest/scripts/authorize.py"

Start a new agent session if the host discovers skills only at startup.

How It Works

  1. Read the installed package's SKILL.md and its references; they define the routes, payload shapes, and review loop.
  2. Use free, non-billable discovery first (beatra.models.list, task list) to read current model cards and credit estimates.
  3. Show the user a cost card for exactly one paid call: tool, model, estimate, and which files will be uploaded. Wait for explicit approval. Planning or "just do it" is not approval.
  4. Upload only files the user supplied and approved for this task, then submit once with a stable client_request_id and poll the returned task.
  5. Report the delivered artifact and billing.net_charged_credits, review the result with the user, and ask again before any further paid stage.

Examples

Free connection check (non-billable)

bash
python3 "$HOME/.claude/skills/ai-podcast-voiceover/scripts/mcp_client.py" verify

One approved paid call

After the user approved the cost card for this exact payload, submit once with a stable request id using the tool name from the installed SKILL.md. If the response is lost, retry only with the same client_request_id and identical arguments; never submit a replacement while the task is running.

Update

This entry does not endorse the package's silent self-update. Keep update --auto off in place and do not run update --auto on or a bare update without explicit approval.

To move to a newer version, repeat Steps 1 to 3 for that version in a new review directory, verify its digest against the matching tree in beatra-ai/ai-podcast-voiceover-skill (a version not listed in this entry has not been reviewed here), show the user the file-level changes against the installed copy, and replace the directory only after approval. update --check reports the available version from beatra.ai without changing files.

Uninstall

bash
dest="$HOME/.claude/skills/ai-podcast-voiceover"
python3 "$dest/scripts/uninstall.py" --dry-run
python3 "$dest/scripts/uninstall.py"

Read the JSON decision. disconnected means this was the last Beatra skill on the device: the token was revoked (when revoked is true) and the files credentials.json, installation.json, host.json, skills.json, and registrations.json under ~/.beatra were removed. keep_connection means another Beatra skill still uses the shared token, which stays. Then, after confirming the path with the user, delete $dest.

uninstall.py does not remove ~/.beatra/updates/. When the decision is disconnected and no other Beatra skill is installed, remove that directory too; otherwise leave it. A token that could not be revoked expires after 15 days idle and can be revoked at once in the Beatra Console under Agents.

Best Practices

  • ✅ Keep one approval per paid call, per upload set, and per install step.
  • ✅ Report net charged credits from the terminal task, not the estimate.
  • ❌ Do not re-enable self-update or install an unreviewed version silently.
  • ❌ Do not print, paste, or move the token out of ~/.beatra/credentials.json.
  • ❌ Do not retry a paid call with a new request ID after an uncertain response.

Limitations

  • Requires a Beatra account, network access, Python 3.10+, and prepaid credits.
  • Models, prices, schemas, and availability are controlled by Beatra and its upstream model providers and can change; the service is provided as is.
  • Outputs are probabilistic, not guaranteed unique or non-infringing, and need human review before publication.
  • This catalog entry reviews only the pinned archive above. A newer version is a different review.

Security & Safety Notes

risk: critical is deliberate.

  • Network. Authorization uses api.beatra.ai; every tool call and upload goes to mcp.beatra.ai. With self-update left on, the client also fetches https://beatra.ai/skills/ai-podcast-voiceover/install.json and archives from cdn.beatra.ai.
  • Self-update (on by default in this pinned version). Before verify, tools, upload, or call, the client checks for a newer release at most once every 24 hours and, if one exists, replaces package-owned files without per-update preview or approval. It pins host and path, verifies checksums from Beatra's own discovery document and CDN, and rolls back on failure, but those digests are not independently anchored. This entry therefore requires update --auto off before first use, as in Step 3.
  • Uploads and third parties. Prompts and uploaded media are sent to Beatra and forwarded to the third-party model provider executing the task. Beatra is hosted outside mainland China. See the privacy policy.
  • Billing. Paid tools consume prepaid credits. Credits for tasks that fail for reasons attributable to Beatra or the upstream model are returned automatically; otherwise purchases are non-refundable, and actual usage can exceed the estimate and leave a negative balance. See the terms.
  • Credentials. authorize.py runs an OAuth device flow, opens the browser, and stores one bearer token in ~/.beatra/credentials.json (directory 0700, file 0600). The token never goes into argv, environment variables, or output. It carries full Beatra scope, including wallet:spend, has a sliding 15-day idle lifetime, and is shared by every Beatra skill on the device.
  • Local state. ~/.beatra/ also holds installation.json (random installation reference), host.json (agent platform and hostname), skills.json (installed Beatra skill paths), registrations.json, and updates/<id>/state.json plus update backups when updates run.
  • Telemetry. The device flow sends the hostname as the device name, the package slug and version, and the detected agent platform (for example claude-code, from environment variables). On first use the client makes a non-billable beatra.installations.register call, and every tool call adds source_package_slug and source_platform. There is no opt-out for these fields.
  • Retention. Account data is kept for the life of the account. Task records, artifacts, and billing ledgers are retained after account closure for audit and tax purposes.
  • Content rights. Users keep rights in their inputs and receive Beatra's rights in outputs; they must hold rights to uploaded media and must not create deceptive impersonations.

Additional Resources

Frequently asked questions

What does the Ai Podcast Voiceover AI skill do?

Install and use the official AI Podcast Voiceover package, pinned by digest, for paid hosted work on the Beatra service.

Why use Ai Podcast Voiceover on TypingMind?

Because you install it once and use it with any model. Ai Podcast Voiceover is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Ai Podcast Voiceover in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/sickn33/agentic-awesome-skills/tree/main/plugins/agentic-awesome-skills-claude/skills/ai-podcast-voiceover. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Ai Podcast Voiceover?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Ai Podcast Voiceover?

As many as you like. As long as a model supports skills, you can use Ai Podcast Voiceover with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Ai Podcast Voiceover AI skill free?

Yes. It is published on GitHub by sickn33 under the MIT-0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇