Reproduction 1:1 de vidéo de vulgarisation de livre (chaîne de production)
Décomposer le format vidéo d'un compte de référence en une recette réutilisable, puis utiliser une chaîne de production industrialisée (portes d'approbation du storyboard → timeline TTS image par image → superposition de texte au rendu → rendu headless image par image) pour produire un contenu original dans le même format. Ce qui est reproduit, c'est le format (structure / habillage / rythme / style graphique), pas le contenu – le texte, les images, la voix sont entièrement originaux.
Ce skill a été validé complètement avec le livre « Thinking, Fast and Slow » (référence : le compte « 向不惑 », 109 plans, 654,9 s de vidéo finale).
Avant de commencer, confirmer trois choses avec l'utilisateur
- Vidéo de référence : chemin du fichier local ou lien (Douyin / Bilibili, etc.). Si le fichier vidéo n'est pas disponible, demander à l'utilisateur de faire un enregistrement d'écran ou de télécharger la vidéo dans le projet.
- Titre du livre de cette session : quel livre sera traité (idéalement management, cognition, psychologie, business, développement personnel).
- Nom de marque + Nom de persona : par exemple « Laboratoire ZhiXing / Mark ».
Phase A · Initialisation du projet
PROJ=répertoire du projet (défini par l'utilisateur ou créé)
mkdir -p $PROJ/{00_benchmark,01_script,02_storyboard,03_audio,04_subtitles,05_assets/images,07_hyperframes_production,08_publish,scripts}
cp <chemin_du_skill>/templates/{pipeline.py,create_storyboard.py,gen_audio_minimax.py,build_hyperframes_html.py,render_html_video.py} $PROJ/scripts/
cp <chemin_du_skill>/templates/.env.example $PROJ/.env # l'utilisateur remplit MINIMAX_API_KEY
Dépendances : python3 + playwright (incluant chromium) + ffmpeg. Si manquantes, les installer : pip install playwright && playwright install chromium.
Phase B · Analyse de séquence → Production de la recette
Opérer sur la vidéo de référence selon references/benchmark-analysis.md pour produire 00_benchmark/recipe.md (recette en 5 couches : spécifications / rythme / structure / visuel / audio). Ensuite, injecter la recette dans les modèles :
| Élément de recette | Emplacement d'injection |
|---|---|
| Mots-clés de style visuel du corps | STYLE_SUFFIX dans create_storyboard.py |
| Description de fond de carte de chapitre / fond de carte de fin | CARD_BG_PROMPT / OUTRO_CARD_PROMPT dans le même fichier |
| CSS de couleur d'accentuation / titre | #ffde59 (jaune d'accentuation) / #e8c66a (or des titres) dans build_hyperframes_html.py |
Le modèle par défaut inclut la recette « bande dessinée rétro américaine + fond noir et or » (référence : compte « 向不惑 »). Si la vidéo de référence suit déjà cette direction, l'injection peut être ignorée.
Phase C · Rédaction du script (structure en six parties)
Écrire 01_script/final.md selon references/copywriting-template.md.
Règle absolue : chaque phrase doit pouvoir être traduite en une image concrète – le barrage de couverture de l'étape suivante dépend mot à mot du script. En parallèle, modifier la section 【Configuration de chaque épisode】 en haut de create_storyboard.py (SCRIPT_MD pointe par défaut vers final.md, BOOK_TITLE).
Phase D · Storyboard (Barrage ①)
Remplir chaque phrase du script dans les quadruplets SHOTS du fichier scripts/create_storyboard.py (voix off = copie exacte de la phrase, image = traduction littérale, card_id, overlay_text), puis :
python3 scripts/create_storyboard.py
Si le barrage de couverture n'est pas validé, s'arrêter et corriger. Ne jamais continuer avec un barrage défaillant. Sortie : 02_storyboard/prompts.tsv + nano_banana_prompts.md.
Phase E · Génération d'images en batch (étape manuelle)
Transmettre l'intégralité du fichier nano_banana_prompts.md à l'outil de génération d'images de l'utilisateur (Gemini Antigravity / Nano Banana ou tout autre outil). Instructions clés : 16:9, nom de fichier exactement égal au nom dans la liste, placer dans 05_assets/images/, ignorer les fichiers déjà existants. Produire N images de corps + chapter_card_bg.png + outro_card.png. Cette phase peut être exécutée en parallèle de la phase F.
Phase F · Doublage + timeline image par image
python3 scripts/gen_audio_minimax.py --limit 3 # d'abord synthétiser 3 plans pour que l'utilisateur teste la voix
python3 scripts/gen_audio_minimax.py # version complète (limité à 18 RPM, ~110 plans ≈ 7 minutes)
Timeline = durée calculée à partir du nombre d'octets PCM, précise plan par plan, sans Whisper. Pour modifier un mot, ne resynthétiser que ce plan (cache par hachage).
Phase G · Rendu de la vidéo (Barrage ② + moteur)
python3 scripts/build_hyperframes_html.py # Vérification de complétude : ne rend que si « tout est en place »
python3 scripts/render_html_video.py --start 0 --duration 6 --out /tmp/smoke_hook.mp4
python3 scripts/render_html_video.py --start <moment de la carte de chapitre> --duration 6 --out /tmp/smoke_card.mp4
python3 scripts/render_html_video.py --start <5 secondes avant la fin> --duration 6 --out /tmp/smoke_outro.mp4
# Après vérification visuelle des trois extraits de fumée, lancer le rendu complet (~110 plans ≈ 11 min de vidéo, rendu ≈ 14 min)
python3 scripts/render_html_video.py
Si le rendu est interrompu, relancer directement (reprise de pause). Le rendu peut être prévisualisé dans un navigateur : open 07_hyperframes_production/index.html (espace pour lecture, ←→ pour avancer/reculer de 5 secondes).
Phase H · Validation + Publication
Liste des commandes de validation, points clés de vérification visuelle par image, modèles de matériel de publication (formule de titre / hashtags / vignette / commentaire épinglé) : voir references/pipeline-guide.md. Les éléments de publication sont écrits dans 08_publish/.
Règles strictes (ne jamais enfreindre)
- Ne pas passer à l'étape suivante si un barrage n'est pas validé : barrage de couverture (script = voix off), barrage de complétude (rendre uniquement si toutes les images sont présentes).
- Les clés API ne vont que dans
.env– aucun script, document ou artefact de conversation ne doit contenir de clé codée en dur. - Ne pas inscrire de texte dans les images, tout le texte passe par la couche de rendu – cartes de chapitre, cartes de données, sous-titres, marque sont superposés via HTML, aucun redessin d'image en changeant de livre.
- Avant le rendu complet, trois extraits de fumée (hook / carte chapitre / fin) doivent être validés visuellement.
- Tous les prompts de génération d'images doivent systématiquement inclure le suffixe de couleur de style, un format 16:9, et interdire le texte et les enseignes dans l'arrière-plan.
Références de performance mesurées (calibrer les attentes de l'utilisateur)
Script de 3601 caractères → 109 plans → 654,9 s de vidéo finale ; TTS 7 minutes ; rendu à 24 ips (vidéo complète ≈ 14 min) ; temps de travail total ≈ une journée de travail (la rédaction du script représente plus de la moitié).