Video Editor · Vidéaste
Assemble des vidéos courtes 9:16 / 16:9 de type talking-head + superposition (titre / cutaway B-roll / chyron / sous-titres). La composition de base est autonome ; les séquences libres de droit / cartes d'actualité sont déléguées par ce skill à footage‑finder / news‑highlight.
Quand déclencher
L'utilisateur dit :
- « Monte cette vidéo », « Monter une vidéo », « Montage » — point d'entrée le plus courant
- « Faire une vidéo », « Produire la vidéo complète », « Mixer voix‑off et B‑roll »
- « Nouvel épisode [série internationalisation / IA / X] »
- « Ajouter sous‑titres / chyron / texte pop‑up / carte titre »
- « Ajouter animation / effets / visuels »
- « Ajouter des captures d'écran réelles d'articles / réactions réelles / images locales au style Maria » →
reaction_overlay(1080×1920 portrait ; lire d'abordrecipes/reaction_overlay.md)
Ne pas déclencher mais lié (délégué aux skills frères, video-editor comme orchestrateur) :
- Séquence libre de droit / stock footage / plan B-roll → appeler skill
footage-finder - Carte d'actualité (capture d'écran réelle + surlignage jaune) → appeler skill
news-highlight - Pure voix‑off, court métrage <30s → ne pas déclencher
Délégation : type de cue de montage → quel skill
Phase de découpage (porte 1) : attribuer un type à chaque cue ; deux types non natifs sont délégués :
| Type de cue | Qui le fait | Résultat |
|---|---|---|
real_footage | Skill footage-finder | mp4 réel découpé au format + page d’avis |
news_highlight | Skill news-highlight | mp4 carte d’actualité avec surlignage jaune (style Vox) |
source_progressive_highlight | Ce skill animator/cutaway/scene_source_progressive_highlight.html | Surlignage progressif sur capture d’écran réelle d’article/actualité, sans refaire la page média |
tenure_bullets | Ce skill animator/cutaway/scene_tenure_bullets.html | Liste numérotée avec personne à l’écran : élément courant en jaune, anciens en grisé |
numbered_pills | Ce skill animator/cutaway/scene_numbered_pills.html | Style YC – capsules blanches 01–04 avec bord arrondi orange, apparition groupe par groupe ; alternative au listicle pour le même contenu |
company_site | Ce skill recipes/compose_company_site.py | Capture vidéo plein écran du site réel + PIP circulaire continu de la personne ; PIP par défaut sur le site, éviter les zones de sous‑titres et zones clés |
cutout_sticker_slidein | Ce skill animator/cutaway/scene_sticker_slidein.html | Stickers transparents de personnages/objets sourcés, glissement de différentes directions ; ne pas utiliser les anciennes cartes de réaction avec cadre blanc |
source_quote / source_screenshot | Ce skill : trouver le texte original et capturer la page réelle | Capture d’écran réelle avec lien de la page d’origine, paragraphe correspondant et surlignage ; ne pas remplacer la citation par une carte refaite |
real_person_reaction | Ce skill : d’abord chercher le matériel utilisateur ou la vidéo publique originale, si nécessaire déléguer à footage-finder | Photo ou courte vidéo réelle sourcée ; ne pas remplacer automatiquement par des Emoji |
| opener / chyron / cutaway / listicle / spec_review | Ce skill animator/opener | HTML → mov/mp4 |
reaction_overlay (personne visible en continu, éléments réels apparaissant localement) | Ce skill recipes/reaction_overlay.py + composition vidéo existante | Composition d’images statiques superposées et de segments de personne réelle ; le JSON de cues, les liens sources et le matériel peuvent être réutilisés |
| Sous‑titres | Ce skill subtitle | Sous‑titres avec mots‑clés surlignés |
Suggestions de matériel dans le script de voice‑over : à lire avant de créer les cues
S’applique aux vidéos complètes avec images, aux cues d’animation, à reaction_overlay et au slidecast 3:4. Lorsque l’utilisateur fournit un script de voice‑over (HTML / Markdown / document Feishu), lire d’abord le corps du script et la section distincte « Suggestions de matériel » ; si seul un enregistrement audio ou vidéo est donné, vérifier d’abord si un script correspondant existe dans le dossier du même sujet. Les tâches ponctuelles (sous‑titres ou titre uniquement) ne nécessitent pas cette étape.
- Les « Suggestions de matériel » sont une intention éditoriale, pas un texte à réciter ; la transcription Whisper ne sert qu’à vérifier ce qui a été réellement dit et à déterminer les timecodes, ne pas perdre les suggestions d’images du script en refaisant la transcription.
- Lire chaque suggestion avec « phrase d’ancrage / image à montrer / matériel source ou lien / alternative ». D’abord trouver la position dans la transcription réelle via la phrase d’ancrage ; si le script a changé de mots ou d’ordre, réaligner sémantiquement, ne pas appliquer mécaniquement les secondes estimées du script. Ne pas forcer des images sur des passages non prononcés.
- Ajouter une colonne « Suggestion du script → adoptée / adaptée / sautée » dans le tableau de cues de la porte 1. Pour les suggestions adoptées, conserver le lien d’origine ; pour les adaptées ou sautées, écrire une raison et proposer une image alternative. Pour les passages sans suggestion dans le script, on peut toujours ajouter des cues basés sur le contenu du voice-over, mais les marquer comme « nouveaux ».
- Si le lien original n’est plus actif, si les faits ont changé ou si l’image n’est pas adaptée au format, vérifier puis remplacer ; ne pas utiliser de captures d’écran inexactes, de pages contrefaites ou d’images décalées par rapport au voice‑over réel sous prétexte d’exécuter consciencieusement la liste.
- Si un script existe mais qu’aucune section de suggestions n’est trouvée, terminer le montage normalement, ne pas demander à l’utilisateur de réécrire le script. Le plan final de cues est basé sur le voice‑over réel + les retours de l’utilisateur en porte 1.
Pour rédiger un nouveau script de voice‑over, le format correspondant se trouve dans la section « Suggestions de matériel pour le voice‑over » du skill html-report.
Pages réelles et animations dynamiques : règles de montage par défaut
- Quand on parle d’une entreprise / d’un produit spécifique, montrer son site officiel réel ou son interface produit. Conserver l’identité du site, le nom de l’entreprise et un visuel réel prouvant l’identité ; privilégier l’enregistrement du défilement de la page, du positionnement de la souris, de la démo produit ou d’un zoom local. L’enregistrement du site se fait avec
recipes/capture_company_site.js, la composition avecrecipes/compose_company_site.py; ne pas coller seulement un logo, et ne pas remplacer le site officiel par une carte de page contrefaite. Utiliser une capture d’écran officielle vérifiable uniquement si le site est inaccessible, et mentionner la raison dans le tableau de cues. - Les informations qui avancent avec le voice‑over doivent apparaître une par une. Par exemple, pour « 1, 2, 3, 4 » quatre points, les révéler dans l’ordre à mesure qu’ils sont cités, surligner l’élément courant, laisser brièvement la vue d’ensemble à la fin ; une liste complète de 11 éléments peut entrer par groupes/split‑screen, mais à la fin le public doit pouvoir voir les 11 éléments. Ne pas afficher les quatre points en page statique dès le premier, ni utiliser des animations flottantes sans information à la place d’une présentation séquentielle.
- Les documents statiques plein écran peuvent superposer un PIP dynamique de la personne ; l’affichage du site officiel réel superpose par défaut un PIP, même si le site défile. Pour le site officiel, utiliser
recipes/compose_company_site.py: enregistrement plein écran du site réel, et découper la vidéo continue du voice‑over en cercle de petite taille. Les séquences B‑roll libres de droit ne superposent pas de PIP par défaut. Pour chaque cue, d’abord indiquer la zone de sous‑titres et le visuel clé le plus important, puis choisir parmi quatre positions sûres : haut‑gauche, haut‑droite, milieu‑gauche, milieu‑droite ; si plusieurs cues adjacents ont des positions sûres, alterner pour que tous les sites d’entreprise ne soient pas fixés dans le même coin. Ne pas bouger à l’intérieur d’un même cue. S’il n’y a pas de position sûre, réduire ou modifier le recadrage de la page ; si toujours pas de solution, noter l’exception et annuler. Pour les documents statiques, utiliserrecipes/compose_static_pip.py. Voir section 9 deCONVENTIONS.md. - Pour une liste ordonnée, proposer d’abord deux visuels réels au choix. Pour un même groupe de 3‑5 éléments,
scene_numbered_pills.htmlfait des capsules numérotées plein écran,scene_listicle.htmlfait une liste numérotée avec cercle jaune et personne à l’écran ; en porte 2, les deux sont présentés côte à côte avec le même texte. Privilégier les capsules numérotées pour une vue d’ensemble par catégorie/direction, et le listicle pour une explication continue de chaque élément ; les puces de style Hunger sont une troisième variante plus légère avec personne à l’écran. Après validation, faire apparaître les éléments un par un selon le temps réel du voice‑over, ne pas montrer la vue d’ensemble dès le premier élément. - Les petits stickers et les images adaptées à l’entrée peuvent glisser depuis les quatre bords. Les stickers de personnes/objets réels, memes, photos, captures d’écran partielles peuvent entrer en rotation depuis le haut, la gauche, le bas ou la droite, ou avec une graine fixe aléatoire ; vérifier d’abord que le chemin ne traverse pas les sous‑titres, les visages, le texte original ou les données clés. Pour les enregistrements plein écran de site et les vidéos originales nécessitant une identification directe, décider selon le contenu si le glissement est approprié, ne pas forcer une transition juste pour de l’animation. L’entrée dure environ 0,25–0,35 seconde, laisser suffisamment de temps de lecture après stabilisation ; ne pas déplacer aléatoirement dans le même plan. Utiliser
animator/cutaway/scene_sticker_slidein.htmlpour les stickers, ne pas activer les anciennes cartes de réaction Emoji avec cadre blanc. - Seuil de rythme visuel : un voice‑over explicatif avec portrait continu ne doit pas dépasser 8 secondes par défaut. Compter à partir de la sortie du dernier visuel utile jusqu’à l’entrée du suivant ; au‑delà de 8 secondes, marquer dans le tableau de cues et expliquer pourquoi ce blanc. Dans les 5 premières secondes, donner d’abord le titre ou la première preuve. C’est la ligne de contrôle du montage de ce compte, pas une fréquence fixe mesurée sur les vidéos de Maria ; ne pas insérer d’Emoji ni de cartes de texte répétant le voice‑over pour atteindre un nombre de secondes. Un visuel utile doit être une page source, une opération produit, une séquence réelle, un graphique, une liste séquentielle ou un nouvel état visuel informatif ; les sous‑titres ordinaires, les titres permanents et les simples changements de bouche ne comptent pas. Détails complets et QA dans
CONVENTIONS.md.
Étape zéro · Format + point d’entrée (★ video-editor est le point d’entrée unique de tout le pipeline)
video-editor est l’orchestrateur — l’utilisateur entre ici pour faire une vidéo, pas besoin d’aller d’abord cliquer sur footage‑finder / news‑highlight / data‑viz. Une fois déclenché, la première chose à faire est de demander le format avec AskUserQuestion :
Cette vidéo est en portrait ou en paysage ?
- 9:16 portrait (Douyin / Xiaohongshu / Vidéo / Reels) → 1080×1920
- 16:9 paysage (YouTube / Bilibili) → 1920×1080
- 3:4 tutoriel pratique (démonstration enregistrée / « Comment je fais X avec l’IA ») → 1080×1440 · va dans le sous‑module
slidecast/
Le format suit le type de contenu : tutoriel pratique / démonstration enregistrée → par défaut 3:4 (slidecast) ; les vidéos d’opinion / vlog / culture générale sont en 9:16. Ne pas forcer un voice‑over normal dans un format de fenêtre d’enregistrement 3:4, ni faire un tutoriel en 9:16.
Raccourci : si l’utilisateur a déjà dit le format (« fais un 16:9 » / « pour YouTube » / « pour Bilibili »), ne pas demander, fixer directement.
Le format détermine la suite :
| 9:16 | 16:9 | |
|---|---|---|
| Toile du sous‑module | 1080×1920 | 1920×1080 |
| Plans B‑roll libres de droit | footage-finder --vertical | footage-finder (paysage par défaut) |
| Carte d’actualité | news-highlight (version portrait) | news-highlight (Root 1920×1080 par défaut) |
| Graphiques | data-viz (1080×1920) | data-viz (1920×1080) |
| Composition | recipes/compose_dual.sh.template | recipes/compose_16x9.sh.template |
| Zone de sécurité | Section 3 de CONVENTIONS | Section 1, ligne 16:9 de CONVENTIONS |
Tous ces sous‑skills supportent déjà le paysage ; video-editor s’occupe d’assigner le travail + la composition finale, l’utilisateur ne dialogue qu’avec video-editor. En 16:9, on dispose en plus d’une capacité person-pip (voice-over propre → si pas d’information, plein écran ; si information, réduire la personne en petite fenêtre en bas à droite, voir section 9 de CONVENTIONS + template compose_16x9).
Une fois le format déterminé, suivre le routage des formes finales ci‑dessous.
Première étape · Demande de routage (★ à exécuter immédiatement après déclenchement)
Ne pas présupposer que l’utilisateur veut le flux complet. Demander d’abord une fois avec AskUserQuestion. Diviser par « ce que ça doit donner à la fin » (forme finale), pas par « ce que tu veux faire » (action) — l’utilisateur pense au résultat, pas au processus.
Quel est le résultat final que tu veux obtenir ?
- Une vidéo finie avec sous‑titres : vidéo déjà montée, ajouter seulement les sous‑titres → sous‑module
subtitle/(pas de trois portes)- Une carte titre / générique : superposition transparente alpha 4,5 s → sous‑module
opener/(pas de trois portes)- Une vidéo complète avec animations : ajouter chyron / cutaway / listes animées → sous‑module
animator/(trois portes obligatoires)- Partir de zéro pour faire une vidéo complète : voice‑over → titre → animations → sous‑titres, tout compris → opener → animator → subtitle en série
- Tutoriel pratique en voice‑over (3:4) : voice‑over → diapositives de démonstration case-step + sous‑titres, tu superposes l’enregistrement / le visage → sous‑module
slidecast/(trois portes obligatoires)
Format des options : utiliser uniquement les chiffres 1 / 2 / 3 / 4 comme préfixe des options de AskUserQuestion, interdire les caractères cerclés / katakana (①②③④, ㋐㋑㋒㋓) — la police de l’utilisateur ne les supporte souvent pas, ils s’affichent en charabia.
Raccourcis (cas où on n’a pas besoin de demander et on va directement) :
| Parole de l’utilisateur | Aller directement à |
|---|---|
| « Aide‑moi à ajouter des sous‑titres / mettre des sous‑titres / incruster des sous‑titres » | 1 · subtitle/ |
| « Fais un générique / une carte titre / un opener » | 2 · opener/ |
| « Nouvel épisode série X » / « Faire une vidéo » / « Produire la vidéo complète » | 4 · Flux complet |
| Contexte : déjà en train de faire une vidéo complète, veut ajouter un chyron / cutaway | 3 · animator/ |
| « Tutoriel pratique / démonstration enregistrée / Comment je fais X avec l’IA » / Série 100 cas pratiques IA | 5 · slidecast/ (3:4) |
| « Comme Maria, ajouter des articles réels, des réactions réelles et des images à un voice‑over portrait », et l’utilisateur a déjà fourni la vidéo originale | 3 · reaction_overlay ; d’abord confirmer que la source est 1080×1920, lire recipes/reaction_overlay.md |
Principe clé : 1 et 2 sont des opérations ponctuelles, ne passent pas par les trois portes ; 3 et 4 doivent passer par les trois portes.
★ Flux de travail en trois portes (obligatoire pour les options 3 et 4, aucun saut autorisé)
⚠ Le choix de routage n’est pas un permis de rendu — le fait que l’utilisateur choisisse 3 ou 4 signifie seulement « je veux suivre le processus animator ». Une fois entré dans animator, il faut suivre les trois portes, et à chaque porte s’arrêter et attendre une confirmation explicite de l’utilisateur avant de passer à l’étape suivante. Même si l’utilisateur a déjà donné le titre / le nombre de cues / le texte, cela ne signifie pas qu’il vous autorise à sauter une porte.
Porte 1 · Plan textuel ─► Donner le tableau de cues en markdown dans le chat
STOP · Attendre que l’utilisateur réponde « OK / modifier X / supprimer Y / verrouiller » ou autre expression claire
❌ Ne pas écrire de HTML de cue
❌ Ne pas commencer le rendu
|
Porte 2 · Spec Review ─► Écrire le HTML de chaque cue
★ D’abord exécuter node recipes/lint_layout.js --all <répertoire des cues>
(zone de sécurité / taille de police min / largeur de texte ≤920 / centrage / nombre de tailles de police, corriger les échecs avant de continuer)
Ensuite générer _review/spec_review.html
STOP · Dire à l’utilisateur « Ouvre file:///<projet>/_review/spec_review.html pour voir, donne‑moi ton retour »
❌ Ne pas rendre le ProRes mov
❌ Ne pas composer la vidéo complète
|
Porte 3 · Dernier appel avant rendu ─► AskUserQuestion : récapitulatif + choix éditoriaux + format de sortie (trois options)
STOP · Attendre que l’utilisateur choisisse
❌ Ne pas présumer du format de sortie
|
Rendu + composition + sous‑titres
Tant que l’utilisateur n’a pas dit « verrouillé / confirmé / commence / rends / OK » ou une expression affirmative claire, vous êtes toujours dans la porte précédente.
❌ Contre‑exemples (ne pas faire)
| Comportement erroné | Conséquence |
|---|---|
| L’utilisateur choisit 4 + donne le titre → vous extrayez le voice‑over + transcrivez + écrivez le HTML + lancez le rendu | Saute la porte 1, le point de contrôle le moins coûteux « modifier 1‑2 mots suffit », perte de 5‑10 min + 10k tokens |
| L’utilisateur dit « je veux ça » → vous jugez « puisqu’il le veut, je lance le rendu » | Saute la porte 2, une erreur visuelle/taille de police coûte 5× plus cher à refixer après rendu (30 s de rendu × nombre d’échecs) |
| En porte 2 l’utilisateur dit « cue 3, modifier X » → vous modifiez et rendez directement | Saute la porte 3, n’a pas laissé l’utilisateur choisir le format de sortie (vidéo originale seule / calque broll transparent / les deux), peut rendre 500MB de ProRes inutile |
| L’utilisateur ne dit rien d’affirmatif → vous supposez qu’il veut avancer et vous avancez | L’utilisateur n’a pas fini d’examiner, le rendu peut être hors sujet et tout refaire |
✅ Bon exemple
« Entrée dans animator. D’abord transcription + sortie d’un tableau de plan de cues en markdown pour que tu voies. C’est la porte 1 — pas d’HTML, pas de rendu, j’attends ton OK / modification / suppression. »
À la fin de chaque porte, utiliser une phrase explicite pour dire à l’utilisateur « Nous sommes à la porte X, attends ton OK » — ne pas avancer silencieusement.
Détails du processus + liste concrète des livrables par porte + baseline de nombre de cues dans animator/README.md.
Points d’entrée des sous‑modules
| Sous‑module | Fonction | Document d’entrée |
|---|---|---|
opener/ | Carte titre 4,5 s avec police sérif jaune, superposition transparente alpha | opener/README.md |
animator/ | chyron / cutaway / listicle / spec_review, flux en trois portes | animator/README.md |
subtitle/ | Transcription Whisper → superposition PNG avec mots‑clés surlignés → sous‑titres incrustés. 9:16 utiliser add_subtitles.py ; les longues vidéos 16:9 DOIVENT passer par make_events_16x9.py + burn_chunked_16x9.py (une seule chaîne brûle plantera, voir README) | subtitle/README.md |
slidecast/ | Tutoriel pratique en voice‑over (3:4) : voice‑over → diapositives case-step de démonstration coupées au timecode + sous‑titres → mp4 de prévisualisation + mov couche transparente | slidecast/README.md |
reaction_overlay | Voice‑over comme fond, priorité aux captures d’écran réelles sourcées et réactions réelles ; choisir le matériel et le temps d’arrêt selon le contenu, pas à fréquence fixe d’Emoji | recipes/reaction_overlay.md |
Conventions partagées
- Convention de livraison :
做内容/_运营文档/视频成片流水线-模板.md— une vidéo = deux dossiers du même nom (travail / livraison) + les trois produits par défaut de la porte 3 (vidéo complète / couche titre 3:4 / chronologie) dans~/Movies/<série>/<code vidéo>/. Tout le flux suit ce modèle. - Recette des livrables :
recipes/deliverables.md(comment rendre la couche titre transparente · comment générer la chronologie à partir du plan de cues · nommage du dossier de livraison) - Porte de rendu P0 : pour une vidéo 9:16 complète, exécuter
python3 recipes/preflight.py plan <projet>/preflight.jsonaprès la porte 1, et avant chaque rendu final exécuterpython3 recipes/preflight.py final <projet>/preflight.jsonet vérifier les images clés, remplir la review et repasser ; vérifier les titres à 0 s, les préréglages de sous‑titres, les blancs visuels >8 s et les obstructions PIP/Logo/attribution. Format dansrecipes/preflight.example.jsonetrecipes/deliverables.md. - Conventions visuelles :
CONVENTIONS.md(zone de sécurité, palette Hana, séquencement chyron, hiérarchie des tailles de police, règle climax) — à lire avant d’écrire du HTML pour tout sous‑module. - Lint de mise en page (★ obligatoire en porte 2) :
node recipes/lint_layout.js <cue.html>— après rendu puppeteer, vérification automatique de la zone de sécurité / taille de police min 22px / largeur de texte ≤920 / centrage / nombre de tailles de police, avec trois préréglages automatiques 9:16·16:9·3:4 ; pour les cues d’animation, juger sur l’état final d’arrêt. Ne montrer le spec review à l’utilisateur qu’après correction des échecs. Les éléments décoratifs intentionnellement hors limites ajouterdata-lint-ignore. - Auto‑diagnostic de l’environnement :
bash recipes/doctor.sh— à exécuter sur une nouvelle machine / en cas d’erreur de rendu (vérification ffmpeg / whisper / Chrome / puppeteer-core / avconvert / polices, 11 éléments). - Recette double sortie ffmpeg :
recipes/compose_dual.sh.template(mp4 + alpha mov optionnel). - Pièges connus :
recipes/PITFALLS.md(broll_reel flash / HyperFrames webm sans alpha / échappement#dans ffmpeg / grisaillement de la couche alpha / chemin chinois TCC, etc., 23 entrées). - Index des cas historiques :
recipes/examples.md(11 paradigmes de cues dans vos vraies vidéos).
Stratégie de double sortie
| Fichier | Usage | Quand le produire | Spécification |
|---|---|---|---|
<nom vidéo>_整片.mp4 | Prévisualisation / publication / review | À chaque itération | H.264 yuv420p · CRF 20 · avec audio + superposition |
<nom vidéo>_broll层.mov | Superposition dans le logiciel de montage (Premiere / AE / FCP) | Uniquement si l’utilisateur dit explicitement « version finale / couche de montage / calque ProRes / B‑Roll only » | ProRes 4444 yuva444p10le · transparent · muet |
Pendant l’itération, ne produire que le mp4 de la vidéo complète par défaut. Le rendu unique du calque broll prend ~30 s + ~500MB d’écriture disque, inutile pour la review d’itération.
⚠ Le calque broll est toujours une piste complète et synchronisée. Quand l’utilisateur dit « B‑Roll only », il veut cette piste entière, en aucun cas livrer N cues sous forme de fichiers mov séparés pour qu’il les monte lui‑même.
Pour la piste alpha avec cues non chevauchants, utiliser la composition par concat : gap transparent + cue + gap transparent + cue, le gap étant calculé selon la durée/nombre d’images réelle du cue via
ffprobe. Ne pas superposer des cartes semi‑transparentes une par une sur un canevas transparent[email protected]; cela rendrait les cartes blanc cassé gris‑noir lors de la superposition finale sur le voice‑over. Voir la règle 23 derecipes/PITFALLS.mdetrecipes/compose_dual.sh.template.Avant de livrer le calque broll, faire un QA sur fond réel : superposer le fichier final
<nom vidéo>_broll层.movsur le voice‑over original et capturer 4‑8 images clés / contact sheet, vérifier la couleur, l’alpha, le masquage du visage et le timing.spec_review.htmlne peut examiner que le HTML/l’animation, pas la composition ffmpeg finale.
Matrice de décision des titres (comment choisir quand l’utilisateur dit « ajouter un titre / un générique / des mots clés »)
| L’utilisateur dit | Par défaut = | Paramètres clés |
|---|---|---|
| « Ajouter un titre » / « title card » / « générique » / « opener » | opener/yellow.html (grand titre sérif jaune + sous‑titre italique blanc) | Alpha transparent · début vidéo à 0 s · top-third (padding-top 280px) · 4,5 s · ProRes 4444 mov |
| « Insister sur un mot à l’instant X » / « texte pop‑up » | animator/chyron/chyron.html | Capsule jaune · top 16% (y≈307 centre) · pop 1‑2 s |
| « Liste 1, 2, 3 » / « trois / quatre éléments » | animator/cutaway/scene_listicle.html | Liste numérotée révélée ligne par ligne · carte top 280px |
| « Carte de données plein écran / graphique comparatif » / « passer aux données X » | animator/cutaway/scene_blank.html | Cutaway fond blanc plein écran · légende top 280px · mp4 opaque |
Principes clés :
- Le « titre » de la vidéo = générique à 0 s, par défaut. Même si le voice‑over ne prononce cette phrase qu’à 22 s, le titre sort à 0 s. Conserver le format du compte : titre principal jaune + sous‑titre blanc ; même si le titre principal n’a qu’une ligne, garder la couche blanche, sauf si l’utilisateur spécifie explicitement une version monochrome. En porte 2, toute scène de titre personnalisée doit être vérifiée par rapport à
opener/yellow.htmlpour les couleurs et la hiérarchie. - Le titre du générique = superposition alpha transparente sur le talking head. Pas un plan séparé sur fond doré opaque.
- Cutaway de carte de données = plein écran opaque, couvre le talking head ; les autres superpositions (titre / chyron) sont transparentes par défaut.
Skills associés
hyperframes/hyperframes-cli— CLI HyperFrames (rendu HTML → mov/mp4), dépendance de rendu pour le sous‑module d’animation
Hors du périmètre de ce skill (délégué)
- Recherche de séquences libres de droit (Pexels / Pixabay) → skill
footage-finder - Carte d’actualité → skill
news-highlight - Génération de script / TTS voice‑over → fonction TTS du skill
hyperframes - Vérification de conformité du contenu → skill
content-audit