# Podcast Generation > Se usa cuando el usuario pide generar, crear o producir podcasts a partir de contenido escrito. Convierte el texto en un podcast conversacional de dos presentadores con diálogo natural. Fuente: https://skillsagentes.com/skills/bytedance/deer-flow/podcast-generation Markdown: https://skillsagentes.com/skills/bytedance/deer-flow/podcast-generation.md Repositorio: https://github.com/bytedance/deer-flow Autor: bytedance Licencia: MIT Actualizado: hace 2 meses Coste de contexto: 49 tok instalada, 2.1k tok al activarse, 6.2k tok con todos los archivos del bundle Bundle: 3 archivos, 24 KB Permisos que pide: ninguno declarado ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add bytedance/deer-flow --skill podcast-generation --agent claude-code # Cursor npx -y skills add bytedance/deer-flow --skill podcast-generation --agent cursor # Codex npx -y skills add bytedance/deer-flow --skill podcast-generation --agent codex # Gemini CLI npx -y skills add bytedance/deer-flow --skill podcast-generation --agent gemini # Windsurf npx -y skills add bytedance/deer-flow --skill podcast-generation --agent windsurf # Cline npx -y skills add bytedance/deer-flow --skill podcast-generation --agent cline ``` ## Qué hace - Convierte contenido de texto (artículos, informes, documentación) en un podcast de dos presentadores (hombre y mujer) con diálogo natural. - Genera un guion JSON estructurado y lo sintetiza a audio MP3 mediante texto a voz. - Sigue el formato 'Hello Deer': el presentador masculino saluda primero, duración objetivo de ~10 minutos, 40-60 líneas alternadas. - Produce también una transcripción en Markdown legible junto al MP3. ## Cuándo usarla - El usuario pide generar, crear o producir un podcast a partir de contenido escrito. ## Qué la activa - "Convierte este artículo en un podcast de dos presentadores" - "Genera un podcast sobre la historia de la inteligencia artificial" - "Crea un episodio en audio a partir de esta documentación técnica" ## Antes de instalar - Requiere credenciales de Volcengine TTS (VOLCENGINE_TTS_APPID/ACCESS_TOKEN) o MINIMAX_API_KEY. - Necesita en el PATH: python - Variables de entorno: MINIMAX_API_HOST, MINIMAX_API_KEY, MINIMAX_TTS_MAX_RETRIES, MINIMAX_TTS_MODEL, MINIMAX_TTS_VOICE_FEMALE, MINIMAX_TTS_VOICE_MALE, VOLCENGINE_TTS_ACCESS_TOKEN, VOLCENGINE_TTS_APPID, VOLCENGINE_TTS_CLUSTER - makes network requests - needs API credentials ## Archivos - SKILL.md — 8 KB - scripts/generate.py — 14 KB - templates/tech-explainer.md — 2 KB ## SKILL.md Reproducido tal cual desde bytedance/deer-flow bajo MIT. Esta sección es el documento original y está en inglés. # 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 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") ## 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. ## Dónde encaja - Categoría: [Redacción y contenido](https://skillsagentes.com/categorias/redaccion-contenido.md) — Redacción, edición y estructuración de contenido extenso. - Creador: [bytedance](https://skillsagentes.com/creators/bytedance.md) — 27 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Engineer System Change](https://skillsagentes.com/skills/bytedance/deer-flow/engineer-system-change.md): Evalúa y ejecuta cambios de sistema no triviales desde primeros principios: RFCs, features, refactors, migraciones o nuevas APIs, exigiendo consumidores concretos, la solución mínima suficiente y evidencia proporcional al riesgo. - [Skill Reviewer](https://skillsagentes.com/skills/bytedance/deer-flow/skill-reviewer.md): Revisa paquetes de skills de DeerFlow: preparación para publicar, triggers, límites de seguridad, recursos y evidencia. Úsala cuando pidan auditar, calificar o validar para producción una skill. - [Skill Creator](https://skillsagentes.com/skills/bytedance/deer-flow/skill-creator.md): Crea skills nuevas, modifica y mejora skills existentes, y mide su rendimiento. Úsala para crear una skill, editarla, correr evals, hacer benchmark con análisis de varianza, u optimizar su descripción. - [Smoke Test](https://skillsagentes.com/skills/bytedance/deer-flow/smoke-test.md): Skill de smoke test de extremo a extremo para DeerFlow: actualiza el código, despliega en local o Docker, verifica disponibilidad de servicios, hace health check y genera el reporte final. - [Deerflow Maintainer Orchestrator](https://skillsagentes.com/skills/bytedance/deer-flow/deerflow-maintainer-orchestrator.md): Manejo de issues y PRs de GitHub solo por comentarios para mantenedores de DeerFlow: resuelve alcance con gh, analiza, publica o redacta comentarios de issues y revisiones de PR, y compara PRs en competencia. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)