Reel Studio — comment une vidéo est réalisée
Le processus est le même pour chaque style. L'apparence et le son d'une vidéo proviennent de son style ; son public, son format, la voix et les sources d'images proviennent des réglages du studio. La compétence générique animated-video contient la méthode générale (brainstorming, storyboard, test muet, révision) ; là où elle diffère, cette compétence et celle du style l'emportent. Posez une question sous forme de recommandation pour qu'un « oui » soit une réponse complète. La recherche d'idées et leur enregistrement sur le tableau du projet relèvent de la compétence content-ideas, avant le début de ce processus.
L'espace de travail
projects/<id>/— un projet : une chaîne pour laquelle le créateur réalise des vidéos (le sélecteur de projet du studio ; l'invite indique lequel est ouvert). Son dossierconfig/contient ses réglages (Ajustes) :profile.json,voice.jsonetaccount.json(son Instagram, Mi cuenta) ;account/contient ce qui a été téléchargé sur ce compte. Ne touchez pas au dossier d'un autre projet sauf si on vous le demande.projects/<id>/videos/<slug>/— une vidéo : un projet Remotion copié à partir du modèle de son style.title.txt(son nom dans le studio),style.txt(un identifiant de style),audio/vo.txt(la narration, exactement telle qu'elle va à la voix),audio/beats.json(la structure du script),src/format.json(taille, fps, volume sonore),CREDITS.md,caption.md,out/(rendus, storyboards ; non versionnés).formats/<id>/format.json— un format : le type de vidéo (animation complète avec voix générée ou voix enregistrée du créateur ; le créateur qui parle face caméra avec des animations…), ce qui s'affiche à l'écran et comment c'est monté. Une vidéo nomme son format dansformat.txt(aucun : le format par défaut, animé).skillpointe vers ses propres instructions,overlayvers les fichiers qu'il ajoute par-dessus le modèle du style ;"footage": truesignifie que la vidéo commence à partir de son enregistrement dansfootage/("voiceOnly": true: seul son audio est utilisé).styles/<id>/style.json— un style : palette et signification de chaque couleur, polices, apparence, mouvement, images, ce qu'il faut éviter.skillpointe vers ses propres instructions,templatevers le projet Remotion que les nouvelles vidéos copient.config/(à la racine) — réglages partagés par tous les projets :images.json(sources d'images),social.json(scraper).tools/— scripts partagés.LESSONS.md— leçons des vidéos précédentes.projects/<id>/inspiration/<account>/— reels d'autres comptes étudiés dans la page Inspiración du projet :account.json(analysis.text: ce qui fonctionne pour ce compte) et par reelreel.json(métriques, légende),transcript.json,analysis.json(accroche, structure, visuels, CTA, ce qu'il faut retenir),hook.jpg(3 premières secondes) etsheet_NN.jpg(1 image/s). Servez-vous-en pour trouver des angles et des accroches lorsque demandé ; adaptez au profil du créateur, ne copiez jamais un script.
Les réglages viennent du studio
Reel Studio place le profil (langue, plateforme, audience, durée, règles de légende), le format de la vidéo, la voix et les sources d'images dans votre invite à chaque tour. Ils priment sur cette compétence et celle du style. Ne codez jamais en dur un identifiant de voix ou des réglages, une taille, une fréquence d'images ou un volume sonore cible.
Les clés API se trouvent dans le .env de l'espace de travail (définies dans Ajustes, à côté de leur utilisation : Voz, Extracción de datos). Les outils les lisent ; n'imprimez jamais de clé et n'en demandez pas dans le chat — si une clé manque, demandez au créateur de l'ajouter dans Ajustes.
Python : les outils qui n'utilisent que la bibliothèque standard s'exécutent avec python3 (python sur Windows) : tts.py, el_words.py, standin_words.py, commons.py, openverse.py, pexels.py, pixabay.py, unsplash.py, generate_image.py. Les outils qui nécessitent des paquets s'exécutent avec l'environnement virtuel de l'espace de travail, ../../../../.venv/bin/python (Windows : ../../../../.venv/Scripts/python.exe) : cutout.py, audio/mix.py et sheet.py (snap.sh l'utilise, ou ffmpeg quand il n'y a pas de venv). Les styles qui réalisent des découpes nécessitent le venv (Ajustes → Requisitos l'installe). Les chemins ci-dessous partent du dossier de la vidéo.
Avant de commencer
Lisez le format de la vidéo : formats/<id from format.txt>/format.json et, s'il en a un, sa compétence — elle dit comment ce type de vidéo est réalisé et prime sur les étapes ci-dessous là où elles diffèrent (par exemple, avec son enregistrement, il n'y a pas de script à écrire ni de voix à générer : le montage fournit les deux). Lisez le style de la vidéo : styles/<id from style.txt>/style.json et, s'il en a un, sa compétence. Le format ne décide jamais des couleurs, des polices ou des bordures : c'est le style qui le fait. Lisez LESSONS.md (la partie générale et celle du style). Un style sans compétence ni modèle est construit sur le modèle du style par défaut (template/), avec l'apparence modifiée selon son style.json ; dites-le lorsque vous commencez.
Étapes
- Nouvelle vidéo — le studio la crée à partir du premier message (dossier, titre, style, format, taille). Depuis un terminal ou la conversation générale :
scripts/new-video.sh <slug> [style] [format]. - Script — avec la compétence
video-script(accroche, maintien de la réponse, timing, liste de vérification), en partant des notes de l'idée si elle vient du tableau. Plateforme, langue, audience et durée depuis le profil ; mots ≈ la cadence mesurée de la voix × les secondes cibles. Objectif : portée, sauf indication contraire. Épelez les nombres dansaudio/vo.txt("mil cuarenta y dos") et retranscrivez-les en chiffres danssrc/captions.tsDISPLAY. Obtenez l'approbation. Écrivezaudio/vo.txtetaudio/beats.json. - Images — faites un brainstorming d'une image par temps avec un agent dédié (animated-video → trouver les images). Privilégiez un motif physique récurrent qui illustre le système tout au long du film (une armoire à fiches = le serveur, les tiroirs = les enregistrements). Les images maintiennent la question du script ouverte : la première image la pose, et aucune image ou titre à l'écran ne montre la réponse avant que la narration n'y arrive. Faites approuver le concept.
- Voix —
python3 ../../../../tools/tts.py audio/vo.txt audio/vo.mp3, puisffmpeg -y -i audio/vo.mp3 -ar 48000 public/vo.wavetpython3 ../../../../tools/el_words.py audio/vo.alignment.json public/vo.wav(→src/words.json,src/vo_env.json). Avant l'existence de la voix :python3 ../../../../tools/standin_words.py audio/vo.txt src/words.json(chronométrée à la cadence de la voix ; appelez-la un substitut). Faites d'abord un court échantillon lorsque quelque chose change dans la voix. Utilisez l'audio tel qu'il est renvoyé (ne coupez pas les pauses sauf si demandé). Chaque génération coûte des caractères : ne régénérez pas sans raison. - Images — recherchez librement sur le web à l'aide des outils de recherche et de navigation disponibles ; n'importe quel site peut être une source. L'invite liste des intégrations API optionnelles, pas une liste blanche ou un ordre obligatoire. Utilisez ces API uniquement lorsqu'elles sont activées et configurées ; la recherche web gratuite n'a pas besoin de réglages de source. Les téléchargements vont dans
assets/src/(non versionnés) ; enregistrez chaque image dansCREDITS.md(titre, auteur, licence si connue, lien original ; n'inventez jamais de licence). Quand les banques d'images ne conviennent pas, demandez une photo de téléphone du geste exact (fond uni, bonne lumière). La manière dont les images sont traitées relève du style. - Construction — agit dans
src/lib.tsACTS(coupe ~0.08 s avant le premier mot de chaque acte), légendes en unités de sens danssrc/captions.ts(vérifiées mot pour mot par rapport à la transcription), une scène par acte danssrc/film/scenes.tsx. Chaque temps provient d'un repère (cue('phrase'),at('phrase')), donc une nouvelle voix retarde le film. Tailles et images depuissrc/lib.ts(W,H,FPS,f()), jamais de nombres littéraux. Les composants sont ceux du style. - Storyboard —
./snap.sh out/board <sec> …génère des images fixes etsheet.png. Montrez une image clé par temps ; obtenez l'approbation. Passez les temps littéralement (dans zsh une liste séparée par des espaces dans une seule variable ne se divise pas). - Son — la feuille de repères dans
audio/mix.py, avec les temps des mêmes repères que les scènes utilisent ;../../../../.venv/bin/python audio/mix.py→public/mix.wav; définissezaudio: truedanssrc/Root.tsx. Quels sons : ceux du style. Dites à la livraison quels sons sont synthétiques. - Test muet — avant la première coupe complète :
ffmpeg -i out/<name>.mp4 -vf "fps=2,scale=270:-1,tile=8x5" out/mute/sheet_%02d.pnget donnez ces feuilles uniquement à un agent dédié (ignorez les légendes ; racontez ; listez les confusions et les ruptures). Corrigez, revérifiez les images fixes. - Rendu — sur macOS et Linux, éliminez d'abord les rendus orphelins :
ps -A -o pid=,ppid=,command= | awk '$2==1 && /chrome-headless-shell/ {print $1}' | xargs kill. PuisCONCURRENCY=3 ./render.sh <name>→out/<name>.mp4, normalisé au volume sonore du format. Vérifiez la durée, le volume sonore, la première et la dernière image. Écrivezcaption.mdavec les règles de légende du profil et les crédits ; son ouverture soulève la question de l'accroche plutôt que d'y répondre. Si la vidéo ou la légende demande aux gens de commenter un mot pour recevoir quelque chose, écrivezautomatizacion.json(Reel Studio → Instrucciones automatización) avec ce qui est collé dans ManyChat ou InstantDM, sous forme de chaînes :keyword(le mot exact),reply(la réponse publique au commentaire),dm(le message direct) etlink. Chacun est copié tel quel, donc pas de notes à l'intérieur ; laissez vide ce qui manque et n'inventez jamais de lien. Signalez le chemin, les problèmes ouverts, les vérifications ignorées, ce qui est synthétique ou inventé, et les crédits.
Après une vidéo
Les projets, vidéos, préférences, styles personnalisés et leçons personnelles des clients restent locaux et sont ignorés par le dépôt de l'application. Ne les commitez ni ne les poussez là-bas, même après un rendu ; n'ajoutez jamais de force des données ignorées. Un dépôt séparé pour le contenu client nécessite une demande explicite du créateur.
Ajoutez ce qui a coûté une révision à LESSONS.md, une ligne par raison, sous la partie générale ou celle du style.
Lorsque les chiffres de la vidéo publiée reviennent, lisez-les avec video-script → Révision. Aller rapidement de l'idée à la publication est important, car beaucoup de vidéos échoueront et chacune enseigne quelque chose, donc une nouvelle version change le moins possible : gardez ce qui a été approuvé, ne modifiez que ce qui est testé (une nouvelle accroche, une coupe là où les gens sont partis), et régénérez la voix uniquement pour la narration qui a changé. N'ajoutez pas de polissage que personne n'a demandé.