Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

podcast-generation · bytedance — Claude Code skill: install

Turns articles, reports, or documentation into a two-host conversational podcast and produces an MP3 with an optional transcript.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add bytedance/deer-flow --skill podcast-generation -a claude-code
Open on GitHub

What podcast-generation does

This skill converts written content into a structured JSON podcast script. The format uses two hosts, one male and one female, with alternating lines and conversational reactions. It supports English and Chinese content, so the same workflow can handle both locales.

The script is passed to generate.py, which runs text-to-speech, mixes the audio chunks, and writes the final MP3. You can also request a Markdown transcript. Each line needs a speaker and paragraph, while the script uses a locale field and can include an optional title.

The TTS provider and concurrency are selected from environment variables. Check that setup first, because a transcript file does not prove that audio generation completed successfully.

What it helps with

  • turn an article into a podcast script
  • reshape documentation as a two-host conversation
  • synthesize dialogue into an MP3 file
  • create a readable transcript beside the audio

Example prompts for the agent

  • Create an English two-host podcast from `article.md`, then generate the MP3 and Markdown transcript.
  • Turn this report into a conversational JSON script and run audio generation with `generate.py`.
  • Make a Chinese podcast from `report.txt` with alternating male and female hosts, then save the final MP3.

How to install podcast-generation

1Skills CLI (Vercel)

npx skills add bytedance/deer-flow --skill podcast-generation -a claude-code

2Manually: put the files in place

~/.claude/skills/podcast-generation/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/podcast-generation/

From the same set12

The whole set →
ppt-generation bytedance Creates PPTX presentations by generating slide visuals and assembling them into PowerPoint decks. Useful when you need a consistent visual deck from a text prompt. Claude Code CX Codex Cursor +1 5,200installs video-generation bytedance Generates videos via Gemini Veo or MiniMax using structured JSON prompts, optional reference images, and an automated Python script. Claude Code CX Codex Cursor +1 3,000installs consulting-analysis bytedance This skill plans a research framework, then turns collected material into a structured report. Use it for market, financial, brand, or competitor analysis. Claude Code CX Codex Cursor +1 3,000installs image-generation bytedance Builds structured JSON prompts and executes a Python script to generate images with optional reference files. Useful for character design and complex scene rendering. Claude Code CX Codex Cursor +1 2,900installs deep-research bytedance A skill for thorough web research using multi-angle analysis methodology. Use it instead of basic search when you need to understand a topic from all angles before writing content or tackling a complex question. Claude Code CX Codex Cursor +1 2,800installs academic-paper-review bytedance A skill for automated peer review of academic papers following top-conference standards. Assesses methodology, evaluates novelty, identifies weaknesses, and delivers evidence-based critique. Claude Code CX Codex Cursor +1 2,700installs systematic-literature-review bytedance A skill to automatically search and synthesize multiple papers by topic from arXiv. Collects research, extracts key findings, and outputs reports in APA, IEEE, or BibTeX format. Claude Code CX Codex Cursor +1 2,500installs surprise-me bytedance This skill combines available skills into one unexpected creative deliverable. Use it when you want inspiration or a project without choosing the format yourself. Claude Code CX Codex Cursor +1 2,300installs

Other versions of podcast-generation

Similar

context-engineering-collection muratcankoylan Patterns for production agent design: context management, multi-agent systems, long-running loops. Use when building autonomous systems that need to operate reliably. Claude Code CX Codex Cursor +1 4,200installs capability-evolver EvoMap Runs autonomous self-evolution for AI agents based on runtime history. It syncs code improvements with EvoMap Hub via a local JSONL mailbox proxy. Claude Code CX Codex Cursor +1 4,900installs google-cloud-solution-agentic-ai-bidirectional-streaming official google This skill designs Google Cloud solutions for live, bidirectional multimodal streams handled by AI agents. Use it for real-time technical guidance or safety monitoring. Claude Code Gemini CLI CX Codex 5,411installs img2threejs img2threejs Builds a procedural Three.js model from an object or character image. Use it for code-based reconstruction, animation preparation, and staged model generation. Claude Code CX Codex Cursor +1 2,400installs google-cloud-solution-agentic-ai-data-science-workflow official google Designs agentic data analytics and ML architectures on Google Cloud. Use it for multi-product solutions that rely on AI agents. Claude Code Gemini CLI CX Codex 5,200installs skill-creator official anthropics Creates and refines skills, then tests them with prompts, evaluations, and performance checks. Claude Code Claude.ai 414,180installs writing-for-agents Matt Pocock Guidance for writing skills and agent-facing documents. Use it when editing AGENTS.md, CLAUDE.md, or reference files reached from them. Claude Code 466,719installs media-use heygen-com Finds or generates media for HyperFrames videos, including voiceovers, music, cutouts, and color grades. Stores files locally in assets. Claude Code CX Codex Cursor +1 1,100,000installs

Questions about podcast-generation

How do I install podcast-generation in Claude Code?

Run npx skills add bytedance/deer-flow --skill podcast-generation -a claude-code, then run npx skills add bytedance/deer-flow --skill podcast-generation -a claude-code again. Check ~/.claude/skills/podcast-generation/SKILL.md afterward.

What does podcast-generation do?

It turns written content into a JSON dialogue for two hosts, synthesizes their speech, and combines the audio into an MP3. It can also produce a Markdown transcript.

What does the podcast script JSON need?

The JSON uses locale and a lines array. Each line has a speaker set to male or female and a paragraph; an optional title can provide the transcript heading.

Source text

SKILL.md · MIT
---
name: podcast-generation
description: 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.
---

# Podcast 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:
```json
{
  "locale": "en",
  "lines": [
    {"speaker": "male", "paragraph": "dialogue text"},
    {"speaker": "female", "paragraph": "dialogue text"}
  ]
}
```

### Step 3: Execute Generation

Call the Python script:
```bash
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-file` to 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:

```json
{
  "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 Chinese
- `lines`: Array of dialogue lines
  - `speaker`: 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`:
```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:
```bash
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 file
- `ai-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](templates/tech-explainer.md) - 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

The command exits with status 1 and writes diagnostics to stderr if generation
fails. Only present the MP3 after a successful command; an existing audio file
or a newly written transcript does not establish that audio generation succeeded.

After generation:

- Podcasts and transcripts are saved in `/mnt/user-data/outputs/`
- Share both the podcast MP3 and transcript MD with user using `present_files` tool
- 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_APPID` and `VOLCENGINE_TTS_ACCESS_TOKEN`
- For MiniMax: `MINIMAX_API_KEY`
- `VOLCENGINE_TTS_CLUSTER`: Volcengine TTS cluster (optional, defaults to "volcano_tts")
- `VOLCENGINE_TTS_VOICE_TYPE_MALE`: Volcengine male voice type (optional, defaults to `zh_male_yangguangqingnian_moon_bigtts`)
- `VOLCENGINE_TTS_VOICE_TYPE_FEMALE`: Volcengine female voice type (optional, defaults to `zh_female_sajiaonvyou_moon_bigtts`)

Voice type overrides are trimmed; unset or blank values use the listed defaults.

## 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_TOKEN` set → Volcengine TTS (default).
- Only `MINIMAX_API_KEY` set → 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.

© bytedance · MIT · bytedance/deer-flow

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor