Blog Audio Narrator
Turn blog posts into multilingual narration, full read-alouds, or two-speaker podcast episodes.
The documentation discloses the environment variable, external Gemini TTS data flow, FFmpeg conversion, and missing-key fallback; the script does not print the key and uses an isolated virtual environment. Points are deducted because generation has no explicit user or cost confirmation, article text is sent to Google without sensitive-content or privacy guidance, a requested output path may be overwritten because FFmpeg uses -y, and dependency and runtime network trust boundaries are not fully specified within this skill.
Commands, parameter validation, voice validation, empty-input checks, missing-file errors, API-error handling, rate-limit guidance, and long-text guidance are present, and the main workflow is mostly internally consistent. Points are deducted because this is a static review with no verification of the Gemini SDK response shape, audio conversion, or venv installation; the skill-specific requirement files are not provided, automatic setup may fail on dependency or network issues, and retry and failure diagnostics remain limited.
The audience, trigger phrases, modes, input forms, and primary outputs are reasonably clear, and multilingual support is claimed. Points are deducted for missing explicit non-fit cases, semantic trigger boundaries, and sensitive-content limits; Chinese support is asserted only through the generic 80+ language claim with no Chinese example or evidence; the core function depends entirely on Google Gemini TTS, with no mainland-China reachability assessment.
The skill has frontmatter, MIT licensing, version metadata, argument hints, quick reference, prerequisites, workflow steps, embedding examples, voice references, an error table, and on-demand reference loading. Points are deducted for lacking a skill-specific changelog, clearly assigned maintenance responsibility, and an explicit update path; the supplied material does not include the skill's dependency manifests; and setup is described as configuration although the implementation mainly checks, guides, and performs a dry run.
The skill specifies directly usable narration files, duration, voice, cost estimate, and HTML embed code across summary, full, and dialogue modes. Points are deducted because no representative successful artifact or skill-specific execution test is supplied; cost and duration are estimates, multilingual quality is unverified, and users may still need to audition audio, inspect paths, and review prepared text.
The supplied scripts expose auditable validation, cost-estimation, error paths, and output logic, while repository CI and test signals provide some maintenance evidence. Points are deducted because the shown tests are primarily for other repository scripts and do not demonstrate real blog-audio execution, Gemini API mocking, audio validity checks, or third-party corroboration; claims about 30 voices, 80+ languages, and pricing are largely author-provided.
- Article content is sent to Google Gemini; obtain consent and review applicable data policies before processing unpublished, personal, or sensitive material.
- The core service depends on the Google Gemini API, with no mainland-China reachability assessment or alternative TTS path provided.
- An existing specified output may be overwritten, and API calls may incur charges; the dry-run estimate is not a billing guarantee.
- The supplied material does not include blog-audio requirements.lock/requirements.txt files or dedicated execution tests, so installation and runtime reproducibility remain unverified.
What does this skill do, and when should you use it?
Blog Audio is the claude-blog sub-skill for converting blog content into spoken audio with Google Gemini TTS. It supports summary narration, full-article read-aloud, and two-speaker dialogue, with 30 voices and more than 80 languages. The skill can be invoked through /blog audio or called internally by blog-write, and it produces audio files plus HTML5 embed code. It is a good fit for publishers adding listenable versions to posts, provided they can supply Python, network access, and a GOOGLE_AI_API_KEY.
Reads a blog file and extracts its title, body, and approximate word count; prepares speech-ready text for summary, full, or dialogue mode; invokes Google Gemini TTS through the scripts/run.py Python wrapper; supports one voice or two voices for dialogue; converts WAV output to MP3 with FFmpeg when available, falling back to WAV otherwise; and reports the output path, duration, voice, estimated cost, placement suggestion, and HTML5 embed code.
- A solo blogger wants a one- to two-minute spoken summary for each new post.
- A content team wants to publish five- to fifteen-minute full-article audio versions.
- A marketing team wants to turn an article into a three- to eight-minute host-and-expert dialogue.
- A multilingual publisher needs audio narration in languages supported by Gemini TTS.
- A team using blog-write wants audio generation to be optional, so missing credentials do not stop article production.
What are this skill's strengths and limitations?
- Supports summary, full read-aloud, and two-speaker dialogue modes.
- Offers 30 voices and more than 80 languages.
- Produces MP3 when FFmpeg is available and supplies ready-to-use HTML5, MDX, and WordPress embed examples.
- When called internally, missing credentials are handled silently so blog-write can continue.
- Requires a Google Gemini TTS API key and network access.
- Requires Python 3.11+; without FFmpeg, output falls back to WAV instead of MP3.
- Text longer than 32k tokens must be split into sections.
- The supplied sources do not provide fixed API pricing or independent audio-specific test results.
How do you install this skill?
There is no separately documented installation for this sub-skill; it is installed as part of the AgriciDaniel/claude-blog collection. In Claude Code, run /plugin marketplace add AgriciDaniel/claude-blog, then /plugin install claude-blog@agricidaniel-claude-blog. Restart Claude Code afterward. The source does not document an independent installation flow for skills/blog-audio.
How do you use this skill?
In Claude Code, run /blog audio setup to check configuration, /blog audio voices to browse voices, or /blog audio generate <file> to create narration. You can specify --mode summary, --mode full, or --mode dialogue, and select a voice with --voice <name>. Set GOOGLE_AI_API_KEY before generation, for example: export GOOGLE_AI_API_KEY=your-key.
How does this skill compare with similar options?
Compared with asking Claude or ChatGPT for a one-shot text response, Blog Audio adds Gemini TTS generation, voice selection, dialogue mode, and embed-code output, but it also requires a Google API key and a local runtime environment.