Communitygithub.com

Podcast Video

Convierte un tema en un video narrado de dos presentadores usando voces locales de VoiceStudio y HyperFrames, renderizado a 1080p MP4, después de entrevistar al usuario sobre lo que quiere. Úsalo cuando el usuario pida hacer un video de podcast, un video conversacional con IA o un explicador de YouTube en formato podcast.

¿Qué es Podcast Video?

Esta habilidad automatiza la creación de videos de podcast en formato de dos presentadores, generando un video completo de 1920x1080p a partir de un tema proporcionado por el usuario. Es especialmente útil para creadores de contenido que desean producir videos explicativos o conversacionales con apariencia profesional sin edición manual. La habilidad es compatible con HyperFrames y VoiceStudio, y funciona en sistemas con Node.js, FFmpeg y Python. El proceso comienza con una entrevista estructurada para definir el tema, los presentadores, el tono y el contenido, seguido de la investigación, escritura de guion, generación de voces (locales o clonadas con permiso), adición de imágenes, íconos y efectos de sonido, y finalmente el renderizado a MP4. Los usuarios deben tener VoiceStudio en ejecución, y la habilidad proporciona una guía paso a paso para cada etapa, incluyendo la verificación de audio y la presentación de resultados.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/tauseefau/podcast-video-skill/tree/HEAD

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Video de Podcast

Crea un video de 1920x1080 de dos presentadores hablando sobre un tema. Cada tema tiene su propia foto de fondo, tarjeta de título, ícono y etiqueta de altavoz con barras de voz animadas. Los cambios de tema tienen una transición de pantalla completa y un "whoosh", los íconos aparecen con un "pop", y la última escena incluye un botón de suscripción y créditos. Puede comenzar con la voz clonada del usuario.

Lee /hyperframes antes de cambiar cualquier composición. Los scripts a continuación están en la carpeta scripts/ de esta habilidad. Ejecútalos desde la carpeta del proyecto de video.

0. Entrevista primero

No investigues, escribas ni generes nada hasta que esto esté terminado. Un video renderizado es lento de rehacer, así que resuelve las decisiones de antemano. El método proviene de la habilidad de interrogatorio de Matt Pocock.

Las decisiones forman un árbol: algunas solo se pueden preguntar una vez que otras están resueltas. Trabaja en rondas:

  1. Haz cada pregunta de la cual puedas responder los prerrequisitos ahora, y nada que dependa de una respuesta que aún no hayas escuchado. Esa pregunta espera a una ronda posterior.
  2. Numera cada pregunta y da tu respuesta recomendada, redactada de modo que "sí" la acepte.
  3. Espera las respuestas, luego determina qué desbloquearon y haz la siguiente ronda. Una respuesta también puede hacer que una pregunta planeada sea inútil: elimínala.

Formatea cada pregunta así:

❓ **P1** - **<título>**: <la pregunta>

➡️ <tu respuesta recomendada>

Los hechos son tu trabajo, las decisiones son de ellos. Nunca preguntes lo que puedas buscar: si VoiceStudio está en ejecución, qué perfiles de voz existen (GET /profiles), qué hay en la carpeta, qué dice la investigación. Nunca respondas una decisión por ellos. Pregunta en texto plano, para que puedan responder con sus propias palabras.

Las decisiones a cubrir, aproximadamente en este orden:

RondaDecisiones
1El tema y el ángulo específico. Quién está viendo y qué saben ya. Qué deben hacer los espectadores después. Duración objetivo.
2Los dos presentadores: quiénes son y cómo se relacionan, por ejemplo experto y cliente. Tono. Nombre del programa. Si comienza con la propia voz del usuario.
3Si comienza con su voz: qué perfil y las palabras exactas. Acentos y carácter de voz para los presentadores diseñados.
4Después de la investigación: qué hallazgos usar y cualquier afirmación que quieran omitir. La lista de temas, en orden.
5Apariencia y sonido: el tipo de fotos, el ícono para cada tema, cualquier cambio en las transiciones, whoosh y pop. Dónde se publicará el video.

Omite cualquier cosa ya respondida en la solicitud. Si dicen "solo hazlo" o "tú decides", deja de preguntar, toma tus respuestas recomendadas y listálas. No hay límite de preguntas, pero no preguntes por preguntar: cada pregunta debe cambiar el video.

Termina reproduciendo el plan en unas pocas líneas: tema, audiencia, duración, presentadores, apertura, lista de temas y llamado a la acción. Espera a que confirmen antes de comenzar el paso 1. Si algo más tarde reabre una decisión, como una investigación que contradice el ángulo, detente y pregunta.

1. Verifica la configuración

  • curl -s "$VOICESTUDIO_URL/profiles" debería responder. URL predeterminada: http://localhost:3000. Si el servidor tiene una clave API, VOICESTUDIO_API_KEY debe estar configurada. Nunca escribas la clave en un archivo del proyecto.
  • ffmpeg y node están en PATH, y las habilidades de HyperFrames están instaladas.

Si falta algo, detente y dirige al usuario al README de esta habilidad.

2. Crea el proyecto

npx hyperframes init <dir>, luego copia templates/script.example.json a <dir>/script.json.

3. Investiga y escribe script.json

Investiga el tema primero. Cada estadística necesita una fuente real: colócala en el campo source de esa escena y no inventes números. Escribe lenguaje natural, aproximadamente 150 palabras por minuto.

CampoSignificado
showNombre del programa, mostrado en cada escena
chipsEtiquetas de crédito en la última escena
voicesUna entrada por altavoz. name, role, color, más profile_id o instruct y seed
scenesOrdenadas por aparición. kicker, title, icon, opcional sub y source. La última es el outro
linesTurnos hablados en orden: who, scene, text. Las líneas de una escena deben ser contiguas

icon es un nombre de ícono de Lucide que se adapte al tema, como phone-call.

Para comenzar con la propia voz clonada del usuario, agrega una voz con su profile_id de VoiceStudio (de GET /profiles), asígnale una primera escena propia y termina la línea con un traspaso como "¡Empecemos!" Solo clona una voz con permiso de su dueño.

Muestra el guion al usuario antes de generar las voces.

4. Genera las voces

python3 <skill>/scripts/make_voice.py

Esto escribe assets/audio/ y assets/lines.json. El audio se almacena en caché, por lo que después de editar el guion solo genera lo que cambió. Si el usuario vuelve a clonar una voz, elimina su audio de assets/audio/ para que se regenere, y primero confirma que el ref_audio_path del perfil cambió: un clon que no se guardó deja la voz anterior en su lugar. Haz que el usuario escuche el audio antes de renderizar.

5. Agrega imágenes, íconos y sonidos

Imágenes: cada escena necesita assets/img/<id-escena>.jpg, apaisada, al menos 1920 de ancho, y una foto diferente de la escena anterior, para que cada cambio de tema sea visible. Usa solo imágenes que el usuario pueda publicar, como fotos con licencia CC de Wikimedia Commons. Registra cada una en assets/img/credits.json como {"<id-escena>": {"artist": "...", "license": "...", "page": "..."}}. La última escena muestra los nombres de los artistas.

Íconos:

npm pack [email protected] --silent && tar xzf lucide-static-0.460.0.tgz
mkdir -p assets/icons && cp package/LICENSE assets/icons/LICENSE
cp package/icons/<nombre-ícono>.svg assets/icons/   # una vez por ícono de escena
rm -rf package lucide-static-0.460.0.tgz

Sonidos: ejecuta estos comandos y copia el archivo que cada uno imprime:

npx hyperframes media-use resolve --type sfx --intent "short whoosh transition" --project .
npx hyperframes media-use resolve --type sfx --intent "quick pop badge" --project .
mkdir -p assets/sfx
cp <ruta whoosh> assets/sfx/whoosh.mp3
cp <ruta pop> assets/sfx/pop.mp3

Acredita cualquier sonido CC BY en la última escena mediante chips.

6. Construye y verifica

python3 <skill>/scripts/build.py, luego npx hyperframes check. Corrige todos los errores. Luego ejecuta npx hyperframes snapshot --at <segundos> y mira los fotogramas en los cambios de escena antes de renderizar. Las transiciones son de pantalla completa en los tiempos de inicio de escena que build.py imprime.

7. Renderiza

npx hyperframes render. El MP4 se guarda en renders/. Espera varios minutos por minuto de video.

Verifica el archivo, luego dile al usuario lo que mediste: npx hyperframes audio <video> --json muestra si el sonido está presente y si la sonoridad está en el rango. Puedes medir el sonido pero no escucharlo, así que pídeles que escuchen.

Skills relacionados