Que fait Explainer Short (idée → vidéo terminée) ?
Vous produisez UNE vidéo terminée par demande en suivant les 7 étapes ci-dessous dans l'ordre, une fois. Chaque étape a une commande, un résultat et une condition d'arrêt. N'inventez pas d'étapes supplémentaires.
Chemins : SKILL = le dossier contenant ce fichier. STUDIO = l'espace de travail vidéo
(par défaut : ./explainer-studio dans le projet courant ; réutilisez-le s'il existe). SLUG = identifiant en kebab-case
de la vidéo, ex. comment-fonctionne-https.
Limites strictes (pour garder l'exécution courte et peu coûteuse)
- Posez au maximum une question à l'utilisateur, et seulement s'il n'y a aucun sujet. Sinon, décidez vous-même (durée, format, marque) en utilisant les valeurs par défaut ci-dessous et indiquez vos choix dans la réponse finale.
check.sh→ correction →check.shau maximum 2 cycles de correction. Ensuite, effectuez le rendu et listez tout problème restant dans la réponse.- Régénérez la voix au maximum 2 fois (uniquement pour la durée ou un mot mal prononcé).
- Ne modifiez pas
src/kit/(sauf pour ajouter une icône). N'installez pas d'autres paquets ou outils. - Lisez
template/src/videos/example/une fois (c'est l'implémentation de référence). Ne lisez pas le code source du kit ;references/kit-api.mdle documente.
« Court », « reel », « explainer short » = le FORMAT vertical, pas le mode de longueur. Utilisez le mode de longueur « court » uniquement si l'utilisateur demande une vidéo rapide/très courte/moins d'une minute ou donne des secondes.
Valeurs par défaut : durée 95–120 s (300–370 mots ; « court » = 55–70 s, « complet » = la durée de référence 160–175 s — voir
references/script-guide.md), voix am_michael vitesse 1.18, marque = le nom/chaîne de l'utilisateur si connu, sinon "VotreMarque".
Les règles de style proviennent de la mesure de 23 vidéos de référence ; les preuves sont dans references/style-evidence/ (humains uniquement — vous n'avez pas besoin de les lire).
Étape 1 — Configuration (une fois par machine, ~3 min la première fois, ~2 s ensuite)
bash SKILL/scripts/setup.sh STUDIO
Condition d'arrêt : dernière ligne PRÊT : …. Si elle affiche OUTILS MANQUANTS, dites exactement à l'utilisateur quoi installer et arrêtez-vous.
(Définissez d'abord KOKORO_MODELS=<dossier> si les fichiers du modèle vocal existent déjà quelque part, pour éviter un téléchargement de 340 Mo.)
Étape 2 — Planification (pas encore de code)
Lisez references/script-guide.md. Ensuite, écrivez STUDIO/src/videos/SLUG/plan.md (≤ 25 lignes, après que l'Étape 3 ait créé le dossier) :
- Titre dans l'un des formats (Comment fonctionne X · X vs Y · Entretien : … · Conception système : comment fait X).
- Exemple fil rouge : une personne nommée + un produit/une entrée/une valeur concret(te) utilisé(e) du début à la fin.
- Temps forts (sections) avec des identifiants, 6–9, chacun = une idée.
- Étapes visuelles : lisez
references/visual-guide.md, puis écrivez une ligne par section :section → ajouté / déplacé / focus (projecteurs sur identifiants) / quitte(voir « Étapes de planification » dans ce fichier). Choisissez 3–4 accents et associez chacun à un élément.
Étape 3 — Script
bash SKILL/scripts/new_video.sh STUDIO SLUG
Écrivez STUDIO/src/videos/SLUG/script.json (format : voir le script.json de l'exemple). Règles importantes :
sections[].idunique, simple (accroche,scenario,mecanisme, …). La dernière section est l'appel à l'action.- Écrivez les nombres/symboles comme vous voulez qu'ils soient affichés et mappez-les à leur prononciation dans
pronounce("429": "quatre cent vingt neuf","API": "A P I","SQL": "sequel","k8s": "kubernetes"). - Phrases ≤ 18 mots. Seuls
. ! ?terminent les phrases (chaque phrase est synthétisée séparément). Vérifiez automatiquement par rapport à la liste de règles à la fin descript-guide.mdavant de passer à l'étape suivante.
Étape 4 — Voix
bash SKILL/scripts/voice.sh STUDIO SLUG
Affiche le début/la fin de chaque section et Terminé : <sec>s, <mots> mots, <mots/min> mpm. Condition d'arrêt : durée dans
la cible ±15 %. Trop long → coupez des phrases (pas la vitesse) et relancez une fois.
Étape 5 — Visuels
Lisez references/kit-api.md et l'exemple (STUDIO/src/videos/example/Video.tsx + stages/*.tsx).
Écrivez STUDIO/src/videos/SLUG/Video.tsx + un fichier par étape dans stages/. Non négociable :
- Le
atde chaque élément provient decue(section, mot)ousec(section).from— jamais de secondes codées en dur. - Un seul canevas continu : les éléments persistent, se déplacent, s'estompent et sont réutilisés. Pas d'effacement plein écran sauf entre les étapes.
- Quelque chose change visiblement au moins toutes les ~3 s de narration (nouvel élément, mise en évidence, changement d'état, déplacement).
- Focus = plan de projecteurs sur
<Canvas focus>(atténue le reste) — le principal mécanisme du style. - Pas de sous-titres. Légendes (
Conclusion) ≤ 7 mots, 2–6 par vidéo. - Gardez le contenu dans la zone de sécurité (x 60–1020, y 280–1480 ; titre ≈150 ; légende juste en dessous du diagramme).
- Remplissez la largeur : panneaux principaux l 960 (ou 2 × 465). Rien de plus petit que 26 px.
Étape 6 — Vérification (max 2 cycles de correction)
check.sh et render.sh démarrent un serveur local + Chrome sans tête. Dans un agent en mode bac à sable, exécutez les deux commandes
en dehors du bac à sable. Si votre environnement ne peut pas du tout le faire (Aucun port disponible trouvé, Chrome ne démarre pas,
appels hors bac à sable refusés) : arrêtez-vous après l'Étape 5, et dites à l'utilisateur d'exécuter check.sh puis render.sh lui-même
(donnez les deux commandes complètes). N'essayez pas de contournements.
bash SKILL/scripts/check.sh STUDIO SLUG # 3e argument optionnel : "12.5,30,41" = secondes supplémentaires à inspecter
Il vérifie chaque cue() par rapport au minutage vocal (instantané), vérifie les types, effectue le rendu d'environ 3 images par section + la carte de fin, et écrit out/SLUG/check/sheet.jpg
(+ NN.jpg images individuelles). Regardez l'image de la planche (et 2–3 images individuelles en taille réelle). Corrigez uniquement ce qui échoue :
| Vérification | Échec quand |
|---|---|
| chevauchement | des textes/boîtes entrent en collision ou sont coupés par le bord de l'écran |
| échelle | le diagramme utilise < 80 % de la largeur ou laisse y 900–1400 vide dans une section chargée ; un texte que vous devez plisser les yeux pour lire dans une image de 540 px de large |
| lisibilité | toute étiquette plus petite qu'environ 28 px, ou un texte sur une zone chargée |
| synchronisation | un élément apparaît avant son mot, ou une image montre un canevas vide/périmé alors que la narration parle de quelque chose |
| continuité | une étape ne semble pas liée à la précédente (tout remplacé) alors que l'histoire continue |
| focus | la chose dont on parle n'est pas mise en évidence (Focus / ambre / atténuer les autres) |
| densité | une image avec > 9 éléments visibles, ou > 2 lignes de texte de conclusion |
Les erreurs de type / cue non trouvé impriment la correction (la liste des mots valides). Corrigez et relancez.
Étape 7 — Rendu + livraison
bash SKILL/scripts/render.sh STUDIO SLUG
(Si Chrome sans tête est bloqué par un bac à sable, réexécutez cette commande en dehors du bac à sable.)
Ensuite, écrivez STUDIO/out/SLUG/upload.md : titre (= le titre de la vidéo, ≤ 60 caractères, 1 emoji à la fin autorisé),
description de 2 phrases, 5 hashtags, et une liste « Faits à vérifier » (chaque nombre/affirmation que vous avez cité de mémoire).
Réponse finale (courte) : le chemin du MP4, la durée, les chemins du SRT/de la couverture/de upload.md, les choix que vous avez faits (format, durée, exemple fil rouge), et tout problème connu restant. Arrêtez-vous ensuite.
Dépannage
| Symptôme | Correction |
|---|---|
cue non trouvé : "x" #1 dans la section "y". Mots : … | utilisez un mot de la liste imprimée, ou la bonne section |
| un mot est mal prononcé | ajoutez-le à pronounce et relancez l'étape 4 |
Impossible de trouver le module './timing.json' | l'étape 4 n'a pas été exécutée pour ce SLUG |
composition SLUG non trouvée | exécutez voice.sh (il enregistre la vidéo) |
Chrome / SIGABRT / ENOTFOUND remotion.media / Aucun port disponible trouvé | le bac à sable bloque le navigateur/port : exécutez la commande sans bac à sable (voir Étape 6) |
échec de la canonisation du chemin …/voice/.venv/bin/python3 ou autres erreurs uv/venv | supprimez STUDIO/voice/.venv et relancez setup.sh |
| une image montre un texte débordant d'un panneau | donnez au <El> un h plus grand, moins de lignes, ou une police plus petite (≥ 26 px) |
| vidéo trop longue/courte | modifiez le script (≈3.1 mots par seconde à la vitesse 1.18), relancez l'étape 4 |