Reels
Clips verticaux extraits d'une vidéo longue (ou reels autonomes filmés comme tels).
Configuration : définissez votre marque ici
Modifiez ces éléments une fois avant la première exécution. Tout ce qui suit y fait référence par leur nom.
| paramètre | emplacement | par défaut |
|---|---|---|
| couleur d'accent | --brand en haut de scripts/motion.html, scripts/thisorthat.html, scripts/hook.html | #3b82f6 |
| police d'affichage (cartes d'accroche, titres, mots-clés) | --display-font dans les mêmes fichiers | Anton (gratuit, Google Fonts) |
| police des sous-titres | scripts/caption.html | Montserrat ExtraBold 800 (gratuit) |
| LUT de la caméra | "lut" dans reel-params.json, et la variable d'environnement LUT pour preview_reel.py | <CHEMIN_VERS_VOTRE_LUT>.cube |
| dossier de dépôt des nouveaux rushes | étape « Où les nouveaux rushes arrivent » | <VOTRE_DISQUE_RUSHES>/<DOSSIER_RECEPTION>/ |
| bibliothèque de b-roll | style animé, étape 6 | <VOTRE_DISQUE_RUSHES>/<tournage>/<cam>/full/ |
| suivi des reels | Étape 0 | drafts/social/reel-tracker.md dans votre projet |
| modèle whisper | variable d'environnement WHISPER_MODEL | ~/.cache/whisper-models/ggml-small.en.bin |
| CTA mot-clé de commentaire | éléments du plan cta | votre propre mot-clé (p. ex. GUIDE) |
| référence musicale de fond | étape musique | un morceau de référence que vous aimez (p. ex. un ID de morceau Spotify pour SearchRecordings) |
Polices : installez Montserrat et votre police d'affichage dans ~/Library/Fonts (ou conservez l'@import Google Fonts dans chaque fichier HTML et effectuez le rendu en ligne). Si votre police d'affichage est sous licence, gardez-la hors du dépôt.
Outils : whisper-cli (whisper.cpp), ffmpeg, Node + puppeteer-core, Google Chrome, DaVinci Resolve Studio avec scripting activé (et un Resolve MCP avec execute_resolve_code), macOS pour cutout.swift.
Étape 0 : lisez d'abord le tableau de bord
Avant de sélectionner ou de couper quoi que ce soit, lisez le suivi des reels.
- Remplissez les statistiques pour toute ligne qui est en ligne depuis 7 jours ou plus et encore vide. Extrayez-les de votre outil d'analyse (p. ex.
getAnalyticsDataByMetricsde Metricool pour les Reels Instagram). Vues, durée moyenne de visionnage, rétention à 3 secondes si disponible, partages, sauvegardes, commentaires, abonnements. - Comparez par ce que nous contrôlons : format, style d'accroche (carte / build / titre), durée, type de CTA, punch-ins, sujet. N'appelez quelque chose un pattern qu'avec au moins 3 reels de chaque côté, et dites l'ampleur de l'écart.
- Rédigez la conclusion sous « Ce que les chiffres disent jusqu'à présent » dans le suivi, daté.
- Appliquez-la à ce lot et dites-le dans la liste de reels que vous montrez à l'utilisateur (« les accroches build retiennent 1,4x plus longtemps à 3s, donc j'ai utilisé build sur 6 reels sur 8 »). Si un gagnant contredit un style verrouillé, demandez avant de le modifier.
- Après la planification, ajoutez une ligne par reel avec la façon dont il a été monté.
La règle qui compte : l'accroche en premier
Les 3 premières secondes décident de la distribution, jusqu'à la moitié des spectateurs partent dans cette fenêtre, et une accroche doit se charger instantanément plutôt que de se construire. Un reel qui commence par « l'astuce numéro deux est... » est mort.
Donc ne coupez pas un extrait chronologique. Construisez chaque reel comme suit :
- ACCROCHE (2-4s) : la phrase la plus percutante et autonome, prise de n'importe où dans la vidéo, y compris à la fin.
- DÉVELOPPEMENT : le contexte et l'explication, dans l'ordre qui se lit le mieux.
- PAYOFF : une courte phrase de clôture si elle existe.
Les morceaux chronologiques produisent des accroches faibles. Réorganiser les mêmes images, sans refaire de prise, corrige le problème. La réorganisation est l'essentiel du travail.
Bonnes accroches, en pattern : « on ne saute plus le jour des jambes », « un plan que tu sautes n'est pas un plan », « 10 minutes par jour c'est 60 heures par an ». Court, déclaratif, sans préparation.
Où les nouveaux rushes arrivent
Les nouveaux lots de reels arrivent dans <VOTRE_DISQUE_RUSHES>/<DOSSIER_RECEPTION>/, souvent sous forme de untitled folder. Cherchez d'abord là. Une fois que vous savez ce qu'il contient, renommez le dossier avec la date d'abord, puis un nom : 9-28-2026 gear reels. Transcrivez avant de renommer, puis corrigez les chemins dans clips.ndjson.
Reels autonomes : style animé
Pour les reels filmés en tant que tels (pas de vidéo longue, pas de montage papier), le style animé est plus engageant : produit dans le cadre, cartes photo, une flèche ou un anneau sur un bouton, notes de machine à écrire en haut, petites images qui apparaissent au-dessus de la tête, une accroche grande et audacieuse avec une petite sous-ligne. Construisez d'abord un reel et faites-le approuver avant de faire le lot.
- Pas de montage papier. Écrivez
segments-v2.jsoncomme[]et donnez à chaque partie"raw": true, "exact": true. - Ne faites pas confiance à la transcription whisper du clip entier pour ceux-ci. Les prises avec de longues réinitialisations entre les lignes dérivent de 2 à 5 secondes (whisper peut placer une phrase à l'intérieur d'un silence de 5,4 s). Exécutez
GAP=0.18 SUF=.fine blobs.py <work> <clip>et coupez les parties sur les bords des blobs. Pour le dernier mot, vérifiez une carte RMS de 50 ms : une baisse au milieu d'un mot peut être une fricative (« f » dans « free »), alors relisez la queue de la légende. Terminez la dernière partie après que la queue du mot tombe en dessous de -50 dB. Whisper invente également des mots après la coupe sur la dernière carte, alors vérifiez le dernier indice du SRT par rapport à l'audio. - Rythme des punch-ins : alternez les parties entre large (zoom 1,25, inclinaison 0) et piqué (zoom 1,6, inclinaison -90) sur des images natives verticales. Panorez toute partie où l'intervenant se penche (p. ex. accroche : panoramique 180).
- Couche d'animation sur V2 :
motion.json(liste d'éléments synchronisés avec les mots dansreels-built.json) ->render_motion.mjs(image par image, ~50s pour 30s). Les types d'éléments sont documentés dansmotion.html: constructions de mots, slam, notes de machine à écrire, oscillation, découpes de produits (pop / fly-in / shrink), anneaux pulsants sur les boutons, un barré, et une carte b-roll qui joue des images réelles (étalonnées avec le LUT via ffmpeglut3d). Un visuel par ligne, tous dans la bande au-dessus de la tête (y 200-550 ; à y 100, les mots du haut sont coupés). Pour faire de la place, inclinez chaque partie de 100 de plus que le cadrage de base (large 1,25 / inclinaison -100, piqué 1,6 / inclinaison -190). Les mots-clés utilisent la classeblue(elle utilise--brand), qui dessine une épaisse bordure blanche derrière le remplissage pour que l'accent ne disparaisse pas sur un mur neutre. Placez avecresolve_captions.py,"track": 2. - Images produit : API Wikimedia Commons d'abord, puis images OG de la marque. Découpez avec
scripts/cutout, recadrez les reflets de table. Gardez-les dans<work>/gear/. - Vos images pour le b-roll :
<VOTRE_DISQUE_RUSHES>/<tournage>/<cam>/full/. Si les images sont en log, utilisez les fichiers pleine résolution plus le LUT ; les proxies intégrés ont souvent l'aspect croquant. - Effets sonores sur A2 :
build_sfx.py motion.json out.wav. Il utilisevideo-reels/sfx/<nom>.wavlorsqu'il est présent (pop, whoosh, slam, tick, click, type, swipe, wobble, shrink), sinon un substitut synthétisé, donc il fonctionne immédiatement sans fichiers.dingest toujoursscripts/ding.wav(livré en tant que ding synthétisé ; remplacez-le par votre propre son de pick). Lepopsynthétisé est un déclencheur d'appareil photo (un pop avec balayage de hauteur a tendance à sonner « alien »), etMASTER = -3dB maintient chaque effet juste en dessous de la voix. Pour de meilleurs sons, créezsfx/et déposez vos propres effets sous licence, puis réglez les gains par fichier dansLIBGAIN. Avec le connecteur Epidemic Sound : recherchez avecSearchSoundEffects, récupérez avecDownloadSoundEffect(WAV), puis utilisez curl sur l'assetUrl. 7b. Musique de fond douce sur A3 : choisissez une ambiance et tenez-vous-y (p. ex. jazz rêveur / sax, sans voix). Avec Epidemic Sound :SearchRecordingsavecquery.externalID = {type: SPOTIFY_TRACK, id: <ID_DE_MORCEAU_SPOTIFY_DE_REFERENCE>}etvocals: false, sautez tout ce qui est tagué bizarre/effrayant/drone/orchestral, et donnez à chaque reel un morceau différent. Ensuite,EditRecordingavectargetDurationMs= longueur du reel + ~0,3s etforceDuration, afin que le morceau se termine au lieu d'être coupé. Intégrez -21 dB et un fondu de 1,2 s dans le wav avec ffmpeg, car l'API Resolve ne peut pas régler le volume du clip (SetProperty("Volume")renvoie False). Cela place la musique environ 15 dB sous la voix. - Aperçu avant la revue dans Resolve :
preview_reel.py(mêmes recadrages, LUT, incrustations, sfx, musique) donne un mp4 que vous pouvez regarder en quelques secondes. Rognez chaque morceau au nombre exact d'images de Resolve (fps, puistrim=end_frame, puisatrim=duration) ; les entrées simples-ss/-tsont environ 0,45s trop longues et coupent la dernière ligne de l'aperçu. Prouvez-le avec un contact sheet de 1,3s, et chuchotez les 1,5 dernières secondes pour confirmer que la fin est entièrement là. - Conservez une ligne de conclusion si l'intervenant en ajoute une après le CTA : coupez sur le silence après celle-ci, pas après le mot du CTA.
build_reels.pyajoute 1s de silence après l'audio, car whisper supprime les derniers mots des légendes sinon. Les nouveaux rendus vont vers de nouveaux noms de fichiers (-v3) pour que Resolve ne puisse pas servir un ancien clip mis en cache.
Lots de reels autonomes
Faites d'abord approuver le style d'UN SEUL reel, puis lancez le reste en parallèle :
- Un dossier par reel (
~/Movies/reels-<MMDD>/<NN>-<slug>/) avec<clip>.wav/.jsonen lien symbolique,clips.ndjson,segments-v2.json=[]. Des dossiers séparés empêchent les reels de s'écraser mutuellementreels-built.json. - Rédigez un brief court pointant vers les fichiers du reel approuvé (
motion.json, cadrage, sfx) et lancez un agent en arrière-plan par reel, 4 à la fois (plus encombre un ordinateur portable sur des décodages 4K). Donnez à chaque agent la transcription du clip, le nom exact du modèle du produit, et toutes les lignes à couper (faits erronés, redémarrages, bavardages). - Les agents s'arrêtent à un aperçu sans musique. Faites la musique de manière centralisée (une édition par reel, un morceau différent à chaque fois), nivelez à environ -38 dB moyen avec un fondu, rendez l'aperçu final, puis placez dans Resolve un reel à la fois.
- Prouvez vous-même le contact sheet de chaque agent avant de construire. Rassemblez les aperçus finaux dans un dossier
previews/pour la revue. - Le cadrage diffère selon la configuration. Exemple : zoom large 1,2 / inclinaison -190, piqué 1,5 / inclinaison -380 sur une configuration ; 1,25/-100, 1,6/-190 sur une configuration plus large. Vérifiez les images fixes par clip.
- Rassemblez tous les éléments « à vérifier » de chaque agent (erreurs de compréhension, faits qu'il a coupés, affirmations à l'écran) dans votre résumé. Whisper comprend mal couramment la parole rapide (p. ex. « free » comme « for you »).
Obtenez chaque reel de la vidéo
Exploitez toute la vidéo, ne répétez jamais le contenu.
- Inventoriez d'abord. Parcourez toute la transcription et listez chaque unité d'idée qui pourrait tenir seule : chaque astuce, histoire, statistique, script, confession, ligne provocatrice et victoire client. Attendez-vous à environ un reel par 1,2-1,5 min de montage final.
- Recherchez ces types d'accroches :
- un nombre : « 300 pains », « 40% de mes factures d'épicerie », « de 5K à 50K abonnés »
- une confession : « Avant, je me contentais de m'asseoir et d'espérer qu'ils me contactent »
- une ligne provocatrice : « ne le donnez pas simplement... c'est un mauvais cadeau »
- une ligne d'initié : « le secret que personne ne fait »
- une victoire client : un résultat nommé (avec permission)
- un script dit à voix haute : le DM, la demande de recommandation
- un « jamais » : « Je n'ai jamais eu quelqu'un qui me dit non en face »
- L'accroche doit nommer le sujet. « Le secret que personne ne fait » échoue tout seul parce que le spectateur ne peut pas dire de quoi il s'agit. Choisissez la ligne qui dit ce dont parle le reel dans la première seconde.
- Aucune ligne dans deux reels. Deux reels peuvent partager un thème si l'accroche et l'angle diffèrent.
- Présentez-le par niveaux : la liste A à construire, la liste B comme pièces de rechange, et les restes avec une raison chacun (« deuxième moitié du Reel 4 », « pas d'accroche », « bavard à l'écran »). L'utilisateur choisit.
- Arrêtez-vous quand cela commencerait à se répéter. Au-delà de ce point, chaque reel dilue les autres.
La forme que suit chaque reel
« L'accroche doit accrocher les gens, puis le reste du reel explique l'accroche et explique la valeur, le cœur du sujet. »
- Accroche : arrête le défilement et nomme le sujet.
- Expliquez l'accroche : la ligne suivante répond à la question que l'accroche a soulevée. Si l'accroche est « J'ai perdu 20 kilos sans salle de sport », ce qui suit dit comment.
- Le cœur : la valeur réelle, le comment faire, le script, la preuve. C'est la majeure partie du reel.
- Arrêtez-vous sur la ligne de payoff.
Une excellente accroche suivie de lignes qui ne la concrétisent pas est pire qu'une accroche simple, car le spectateur se sent appâté. Jugez chaque reel sur ses deux moitiés : est-ce que l'accroche m'arrêterait, et est-ce que tout ce qui suit a du sens et tient la promesse ?
Vérification du flux : lisez-le comme un étranger avant de construire
Écrivez chaque reel en phrases simples dans l'ordre, puis lisez-le comme quelqu'un qui n'a jamais vu la vidéo longue. Ce n'est qu'ensuite que vous regardez les timings. Voici les règles sur lesquelles les coupes manuelles tombent toujours :
- Terminez sur le payoff, une fois. Arrêtez-vous sur la ligne la plus forte. N'ajoutez pas de slogan après ni une seconde passe sur le point.
- Rien ne peut faire référence à quelque chose que le reel n'a pas mis en place. « Je leur ai simplement demandé et ils le partagent presque toujours » sans « leur demander quoi » dans le reel doit disparaître. Vérifiez chaque « elle », « ils », « ceci », « cela » et « donc » par rapport à ce qui est venu avant dans le reel.
- Les histoires se déroulent dans l'ordre de l'histoire. Une victoire comme accroche parlée, avec la personne nommée plus tard, confond l'auditeur. Nommez d'abord la personne, puis la victoire. La carte texte fait l'accroche.
- Une idée par reel. Deux idées plus une reformulation devraient devenir une idée plus une preuve.
- Coupez les apartés sur l'intervenant et les bégaiements à l'intérieur d'une partie. Divisez la partie autour d'eux.
- L'accroche parlée nomme le sujet en mots. « C'est aussi un moyen incroyable d'atteindre une nouvelle communauté » laisse « ce » indéfini. « Alors que vous continuez à préparer vos repas le dimanche... » dit de quoi parle le reel.
- Visez 20-35s. Tout ce qui dépasse 40 a besoin d'une raison.
Livrez-le serré : pas de euh, pas de silence mort, pas de redémarrages. Avant de construire :
- Audio lavalier/salle : exécutez
segments.py(depaper-edit) avecNOISE_DB=-30. La détection de silence de ffmpeg est basée sur les pics, et le bruit ambiant sur un lavalier dépasse le pic par défaut de -36, donc de vraies pauses de 0,5 à 0,8s passent inaperçues à -36. - whisper supprime complètement les « euh », même avec une invite de remplissage. Vérifiez le premier blob vocifère de chaque partie : un blob court (0,2-0,7s) isolé avant le premier vrai mot. Coupez-le.
- Remplissez les espaces en coupant les espaces à l'intérieur des parties. Si une partie a 1,2s d'espace au milieu, scindez-la à cet endroit (les deux moitiés sont exactes) et laissez
build_reels.pyle gérer. - Vérifiez les mots inventés par whisper. La fonction de remplissage inverse (transcrire le premier mot de chaque partie pour confirmer que le recadrage est correct) est intégrée dans
build_reels.py.
Flux de travail par morceau
Avec des morceaux exacts, tout est plus simple. Utilisez-les quand vous le pouvez.
Musique pour un lot
... (contenu tronqué)
Avant de confirmer une liste
... (contenu tronqué)