Faire une vidéo, de bout en bout
Un guide : « que faire ensuite », dans l'ordre, avec l'échec derrière chaque règle pour que vous puissiez discuter plutôt qu'obéir. L'ordre est le même pour tous les sujets ; le mode change.
0 · Choisir le mode
Décidez avant tout le reste, et enregistrez-le comme mode: dans le STATUS.md de la vidéo. Cela change la source des références et la composition des images.
Tutoriel écran tutorial | Explicatif illustré illustrated | Hybride hybrid | Explicatif animé motion | |
|---|---|---|---|---|
| Enseigne | comment utiliser une application ou un outil | un concept : pathologie, physiologie, toute science | un concept, puis l'outil qui l'applique | un événement d'actualité, un incident ou un cas et ses leçons |
| Étape 3 | capture de reconnaissance de l'application | recherche de références : atlas, micrographies, objets réels | les deux, par temps | une fiche d'information sourcée (chaque chiffre à l'écran cité) |
| Étape 9 | capture définitive | aucun | seulement pour les temps d'application | aucun |
| Image | captures d'écran d'application, construites à partir de références | dessins, via remotion-whiteboard | chaque temps dans son propre genre | typographie, cartes, pages de journaux, jauges, via remotion-motion-explainer |
motion ne remplace rien : tout ce qui est dessiné (un stylo, une main, des images trait par trait) reste illustrated et passe toujours par remotion-whiteboard. La porte 2 en mode motion est l'approbation du propriétaire de l'aperçu silencieux avec des légendes temporaires.
Choisissez en fonction de ce que le spectateur doit voir, pas par habitude. Si aucun temps n'a besoin d'une interface réelle, c'est illustré. Sans modes, une référence de pathologie a été envoyée pour capturer une application qu'elle n'a jamais montrée.
L'ordre, et pourquoi cet ordre
0 Choisir le mode tutoriel, illustré ou hybride ; et le style
1 Définir le sujet angle, public, une idée
2 Valider les affirmations avant qu'un mot ne soit scénarisé
3 Références capturer l'application, ou rechercher quoi dessiner
4 Scénario puis le passer au linter
5 ── PORTE 1 ── un humain lit le script avant qu'une prise ne soit dépensée
5a Storyboard illustré : une image par temps, événements sur mots-clés
5b Images clés ── PORTE 2 ── le propriétaire approuve l'apparence, sur des images fixes
6 Enregistrer la voix off sarvam-tts.py : la voix clonée, une prise par temps
7 Master vers la cible de livraison
8 Mesurer → grille → mots les prises décident de chaque timing, jusqu'au mot
9 Capture définitive tutoriel et hybride : les flux exacts que le script demande
10 Construction le kit (illustré) ou les captures d'écran (tutoriel), sur la grille
10b Son effets venant de l'image, un fond sonore, baissé sous la voix
11 QA visuelle sonde, un seul focus, remplissage, écarts d'événements, feuille 2s, revue muette
12 Rendu
13 Publication métadonnées, chapitres, téléversement, planification
La voix avant l'image. La prise est l'horloge : chaque temps, animation et coupe est placé à partir de l'audio mesuré, puis du temps transcrit de chaque mot. Une estimation du nombre de mots était fausse de 25 % sur un script entier, et en médiane de 1,3 s par mot. Voir references/mistakes.md.
Capturer deux fois (tutoriel, hybride) : reconnaissance avant le script, pour ne promettre que ce que l'application fait ; l'enregistrement définitif après, quand le flux est connu.
Un seul focus à la fois. Un seul endroit dessiné ou écrit à la fois, dans l'ordre de lecture : la note, l'image, son étiquette, puis le pointeur. La vidéo doit enseigner sans le son : focus-check.py le mesure, un nouvel agent la regardant en muet la teste (09-motion.md, 11-visual-qa.md).
Deux portes humaines. Porte 1, le script : peu coûteux à modifier, les prises ne le sont pas. Porte 2, l'apparence, sur des images clés avant que chaque temps ne soit construit : sans cela, v2 a mis du texte sur un fond sombre vide.
Savoir où vous êtes d'abord : scripts/video-status.py sur le STATUS.md de la vidéo (status-and-resuming.md) ; mettez à jour le fichier en dernier avant de vous arrêter.
Non-négociables
- Une affirmation obtient une source primaire avant d'obtenir une phrase. Les sources secondaires sont assez souvent erronées pour que cela ne soit pas facultatif.
- Les interfaces simulées sont construites à partir de références capturées, jamais de mémoire (tutoriel, hybride). Trois reconstructions du composeur d'une application étaient erronées jusqu'à ce que la vraie chose soit mesurée.
- Les résultats inventés sont étiquetés à l'écran (
Simulé — à titre indicatif uniquement) ; les schémas indiquentImage simplifiée. - Aucune information privée n'apparaît dans aucune image : pas dans une démo, une barre latérale, une référence de compte en direct ou une étiquette de diapositive (12-pathology-visuals.md).
- Relisez les champs de formulaire écrits avant de les croire. Les valeurs tapées échouent silencieusement.
- Ne modifiez jamais manuellement un fichier de timing (
beats.json,lines.json). Ils sont générés.
Compétences qu'il orchestre
| Compétence ou kit | Son rôle dans une vidéo |
|---|---|
| le kit de cette compétence | node <skill>/scripts/install-kit.mjs <project> --style paper-notes : composants, style, polices, outils de QA et de construction. Installe d'abord la boîte à outils de remotion-whiteboard. |
remotion-whiteboard | Requis pour tout ce qui est dessiné ou écrit à la main : traits, texte manuscrit, le stylo. |
motion-design | easing et chorégraphie pour les éléments qui ne sont pas dessinés |
remotion-best-practices | Utilisation de l'API Remotion |
remotion-motion-explainer | Mode motion : son propre modèle, composants, scripts voix/légende/son et exemple travaillé (fridge-hack) |
video-promo-kit | Étape 13 pour tous les modes : variantes de miniature (le propriétaire choisit), carrousels 1:1 + PDF LinkedIn, description YouTube/chapitres/tags, texte LinkedIn/Instagram/WhatsApp |
youtube-uploader | Étape 13 : le téléversement lui-même via l'API Data (essai à sec, puis --confirm sur le oui du propriétaire), miniature, sous-titres, playlist, planification |
Si remotion-whiteboard n'est pas disponible, arrêtez-vous à l'étape de construction et dites-le ; n'improvisez jamais un composant de dessin. install-kit.mjs l'impose.
Où sont les détails : lisez chaque fichier à son étape, pas avant
| Fichier | Étape |
|---|---|
references/01-plan-and-validate.md | 1–2 |
references/02-capture-reference.md | 3 et 9 : capture, ou recherche de références quand illustré |
references/03-script.md | 4–5, y compris les demandes de la chaîne |
references/07-art-direction.md | 0 (le style) et 5a–10 : le style maison, sous forme de données |
references/08-storyboard.md | 5a–5b, Porte 2 |
references/04-voice.md | 6–8 |
references/09-motion.md | 8 (timing des mots) et 10 : arrivées, événements toutes les 2–4 s |
references/05-build.md | 10, prises tutoriel, la main tableau blanc, et la bibliothèque de dessin (objects.tsx) |
references/10-sound.md | 10b |
references/11-visual-qa.md, references/rubric.md | 11 |
references/12-pathology-visuals.md | 3 et 10, pour les images médicales |
references/13-longform.md | vidéos de plus de 12 minutes, chapitres |
references/06-publish.md | 12–13 : rendu, ready-to-upload/ → youtube-uploader → _uploaded/ (et video-promo-kit pour le matériel promotionnel) |
references/14-lessons-2026-10.md | tout mode : chiffres vocaux mesurés, vérification des prises Whisper, signaux de mots, son déclenché par composant, règles QA de la construction fridge-hack (les leçons de E01 sont intégrées dans 04, 05, 06, 09, 11 et mistakes.md) |
references/status-and-resuming.md | reprendre une vidéo, ou enregistrer une décision |
references/mistakes.md | quand quelque chose se comporte étrangement : à lire avant de déboguer |
Scripts fournis : chacun prend --help, et lit seulement le projet qui lui est donné
| Étape | Scripts |
|---|---|
| statut | video-status.py (sur quelle étape est une vidéo, selon le mode) |
| 4–5a | check-script.py (pièges TTS), check-storyboard.py (image par temps, mots-clés, écarts) |
| 5b | draft-takes.py (une grille provisoire avant que les prises n'existent, pour les images clés uniquement) |
| 6 | sarvam-tts.py (prises dans la voix clonée via l'API ; clé dans SARVAM_API_KEY ; --respell une série de formes parlées) |
| 7–8 | check-takes.py (Whisper chaque prise vs le script), master-audio.py, build-audio-grid.py, word-timestamps.py (temps exacts des mots) |
| 10 | install-kit.mjs <project> (le kit, un style, polices, outils, l'environnement Python venv), make-paper.py ; dans le kit, makeBeat/HL (beatspec.tsx) et la bibliothèque d'objets (objects.tsx, test silencieux kit-objects) |
| 10b | sound-design.py |
| 11 | focus-check.py, frame-fill.py, event-gaps.py, gap-words.py (mots prononcés dans chaque intervalle statique), contact-sheet.py ; les tools/qa.mjs, tools/stills.mjs (milieux, fins, toutes les N s), tools/build-all.sh (s'arrête avant le rendu si trop statique) du kit |
| 13 | chapters.py (chapitres YouTube à partir de la grille), captions-srt.py (téléverser les sous-titres à partir des timings des mots) |
Modèles : STATUS.md, STORYBOARD.md, MUTE-REVIEW.md dans templates/. Styles : styles/*.json.
Formats
Court : 1080×1920, livré en 2160×3840 (build-all.sh --deliver-4k). 26–56 secondes, une idée ; la première ligne et la première image décident tout. Les 360 px du bas sont réservés pour l'interface utilisateur.
Long : 1920×1080 à 30 ips ; sept à douze minutes, ou 15–30 pour un cours illustré construit en chapitres de 3–5 minutes (13-longform.md). Deuxième langue optionnelle en tant que piste alternative.
Ce qui est daté
Les prix, noms de modèles, limites de niveaux et dates légales dans les références étaient corrects à la date measuredOn ci-dessus. Tout ce qui est marqué VÉRIFIER est revérifié par rapport à sa source primaire avant d'être dit à la caméra. N'héritez jamais d'un nombre de cette compétence dans un script.