From content-generation
Use this skill when the user requests to generate, create, or produce podcasts from text content. Converts written content into a two-host conversational podcast audio format with natural dialogue.
How this skill is triggered — by the user, by Claude, or both
Slash command
/content-generation:podcast-generationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill generates high-quality podcast audio from text content. The workflow includes creating a structured JSON script (conversational dialogue) and executing audio generation through text-to-speech synthesis.
This skill generates high-quality podcast audio from text content. The workflow includes creating a structured JSON script (conversational dialogue) and executing audio generation through text-to-speech synthesis.
This skill uses a sandboxed temporary directory to avoid polluting the user's workspace:
| Base | Meaning |
|---|---|
./scripts/ | Relative to SKILL.md directory (skill root) — contains Python scripts |
<sandbox-dir> | Temporary directory for this skill session (auto-created, auto-cleaned) |
<sandbox-dir>/workspace/ | Stores scripts and temp files |
<sandbox-dir>/outputs/ | Stores generated audio and transcripts |
Important: All temporary files are stored in
<sandbox-dir>. The agent should create this directory at session start and clean it up at session end (unless the user wants to keep the outputs).
At the start of each skill session, the agent should:
# Create sandbox directory with unique session ID
SANDBOX_DIR="/tmp/skill-sessions/podcast-$(date +%s)"
mkdir -p "$SANDBOX_DIR/workspace" "$SANDBOX_DIR/outputs"
At the end of the session (or when the user confirms), clean up:
# Remove sandbox directory (keeping outputs if user wants)
rm -rf "$SANDBOX_DIR"
When a user requests podcast generation, identify:
Generate a structured JSON script file in <sandbox-dir>/workspace/ with naming pattern: {descriptive-name}-script.json
The JSON structure:
{
"locale": "en",
"lines": [
{"speaker": "male", "paragraph": "dialogue text"},
{"speaker": "female", "paragraph": "dialogue text"}
]
}
Call the Python script:
python ./scripts/generate.py \
--script-file <sandbox-dir>/workspace/script-file.json \
--output-file <sandbox-dir>/outputs/generated-podcast.mp3 \
--transcript-file <sandbox-dir>/outputs/generated-podcast-transcript.md
Parameters:
--script-file: Absolute path to JSON script file (required)--output-file: Absolute path to output MP3 file (required)--transcript-file: Absolute path to output transcript markdown file (optional, but recommended)[!IMPORTANT]
- Execute the script in one complete call. Do NOT split the workflow into separate steps.
- The script handles all TTS API calls and audio generation internally.
- Do NOT read the Python file, just call it with the parameters.
- Always include
--transcript-fileto generate a readable transcript for the user.
The script JSON file must follow this structure:
{
"title": "The History of Artificial Intelligence",
"locale": "en",
"lines": [
{"speaker": "male", "paragraph": "Hello Deer! Welcome back to another episode."},
{"speaker": "female", "paragraph": "Hey everyone! Today we have an exciting topic to discuss."},
{"speaker": "male", "paragraph": "That's right! We're going to talk about..."}
]
}
Fields:
title: Title of the podcast episode (optional, used as heading in transcript)locale: Language code - "en" for English or "zh" for Chineselines: Array of dialogue lines
speaker: Either "male" or "female"paragraph: The dialogue text for this speakerWhen creating the script JSON, follow these guidelines:
User request: "Generate a podcast about the history of artificial intelligence"
Step 1: Create script file <sandbox-dir>/workspace/ai-history-script.json:
{
"title": "The History of Artificial Intelligence",
"locale": "en",
"lines": [
{"speaker": "male", "paragraph": "Hello Deer! Welcome back to another fascinating episode. Today we're diving into something that's literally shaping our future - the history of artificial intelligence."},
{"speaker": "female", "paragraph": "Oh, I love this topic! You know, AI feels so modern, but it actually has roots going back over seventy years."},
{"speaker": "male", "paragraph": "Exactly! It all started back in the 1950s. The term artificial intelligence was actually coined by John McCarthy in 1956 at a famous conference at Dartmouth."},
{"speaker": "female", "paragraph": "Wait, so they were already thinking about machines that could think back then? That's incredible!"},
{"speaker": "male", "paragraph": "Right? The early pioneers were so optimistic. They thought we'd have human-level AI within a generation."},
{"speaker": "female", "paragraph": "But things didn't quite work out that way, did they?"},
{"speaker": "male", "paragraph": "No, not at all. The 1970s brought what's called the first AI winter..."}
]
}
Step 2: Execute generation:
python ./scripts/generate.py \
--script-file <sandbox-dir>/workspace/ai-history-script.json \
--output-file <sandbox-dir>/outputs/ai-history-podcast.mp3 \
--transcript-file <sandbox-dir>/outputs/ai-history-transcript.md
This will generate:
ai-history-podcast.mp3: The audio podcast fileai-history-transcript.md: A readable markdown transcript of the podcastRead the following template file only when matching the user request.
The generated podcast follows the "Hello Deer" format:
After generation:
<sandbox-dir>/outputs/present_files tool<sandbox-dir> when session ends (unless user wants to keep files)The following environment variables must be set:
VOLCENGINE_TTS_APPID: Volcengine TTS application IDVOLCENGINE_TTS_ACCESS_TOKEN: Volcengine TTS access tokenVOLCENGINE_TTS_CLUSTER: Volcengine TTS cluster (optional, defaults to "volcano_tts")Searches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.
npx claudepluginhub shanghai-jerry/skills --plugin content-generation