Communitygithub.com

tauseefau/podcast-video

Transforme um tópico em um vídeo de podcast narrado com dois apresentadores, usando vozes locais do VoiceStudio e HyperFrames, renderizado em MP4 1080p, após entrevistar o usuário sobre o que deseja. Use quando o usuário pedir para criar um vídeo de podcast, um vídeo de conversa com IA ou um vídeo explicativo no formato de podcast para o YouTube.

O que é podcast-video?

Este skill transforma qualquer tópico em um vídeo de podcast profissional com dois apresentadores, totalmente gerado por IA. Ele é ideal para criadores de conteúdo, educadores e profissionais de marketing que desejam produzir vídeos explicativos ou de conversa no estilo podcast sem a necessidade de gravação manual. O skill suporta o uso do VoiceStudio para síntese de voz local, incluindo a possibilidade de clonar a voz do usuário para a abertura. O fluxo de trabalho começa com uma entrevista estruturada em rodadas para definir o tópico, público-alvo, tom, anfitriões e outros detalhes criativos antes de qualquer geração. Após a pesquisa, o script é escrito em formato JSON, as vozes são geradas em cache, e imagens, ícones e efeitos sonoros são adicionados automaticamente. Por fim, o vídeo é renderizado em 1080p usando a estrutura HyperFrames. O skill é compatível com ambientes que possuem Node.js, FFmpeg e o servidor VoiceStudio rodando localmente na porta 3000.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Vídeo de Podcast

Cria um vídeo 1920x1080 de dois apresentadores discutindo um tópico. Cada tópico recebe sua própria foto de fundo, cartão de título, ícone e etiqueta do apresentador com barras de voz animadas. As mudanças de tópico têm uma transição de tela cheia e um "whoosh", os ícones aparecem com um "pop", e a última cena contém um botão de inscrição e créditos. Pode abrir com o usuário falando com sua própria voz clonada.

Leia /hyperframes antes de alterar qualquer composição. Os scripts abaixo estão na pasta scripts/ deste skill. Execute-os a partir da pasta do projeto de vídeo.

0. Entreviste primeiro

Não pesquise, escreva ou gere nada até que isso esteja concluído. Um vídeo renderizado é lento para refazer, portanto, resolva as decisões com antecedência. O método vem do skill de entrevista de Matt Pocock.

As decisões formam uma árvore: algumas só podem ser perguntadas depois que outras são resolvidas. Trabalhe em rodadas:

  1. Faça todas as perguntas para as quais você já pode responder aos pré-requisitos agora, e nada que dependa de uma resposta que você ainda não ouviu. Essa pergunta espera por uma rodada posterior.
  2. Numere cada pergunta e dê sua resposta recomendada, redigida de forma que "sim" a aceite.
  3. Aguarde as respostas, então descubra o que elas desbloquearam e faça a próxima rodada. Uma resposta também pode tornar uma pergunta planejada desnecessária: descarte-a.

Formate cada pergunta assim:

❓ **P1** - **<título>**: <a pergunta>

➡️ <sua resposta recomendada>

Fatos são seu trabalho, decisões são deles. Nunca pergunte o que você pode descobrir: se o VoiceStudio está rodando, quais perfis de voz existem (GET /profiles), o que está na pasta, o que a pesquisa diz. Nunca responda uma decisão por eles. Pergunte em texto simples, para que eles possam responder com suas próprias palavras.

As decisões a cobrir, aproximadamente nesta ordem:

RodadaDecisões
1O tópico e o ângulo específico. Quem está assistindo e o que eles já sabem. O que os espectadores devem fazer depois. Duração alvo.
2Os dois apresentadores: quem são e como se relacionam, como especialista e cliente. Tom. Nome do programa. Se abre com a voz do usuário.
3Se abrir com a voz deles: qual perfil e as palavras exatas. Sotaques e características de voz para os apresentadores projetados.
4Após a pesquisa: quais descobertas usar e qualquer alegação que eles queiram deixar de fora. A lista de tópicos, em ordem.
5Aparência e som: o tipo de fotos, o ícone para cada tópico, quaisquer alterações nas transições, whoosh e pop. Onde o vídeo será publicado.

Pule tudo que já foi respondido na solicitação. Se eles disserem "apenas vá" ou "você decide", pare de perguntar, aceite suas respostas recomendadas e liste-as. Não há limite de perguntas, mas não pergunte por perguntar: cada pergunta deve mudar o vídeo.

Termine reproduzindo o plano em poucas linhas: tópico, público, duração, apresentadores, abertura, lista de tópicos e a chamada para ação. Aguarde a confirmação deles antes de iniciar a etapa 1. Se algo mais tarde reabrir uma decisão, como uma pesquisa que contradiz o ângulo, pare e pergunte.

1. Verifique a configuração

  • curl -s "$VOICESTUDIO_URL/profiles" deve responder. URL padrão: http://localhost:3000. Se o servidor tiver uma chave de API, VOICESTUDIO_API_KEY deve estar definida. Nunca escreva a chave em um arquivo do projeto.
  • ffmpeg e node estão no PATH, e os skills HyperFrames estão instalados.

Se algo estiver faltando, pare e aponte o usuário para o LEIAME deste skill.

2. Crie o projeto

npx hyperframes init <dir>, em seguida copie templates/script.example.json para <dir>/script.json.

3. Pesquise e escreva script.json

Pesquise o tópico primeiro. Toda estatística precisa de uma fonte real: coloque-a no campo source dessa cena e não invente números. Escreva um discurso natural, aproximadamente 150 palavras por minuto.

CampoSignificado
showNome do programa, exibido em todas as cenas
chipsRótulos de crédito na última cena
voicesUma entrada por falante. name, role, color, mais profile_id ou instruct e seed
scenesOrdenadas por aparição. kicker, title, icon, sub e source opcionais. A última é a conclusão
linesTurnos de fala em ordem: who, scene, text. As linhas de uma cena devem ser contíguas

icon é um nome de ícone do Lucide que se adequa ao tópico, como phone-call.

Para abrir com a voz clonada do próprio usuário, adicione uma voz com o profile_id do VoiceStudio dele (de GET /profiles), dê a ela uma primeira cena própria e termine a linha com uma passagem como "Vamos começar!" Apenas clone uma voz com a permissão de seu dono.

Mostre o script ao usuário antes de gerar as vozes.

4. Gere as vozes

python3 <skill>/scripts/make_voice.py

Isso escreve assets/audio/ e assets/lines.json. O áudio é armazenado em cache, então após editar o script, ele gera apenas o que mudou. Se o usuário reclonar uma voz, exclua seu áudio de assets/audio/ para que seja regenerado e primeiro confirme que o ref_audio_path do perfil mudou: um clone que não foi salvo deixa a voz antiga no lugar. Peça ao usuário para ouvir o áudio antes de renderizar.

5. Adicione imagens, ícones e sons

Imagens: cada cena precisa de assets/img/<id-da-cena>.jpg, paisagem, com pelo menos 1920 de largura, e uma foto diferente da cena anterior, para que cada mudança de tópico seja visível. Use apenas imagens que o usuário possa publicar, como fotos licenciadas sob CC da Wikimedia Commons. Registre cada uma em assets/img/credits.json como {"<id-da-cena>": {"artist": "...", "license": "...", "page": "..."}}. A última cena exibe os nomes dos artistas.

Ícones:

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/<nome-do-icone>.svg assets/icons/   # uma vez por ícone de cena
rm -rf package lucide-static-0.460.0.tgz

Sons: execute estes comandos e copie o arquivo que cada um imprime:

npx hyperframes media-use resolve --type sfx --intent "transição whoosh curta" --project .
npx hyperframes media-use resolve --type sfx --intent "pop rápido de selo" --project .
mkdir -p assets/sfx
cp <caminho do whoosh> assets/sfx/whoosh.mp3
cp <caminho do pop> assets/sfx/pop.mp3

Credite qualquer som CC BY na última cena através de chips.

6. Construa e verifique

python3 <skill>/scripts/build.py, depois npx hyperframes check. Corrija todos os erros. Em seguida, execute npx hyperframes snapshot --at <segundos> e observe os quadros nas mudanças de cena antes de renderizar. As transições são de tela cheia nos horários de início da cena que build.py imprime.

7. Renderize

npx hyperframes render. O MP4 fica em renders/. Espere vários minutos por minuto de vídeo.

Verifique o arquivo e informe ao usuário o que você mediu: npx hyperframes audio <vídeo> --json mostra se o som está presente e se o volume está dentro da faixa. Você pode medir o som, mas não ouvi-lo, então peça para eles ouvirem.

Habilidades Relacionadas