Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
npx skills add michaelboeding/skills --skill "podcast-producer-agent"
Install specific skill from multi-skill repository
# Description
>
# SKILL.md
name: podcast-producer-agent
description: >
Use this skill to create podcast episodes, interviews, dialogues, and conversation-style audio.
Triggers: "create podcast", "podcast episode", "interview audio", "dialogue", "conversation",
"two hosts discussing", "audio show", "radio show", "audio drama"
Orchestrates: script generation, multi-speaker TTS, intro/outro music, and audio assembly.
Podcast Producer
Create complete podcast episodes, interviews, and conversation-style audio content.
This is an orchestrator skill that combines:
- Script/dialogue generation (Claude)
- Multi-speaker voice synthesis (Gemini TTS)
- Intro/outro music (Lyria)
- Audio assembly (FFmpeg via media-utils)
What You Can Create
| Type | Example |
|---|---|
| Podcast episode | Two hosts discussing a topic |
| Interview | Q&A format with host and guest |
| Dialogue | Scripted conversation between characters |
| Audio drama | Story with multiple characters |
| Radio show | Formatted audio program with segments |
Prerequisites
GOOGLE_API_KEY- For Gemini TTS (voices) and Lyria (music)- FFmpeg installed:
brew install ffmpeg(macOS) orapt install ffmpeg(Linux)
Workflow
Step 1: Gather Requirements (REQUIRED)
β οΈ DO NOT skip this step. Use interactive questioning β ask ONE question at a time.
Question Flow
β οΈ Use the AskUserQuestion tool for each question below. Do not just print questions in your response β use the tool to create interactive prompts with the options shown.
Q1: Topic
"I'll create that podcast episode! First β what's the topic?
(What should the hosts discuss?)"
Wait for response.
Q2: Hosts
"Who are the hosts/speakers?
(Names and brief personality β e.g., 'Sarah, enthusiastic tech expert' β max 2 for TTS)"
Wait for response.
Q3: Duration
"How long should the episode be?
- 5 minutes
- 10 minutes
- 15 minutes
- Or specify your own"
Wait for response.
Q4: Tone
"What tone?
- Professional
- Casual/conversational
- Funny/entertaining
- Serious/educational
- Or describe your own"
Wait for response.
Q5: Music
"What music style for intro/outro?
- Upbeat pop
- Chill lo-fi
- Corporate/professional
- Electronic
- Or describe your own"
Wait for response.
Quick Reference
| Question | Determines |
|---|---|
| Topic | Script content and discussion points |
| Hosts | Voice selection and script style |
| Duration | Script length |
| Tone | Writing style and energy |
| Music | Lyria prompt for intro/outro |
Step 2: Generate the Script
Use Claude to create the dialogue script with speaker labels:
[INTRO MUSIC: 10 seconds, upbeat tech podcast vibe]
Sarah: Welcome back to Tech Talk! I'm Sarah, and today we have something exciting.
Mike: Hey everyone! I'm Mike, and yes - we're diving into AI in healthcare.
Sarah: So Mike, what's the biggest change you've seen this year?
Mike: Great question! The use of AI for diagnostic imaging has exploded...
[Continue dialogue...]
[OUTRO MUSIC: Fade under last lines, 5 seconds after]
Sarah: Thanks for listening! Follow us for more episodes.
Mike: See you next time!
Script Guidelines:
- Use speaker names exactly as they'll be configured in TTS
- Include music cues in brackets: [INTRO MUSIC: description]
- Natural conversation flow with back-and-forth
- Aim for ~150 words per minute of audio
Step 3: Plan Asset Generation
Create a manifest of what needs to be generated:
{
"project": "tech_talk_ai_healthcare",
"duration_target": "5 minutes",
"speakers": [
{"name": "Sarah", "voice": "Kore", "style": "Enthusiastic, upbeat"},
{"name": "Mike", "voice": "Puck", "style": "Friendly, knowledgeable"}
],
"assets": [
{
"type": "music",
"name": "intro_music",
"prompt": "upbeat tech podcast, electronic, modern",
"duration": 15,
"script": "lyria"
},
{
"type": "dialogue",
"name": "main_content",
"speakers": ["Sarah", "Mike"],
"text": "[the dialogue script]",
"script": "gemini_tts"
},
{
"type": "music",
"name": "outro_music",
"prompt": "same as intro, fade out",
"duration": 10,
"script": "lyria"
}
],
"assembly": [
{"action": "mix", "voice": "intro_with_music", "music": "intro_music", "music_volume": 0.8},
{"action": "concat", "files": ["intro_with_music", "main_content"]},
{"action": "mix", "voice": "main_content_end", "music": "outro_music", "fade_out": 5}
]
}
Step 4: Generate Assets
Execute each generation step:
Generate intro music (Lyria):
python3 ${CLAUDE_PLUGIN_ROOT}/skills/music-generation/scripts/lyria.py \
--prompt "upbeat tech podcast, electronic, modern, positive energy" \
--duration 15 \
--bpm 120
Generate dialogue (Gemini TTS multi-speaker):
python3 ${CLAUDE_PLUGIN_ROOT}/skills/voice-generation/scripts/gemini_tts.py \
--multi \
--speaker "Sarah:Kore" \
--speaker "Mike:Puck" \
--text "[dialogue script from Step 2]" \
--style "Make Sarah sound enthusiastic and upbeat. Mike sounds friendly and knowledgeable."
Generate outro music (same as intro or variation):
python3 ${CLAUDE_PLUGIN_ROOT}/skills/music-generation/scripts/lyria.py \
--prompt "upbeat tech podcast, electronic, fade out feel" \
--duration 10 \
--bpm 120
Step 5: Assemble the Podcast
Use media-utils to stitch everything together:
Mix intro music with beginning of dialogue:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/media-utils/scripts/audio_mix.py \
--voice dialogue.wav \
--music intro_music.wav \
--music-volume 0.4 \
--fade-out 3 \
-o intro_mixed.wav
Concatenate all segments:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/media-utils/scripts/audio_concat.py \
-i intro_mixed.wav main_dialogue.wav outro_mixed.wav \
--crossfade 1.0 \
-o final_podcast.mp3
Step 6: Deliver the Result
Provide:
1. The final audio file
2. Summary of what was created
3. Offer adjustments
Example delivery:
"β Your podcast episode is ready!
File: tech_talk_ai_healthcare.mp3 (5:23)
What I created:
- Dialogue between Sarah (Kore voice) and Mike (Puck voice)
- 15s upbeat electronic intro music
- 10s outro music fade
Want me to:
- Adjust the voices or tone?
- Change the music style?
- Extend or shorten any section?
- Add more topics to the discussion?"
Voice Pairing Suggestions
| Host Type | Suggested Voice | Description |
|---|---|---|
| Main host (energetic) | Kore, Puck, Laomedeia | Firm, upbeat |
| Co-host (calm) | Charon, Algieba | Informative, smooth |
| Guest (expert) | Rasalgethi, Gacrux | Knowledgeable, mature |
| Interviewer | Achird | Friendly |
| Narrator | Charon, Orus | Informative, clear |
Music Style Suggestions
| Podcast Type | Music Prompt |
|---|---|
| Tech/Business | "upbeat electronic, modern, corporate, positive" |
| Casual/Comedy | "fun, playful, acoustic guitar, lighthearted" |
| News/Serious | "subtle, professional, ambient, understated" |
| Storytelling | "cinematic, emotional, orchestral, atmospheric" |
| Health/Wellness | "calm, peaceful, ambient, gentle piano" |
| True Crime | "dark, suspenseful, minimal, tension" |
Limitations
- Max 2 speakers per Gemini TTS call (for more, generate separate files and concatenate)
- Lyria is instrumental only - no vocals in music
- Duration estimates may vary - dialogue length depends on speaking pace
- Music loops if shorter than dialogue
Error Handling
| Error | Solution |
|---|---|
| "GOOGLE_API_KEY not set" | Set up API key per README |
| "FFmpeg not found" | Install: brew install ffmpeg |
| "google-genai not installed" | Run: pip install google-genai |
| TTS too long | Split script into segments, generate separately, concat |
Example Prompts
Simple:
"Create a 3-minute podcast episode about remote work tips with two hosts"
Detailed:
"Create a 5-minute tech podcast episode. Hosts: Alex (enthusiastic, tech-savvy) and Jordan (skeptical, asks good questions). Topic: The future of AI assistants. Include upbeat electronic intro/outro music. Casual but informative tone."
With provided script:
"Turn this dialogue into a podcast episode with intro/outro music:
Alex: Hey everyone, welcome back!
Jordan: Today we're talking about..."
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.