
Podcast Generation
FreeTransform text into engaging podcast audio.
Free · Opens the source repo
What Podcast Generation does
The Podcast Generation skill allows users to convert written content into high-quality podcast audio. This skill is particularly useful for content creators, educators, and marketers who want to reach their audience through audio formats. By utilizing a structured workflow, it generates a conversational script and synthesizes speech to create a polished podcast episode. The skill supports both English and Chinese content, making it versatile for a broader audience.
The process begins with the user providing source text, which can be anything from articles to reports. The skill then creates a structured JSON script that outlines a two-host dialogue, ensuring a natural flow of conversation. This is crucial for maintaining listener engagement. Once the script is prepared, the skill executes a Python script that handles text-to-speech synthesis and audio mixing, resulting in a final MP3 file that can be shared or published.
Additionally, the generated podcast comes with a transcript in markdown format, enhancing accessibility and providing a written record of the audio content. This feature is particularly beneficial for users who want to offer both audio and text formats of their content. The skill is designed to produce approximately 10 minutes of dialogue, making it suitable for short educational segments or discussions on various topics.
Overall, the Podcast Generation skill streamlines the process of creating audio content from text, allowing users to efficiently produce engaging podcasts without needing extensive audio production knowledge.
When to use it
Use this skill when you need to convert text into a podcast format, especially for educational or promotional purposes.
When not to use it
This skill is not suitable for users looking to create podcasts with more than two hosts or those needing advanced audio editing features.
What you can build with it
Educational Content Creation
Transform educational articles into engaging podcasts for students, enhancing learning through audio.
Marketing and Promotion
Create promotional podcasts from marketing materials to reach a wider audience and engage listeners.
Content Repurposing
Convert existing blog posts or reports into podcasts, maximizing the value of your written content.
How to install Podcast Generation
View source1. Install with the skills CLI
npx skills add bytedance/deer-flow/podcast-generation --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by bytedancePodcast Generation Skill
Overview
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.
Core Capabilities
- Convert any text content (articles, reports, documentation) into podcast scripts
- Generate natural two-host conversational dialogue (male and female hosts)
- Synthesize speech audio using text-to-speech
- Mix audio chunks into a final podcast MP3 file
- Support both English and Chinese content
Workflow
Step 1: Understand Requirements
When a user requests podcast generation, identify:
- Source content: The text/article/report to convert into a podcast
- Language: English or Chinese (based on content)
- Output location: Where to save the generated podcast
- You don't need to check the folder under
/mnt/user-data
Step 2: Create Structured Script JSON
Generate a structured JSON script file in /mnt/user-data/workspace/ with naming pattern: {descriptive-name}-script.json
The JSON structure:
{
"locale": "en",
"lines": [
{"speaker": "male", "paragraph": "dialogue text"},
{"speaker": "female", "paragraph": "dialogue text"}
]
}
Step 3: Execute Generation
Call the Python script:
python /mnt/skills/public/podcast-generation/scripts/generate.py \
--script-file /mnt/user-data/workspace/script-file.json \
--output-file /mnt/user-data/outputs/generated-podcast.mp3 \
--transcript-file /mnt/user-data/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 TTS provider and its concurrency are selected automatically from environment variables — you do not choose or tune them.
Script JSON Format
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 linesspeaker: Either "male" or "female"paragraph: The dialogue text for this speaker
Script Writing Guidelines
When creating the script JSON, follow these guidelines:
Format Requirements
- Only two hosts: male and female, alternating naturally
- Target runtime: approximately 10 minutes of dialogue (around 40-60 lines)
- Start with the male host saying a greeting that includes "Hello Deer"
Tone & Style
- Natural, conversational dialogue - like two friends chatting
- Use casual expressions and conversational transitions
- Avoid overly formal language or academic tone
- Include reactions, follow-up questions, and natural interjections
Content Guidelines
- Frequent back-and-forth between hosts
- Keep sentences short and easy to follow when spoken
- Plain text only - no markdown formatting in the output
- Translate technical concepts into accessible language
- No mathematical formulas, code, or complex notation
- Make content engaging and accessible for audio-only listeners
- Exclude meta information like dates, author names, or document structure
Podcast Generation Example
User request: "Generate a podcast about the history of artificial intelligence"
Step 1: Create script file /mnt/user-data/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 /mnt/skills/public/podcast-generation/scripts/generate.py \
--script-file /mnt/user-data/workspace/ai-history-script.json \
--output-file /mnt/user-data/outputs/ai-history-podcast.mp3 \
--transcript-file /mnt/user-data/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 podcast
Specific Templates
Read the following template file only when matching the user request.
- Tech Explainer - For converting technical documentation and tutorials
Output Format
The generated podcast follows the "Hello Deer" format:
- Two hosts: one male, one female
- Natural conversational dialogue
- Starts with "Hello Deer" greeting
- Target duration: approximately 10 minutes
- Alternating speakers for engaging flow
Output Handling
After generation:
- Podcasts and transcripts are saved in
/mnt/user-data/outputs/ - Share both the podcast MP3 and transcript MD with user using
present_filestool - Provide brief description of the generation result (topic, duration, hosts)
- Offer to regenerate if adjustments needed
Requirements
The following environment variables must be set:
- For Volcengine:
VOLCENGINE_TTS_APPIDandVOLCENGINE_TTS_ACCESS_TOKEN - For MiniMax:
MINIMAX_API_KEY VOLCENGINE_TTS_CLUSTER: Volcengine TTS cluster (optional, defaults to "volcano_tts")
Notes
- Always execute the full pipeline in one call - no need to test individual steps or worry about timeouts
- The script JSON should match the content language (en or zh)
- Technical content should be simplified for audio accessibility in the script
- Complex notations (formulas, code) should be translated to plain language in the script
- Long content may result in longer podcasts
Providers (Volcengine / MiniMax)
Auto-selected by environment variables:
VOLCENGINE_TTS_APPID+VOLCENGINE_TTS_ACCESS_TOKENset → Volcengine TTS (default).- Only
MINIMAX_API_KEYset → MiniMax TTS (/v1/t2a_v2). - Force with
PODCAST_GENERATION_PROVIDER=volcengine|minimax.
MiniMax overrides: MINIMAX_API_HOST (default https://api.minimaxi.com),
MINIMAX_TTS_MODEL (default speech-2.6-hd), MINIMAX_TTS_VOICE_MALE
(default male-qn-qingse), MINIMAX_TTS_VOICE_FEMALE (default female-tianmei).
Concurrency is owned by each provider internally — MiniMax runs single-threaded to reduce rate-limit failures, Volcengine uses 4 workers. There is no caller-facing concurrency knob; transient rate limits are handled by automatic retry with backoff.
Frequently asked questions about Podcast Generation
Similar skills
Faceless Explainer
Create explainer videos from text without real assets.
Create Video
Generate videos from text prompts effortlessly.
Knowledge Comic Creator
Create educational comics with customizable styles and tones.
AI Cinema Director
Transform creative ideas into cinematic directives.
AI Fight Scene Generator
Create dynamic action scenes with storyboard-driven video.
Avatar Video
Create customizable AI avatar videos with ease.
