Communitygithub.com

tauseefau/podcast-video

Transformez un sujet en une vidéo de podcast narrée par deux animateurs utilisant les voix locales de VoiceStudio et HyperFrames, rendue en MP4 1080p, après avoir interrogé l'utilisateur sur ses souhaits. Utilisez cette compétence lorsque l'utilisateur demande de créer une vidéo de podcast, une vidéo de conversation avec voix IA générées ou une vidéo explicative YouTube au format podcast.

Qu'est-ce que podcast-video ?

Cette compétence permet de générer automatiquement une vidéo de podcast complète en 1080p avec deux animateurs virtuels, en utilisant des voix synthétiques locales via VoiceStudio et la bibliothèque de rendu vidéo HyperFrames. Elle est idéale pour les créateurs de contenu, les développeurs et les spécialistes du marketing qui souhaitent produire rapidement des vidéos de type podcast ou explicatives sans enregistrement audio manuel ni montage vidéo complexe. La compétence commence par une phase d'entretien structurée pour déterminer le sujet, le public cible, le ton, les animateurs et le style visuel, garantissant que le résultat final correspond parfaitement aux attentes de l'utilisateur. Elle prend en charge l'utilisation de voix clonées de l'utilisateur pour une introduction personnalisée, la recherche automatique de sujets avec sources vérifiables, la génération de voix à partir de profils VoiceStudio, l'ajout d'images et d'icônes sous licence Creative Commons, et le rendu final en MP4. Son flux de travail est conçu pour minimiser les refontes en impliquant l'utilisateur dans toutes les décisions clés avant la production.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Vidéo Podcast

Génère une vidéo 1920x1080 de deux animateurs discutant d'un sujet. Chaque sujet possède sa propre photo d'arrière-plan, carte de titre, icône et étiquette de locuteur avec barres vocales animées. Les changements de sujet s'accompagnent d'un fondu en plein écran et d'un whoosh, les icônes apparaissent avec un pop, et la dernière scène comporte un bouton d'abonnement et des crédits. Elle peut s'ouvrir avec la voix clonée de l'utilisateur.

Lisez /hyperframes avant de modifier une composition. Les scripts ci-dessous se trouvent dans le dossier scripts/ de cette compétence. Exécutez-les depuis le dossier du projet vidéo.

0. Entretien préalable

Ne faites aucune recherche, n'écrivez ni ne générez quoi que ce soit tant que ceci n'est pas terminé. Une vidéo rendue est longue à refaire, alors tranchez les décisions en amont. La méthode provient de la compétence d'interrogatoire de Matt Pocock.

Les décisions forment un arbre : certaines ne peuvent être posées qu'une fois que d'autres sont réglées. Travaillez par tours :

  1. Posez toutes les questions dont vous pouvez répondre aux prérequis maintenant, et rien qui dépende d'une réponse que vous n'avez pas encore entendue. Cette question attend un tour ultérieur.
  2. Numérotez chaque question et donnez votre réponse recommandée, formulée de sorte que « oui » l'accepte.
  3. Attendez les réponses, puis déterminez ce qu'elles débloquent et posez le tour suivant. Une réponse peut également rendre une question prévue inutile : abandonnez-la.

Formatez chaque question comme ceci :

❓ **Q1** - **<titre>** : <la question>

➡️ <votre réponse recommandée>

Les faits sont votre travail, les décisions sont les leurs. Ne demandez jamais ce que vous pouvez rechercher : si VoiceStudio fonctionne, quels profils vocaux existent (GET /profiles), ce qu'il y a dans le dossier, ce que dit la recherche. Ne répondez jamais à une décision à leur place. Posez les questions en texte brut, afin qu'ils puissent répondre avec leurs propres mots.

Les décisions à couvrir, approximativement dans cet ordre :

TourDécisions
1Le sujet et l'angle spécifique. Qui regarde et ce qu'ils savent déjà. Ce que les spectateurs devraient faire ensuite. Durée cible.
2Les deux animateurs : qui ils sont et comment ils se rapportent, par exemple expert et client. Ton. Nom de l'émission. Si elle s'ouvre avec la propre voix de l'utilisateur.
3Si elle s'ouvre avec leur voix : quel profil, et les mots exacts. Accents et caractéristiques vocales pour les animateurs conçus.
4Après la recherche : quels résultats utiliser, et toute affirmation qu'ils veulent omettre. La liste des sujets, dans l'ordre.
5Aspect et son : le type de photos, l'icône pour chaque sujet, les modifications éventuelles des fondus, du whoosh et du pop. Où la vidéo sera publiée.

Passez tout ce qui est déjà répondu dans la demande. S'ils disent « vas-y » ou « décide toi-même », arrêtez de demander, prenez vos réponses recommandées et listez-les. Il n'y a pas de limite de questions, mais ne demandez pas pour le plaisir : chaque question doit modifier la vidéo.

Terminez en décrivant le plan en quelques lignes : sujet, public, durée, animateurs, ouverture, liste des sujets et appel à l'action. Attendez qu'ils confirment avant de commencer l'étape 1. Si quelque chose rouvre une décision plus tard, comme une recherche qui contredit l'angle, arrêtez-vous et demandez.

1. Vérifier la configuration

  • curl -s "$VOICESTUDIO_URL/profiles" devrait répondre. URL par défaut : http://localhost:3000. Si le serveur a une clé API, VOICESTUDIO_API_KEY doit être définie. N'écrivez jamais la clé dans un fichier de projet.
  • ffmpeg et node sont dans le PATH, et les compétences HyperFrames sont installées.

Si quelque chose manque, arrêtez-vous et orientez l'utilisateur vers le README de cette compétence.

2. Créer le projet

npx hyperframes init <dir>, puis copiez templates/script.example.json dans <dir>/script.json.

3. Rechercher et écrire script.json

Recherchez d'abord le sujet. Chaque statistique a besoin d'une source réelle : mettez-la dans le champ source de cette scène et n'inventez pas de chiffres. Écrivez un langage naturel, environ 150 mots par minute.

ChampSignification
showNom de l'émission, affiché sur chaque scène
chipsÉtiquettes de crédit sur la dernière scène
voicesUne entrée par locuteur. name, role, color, plus soit profile_id soit instruct et seed
scenesOrdonnées par apparition. kicker, title, icon, facultatif sub et source. La dernière est l'outro
linesTours de parole dans l'ordre : who, scene, text. Les lignes d'une scène doivent être contiguës

icon est un nom d'icône de Lucide qui convient au sujet, par exemple phone-call.

Pour commencer par la propre voix clonée de l'utilisateur, ajoutez une voix avec son profile_id VoiceStudio (depuis GET /profiles), donnez-lui une première scène, et terminez la ligne par un transfert comme « C'est parti ! » Ne clonez une voix qu'avec l'autorisation de son propriétaire.

Montrez le script à l'utilisateur avant de générer les voix.

4. Générer les voix

python3 <skill>/scripts/make_voice.py

Cela écrit assets/audio/ et assets/lines.json. L'audio est mis en cache, donc après avoir modifié le script, il ne génère que ce qui a changé. Si l'utilisateur reclone une voix, supprimez son audio de assets/audio/ pour qu'il se régénère, et confirmez d'abord que le ref_audio_path du profil a changé : un clone qui n'a pas été sauvegardé laisse l'ancienne voix en place. Faites écouter l'audio à l'utilisateur avant de rendre.

5. Ajouter images, icônes et sons

Images : chaque scène a besoin de assets/img/<id-scène>.jpg, paysage, au moins 1920 de large, et une photo différente de la scène précédente, pour que chaque changement de sujet soit visible. Utilisez uniquement des images que l'utilisateur peut publier, par exemple des photos sous licence CC de Wikimedia Commons. Enregistrez chacune dans assets/img/credits.json comme {"<id-scène>": {"artist": "...", "license": "...", "page": "..."}}. La dernière scène affiche les noms des artistes.

Icônes :

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/<nom-icône>.svg assets/icons/   # une fois par icône de scène
rm -rf package lucide-static-0.460.0.tgz

Sons : exécutez ceci et copiez le fichier que chacun affiche :

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 <chemin whoosh> assets/sfx/whoosh.mp3
cp <chemin pop> assets/sfx/pop.mp3

Créditez tout son CC BY sur la dernière scène via chips.

6. Construire et vérifier

python3 <skill>/scripts/build.py

puis npx hyperframes check. Corrigez toutes les erreurs. Exécutez ensuite npx hyperframes snapshot --at <secondes> et regardez les images aux changements de scène avant de rendre. Les fondus sont en plein écran aux heures de début de scène que build.py affiche.

7. Rendre

npx hyperframes render. Le fichier MP4 atterrit dans renders/. Comptez plusieurs minutes par minute de vidéo.

Vérifiez le fichier, puis dites à l'utilisateur ce que vous avez mesuré : npx hyperframes audio <video> --json indique si le son est présent et si l'intensité sonore est dans la plage. Vous pouvez mesurer le son mais pas l'entendre, alors demandez-leur d'écouter.

Skills associés