Que fait reel ?
Où se trouvent les choses et configuration initiale
- Dossier du pipeline = le dossier
video-pipelinedans lequel se trouve cette compétence (trois niveaux au-dessus de ce fichier :video-pipeline/.claude/skills/reel/SKILL.md). Exécutez chaque commande depuis cet emplacement. Les projets vivent dansprojects/<date>-<slug>/à l'intérieur. - PY = le Python propre au pipeline. Utilisez-le pour toutes les commandes ci-dessous, jamais le Python système :
.venv/Scripts/python.exesur Windows,.venv/bin/pythonsur Mac ou Linux. - Si PY n'existe pas encore, configurez-le d'abord, sans demander à l'utilisateur de taper quoi que ce soit : exécutez
python install.py(oupy install.pysur Windows,python3 install.pysur Mac). Si l'installation s'arrête avec « ffmpeg est manquant » ou « git est manquant », installez cet outil pour eux (Windows :winget install ffmpeg/winget install Git.Git; Mac :brew install ffmpeg), dites-leur de redémarrer Claude Code si la nouvelle commande n'est pas trouvée, puis relancez l'installation. Quand l'installation affiche READY, exécutezPY scripts/selftest.pyet confirmez9/9 réussi.
STYLE (une fois par référence) -> 1 BRIEF -> [validation : utilisateur approuve le script] -> 2 TOURNAGE (utilisateur)
-> 3 ALIGNEMENT -> 4 MONTAGE -> 5 EFFETS -> 6 APERÇU -> [validation : notes utilisateur, boucle] -> 7 FINAL
Vous écrivez, montez et rendez. L'utilisateur tourne, approuve et publie. Rien n'est jamais publié depuis ici.
0. Style à partir d'une référence (quand l'utilisateur envoie des montages de référence)
PY scripts/style_ref.py <ref.mp4> [autres refs] --name <nom-du-style>- Ouvrez chaque image qu'il écrit dans
styles/refs/<nom-du-style>/et lisez les chiffres du report.json. - Écrivez
styles/<nom-du-style>.jsonavec UNIQUEMENT les clés qui diffèrent destyles/default.json: police/taille/couleurs/position des sous-titres, mots par groupe/majuscules, aspect du texte à l'écran, serrage du montage (cut.max_gap: plus serré pour les montages rapides), espacement des effets (effects.min_gap, d'après le rythme de la référence), volume sonore. - Écrivez
styles/<nom-du-style>.md: ce que fait le montage, en termes simples. Parmi les 51 effets, lesquels correspondent aux mouvements que vous avez vus, à quelle fréquence quelque chose se produit à l'écran, comment l'accroche s'ouvre, ce qu'il ne fait jamais. Ajoutez les chiffres mesurés (coupes par minute, durée des plans). - Montrez le .md à l'utilisateur et demandez-lui ce que vous avez mal compris. Vous voyez des images échantillonnées, pas le mouvement ni le son : dites-le, et demandez-leur de nommer des horodatages qu'ils aiment (
--at 7.2,12capture ces images).
Polices : les sous-titres peuvent utiliser n'importe quelle police dans vendor/claude-video-effects/fonts/ (Montserrat, Anton, Archivo Black, Inter, Instrument Serif, Playfair Display, Space Mono, Permanent Marker) ou tout .ttf/.otf déposé par l'utilisateur dans fonts/.
1. Brief
PY scripts/new_project.py "<slug>" --lang id --style <style>(langue : id, en ou auto).- Lisez
~/.claude/youtube/voice.mdou~/.claude/instagram/voice.mds'il existe. Écrivez dans la langue et la voix de l'utilisateur. N'inventez jamais un chiffre, un résultat ou un client ; demandez, ou laissez{{angka}}. - Remplissez
script.json: une ligne par phrase qu'il prononcera, rôleshook/body/cta.- Accroche : écrivez 3 options, recommandez-en une, gardez-la sous environ 3 secondes parlées.
onscreen: texte court pour l'accroche (et pour toute ligne qui nécessite un carton-titre).effects: repères d'effets SUR UN MOT :{"fx": "backdrop-word", "on": "GRATIS", "text": "GRATIS"}. Choisissez dans le .md du style. Au maximum un effet toutes leseffects.min_gapsecondes. Toutes les lignes n'en reçoivent pas. Les effets qui utilisent les propres reels de l'utilisateur (orbit,phone-fan,place-in-grid,fan-build,noise,profile-wall,carousel-spin) nécessitent"images": "<dossier>".- Graphiques et compteurs (
liquid-glass-graph,over-the-shoulder-zoom) uniquement avec des chiffres réels.
- Écrivez
brief.mdà côté : les options d'accroche, le script tel qu'il le lira, une note de prise par effet (« ligne 4 : laissez de l'espace au-dessus de votre tête »), et les règles de tournage detemplates/shooting.md. - Validation : montrez le script et arrêtez-vous. Ne continuez pas tant que l'utilisateur ne l'a pas approuvé.
2. Tournage (utilisateur)
Ils placent les fichiers dans <projet>/raw/. Plusieurs fichiers sont acceptables ; ils sont utilisés dans l'ordre des noms.
3. Alignement
PY scripts/transcribe.py <projet>(le premier téléchargement du modèle Whisper). De nombreux redémarrages dans l'enregistrement, ou le montage répète encore des mots ? UtilisezPY scripts/burst_transcribe.py <projet>à la place : il transcrit chaque salve de parole indépendamment (large-v3-turbo), de sorte qu'un redémarrage après une pause n'est jamais fusionné avec la prise suivante. Si les mots engloutissent encore les pauses, exécutezPY scripts/snap_words.py <projet>avant l'alignement.PY scripts/align.py <projet>. Lisez le rapport à l'utilisateur sous forme courte : les lignes qui sont MANQUANTES ou qui n'ont PAS DE PRISE COMPLÈTE, et toute improvisation qui mérite d'être conservée. Ne vous arrêtez pas pour eux sauf si une ligne manque ; mentionnez-les avec l'aperçu.
4. Montage
PY scripts/cut.py <projet>
Reels voix seule (l'utilisateur enregistre seulement sa voix, l'image est entièrement composée de graphiques animés) : utilisez PY scripts/cut_voice.py <projet> à la place -> work/voice.wav (propre, -16 LUFS) et work/prog_words.json (chaque mot conservé avec son temps dans la piste montée). Construisez les visuels là-dessus (HyperFrames, si l'utilisateur les a, ou son propre éditeur). L'étape des effets a besoin d'un visage, alors sautez-la.
Musique de fond sans licence : si .venv-music/ existe (python install.py --music), créez un tapis avec .venv-music/<Scripts|bin>/python scripts/music_bed.py work/bed.wav --seconds 30 --seed 1 --prompt "<ambiance>, pas de voix", écoutez les silences (essayez une autre seed si irrégulier), et définissez "music": {"file": "<chemin absolu>/work/bed.wav", "db": -22}.
5. Effets
PY scripts/effects.py <projet> plan. Corrigez tout avertissement en éditant les repères descript.json.PY scripts/effects.py <projet> check, puis REGARDEZ chaquework/check/fx_*.png. Texte sur le visage, coupé au bord, illisible : corrigez les options (x,y,textplus court) et vérifiez à nouveau.PY scripts/effects.py <projet> render. C'est l'étape lente (chaque image passe par le suivi du visage). Dites à l'utilisateur que cela s'exécute.
6. Aperçu
PY scripts/finish.py <projet>->preview/preview_vN.mp4.PY scripts/finish.py <projet> --check <t1,t2,...>au milieu de chaque effet et à deux ou trois autres moments. REGARDEZ les PNG : sous-titres en collision avec un effet, texte d'accroche illisible, quoi que ce soit sur le visage. Corrigez avant de montrer.- Validation : donnez à l'utilisateur le chemin de l'aperçu et une courte liste de montage : prises utilisées, ce qui a été coupé, effets et où. Demandez des notes.
Transformer les notes en modifications
| note | modification | relancer à partir de |
|---|---|---|
| « utilise l'autre prise de la ligne 3 » | choices.json {"take": {"3": 1}} | alignement |
| « garde ce que j'ai dit à 0:14 » | choices.json {"keep_unmatched": ["u3"]} | alignement |
| « supprime la ligne 5 » | choices.json {"drop_lines": [5]} | alignement |
| « le montage est trop serré / trop lâche » | style cut.max_gap, cut.post_pad | alignement |
| « pas d'effet là » / « mot plus grand » | script.json effets | plan des effets |
| aspect des sous-titres, texte à l'écran | style captions / onscreen, ou script onscreen | finition |
| musique | script.json "music": {"file": "...", "db": -22} | finition |
Relancer à partir d'une étape signifie aussi toutes les étapes suivantes. Relancer l'alignement ou le montage signifie refaire le rendu des effets (lent), donc regroupez d'abord les notes.
7. Final
PY scripts/finish.py <projet> --final->final/final.mp4etfinal/cover.jpg.- Écrivez
final/caption.md:- Les ~125 premiers caractères portent l'accroche ; c'est tout ce que le fil d'actualité montre avant « plus ».
- Un seul appel à l'action. Si c'est « commentez MOT_CLÉ », cela correspond à la vidéo.
- Maximum 5 hashtags, spécifiques au sujet, à la fin. Dans la langue et la voix de l'utilisateur.
- Pas de chiffres inventés. Pas d'« arrêtez de défiler », pas de mur de hashtags.
- Rappelez-leur en une ligne : l'audio tendance est ajouté dans Instagram, et ils le publient eux-mêmes.
Règles
- Le .md du style est le goût. En cas de doute sur l'ajout de quelque chose, ne l'ajoutez pas.
- Ne couvrez jamais le visage. Ne zoomez jamais au-delà de 2x.
- Soyez franc sur les limites : l'éditeur choisit bien les prises et les timings ; il ne juge pas leur interprétation. Si une prise semble plate, dites « vérifiez l'énergie de la ligne 3 », ne faites pas semblant de l'avoir entendue.
- Gardez
projects/hors de git : les rushes bruts sont volumineux et personnels.