/auto-video-edit : de la séquence brute à la vidéo finale
Exécutez l'ensemble sans vous arrêter pour demander. Corrigez les erreurs et relancez jusqu'à obtenir un bon final-video.mp4.
SKILL_DIR ci-dessous désigne le dossier où se trouve ce fichier (normalement ~/.claude/skills/auto-video-edit).
1. Vérifier la configuration (une fois)
ls SKILL_DIR/.venv/bin/python SKILL_DIR/remotion/node_modules/.bin/remotion
Si l'un des deux est manquant, exécutez le install.sh du dépôt, ou faites-le manuellement :
python3 -m venv SKILL_DIR/.venv && SKILL_DIR/.venv/bin/pip install -r SKILL_DIR/requirements.txt
cd SKILL_DIR/remotion && npm install && npx remotion browser ensure
Nécessite également ffmpeg, ffprobe et node dans le PATH (macOS : brew install ffmpeg node).
2. Exécuter le pipeline
Dans le dossier contenant les séquences (le fichier vidéo le plus volumineux est utilisé sauf si vous en nommez un) :
bash SKILL_DIR/scripts/run_all.sh # ou : run_all.sh my-take.mov
Il exécute trois étapes, chacune pouvant être exécutée indépendamment avec SKILL_DIR/.venv/bin/python SKILL_DIR/scripts/<step>.py :
| Étape | Rôle | Écrit |
|---|---|---|
edit.py | détecte la parole, coupe les silences > 0,5 s (garde 0,15 s de souffle), divise en plans d'environ 4,5 s, choisit les zooms normal / serré (1,3×) / très serré (1,5×) par plan en fonction des mots, centre les zooms sur le visage détecté, étalonne la couleur, masterise la voix à -14 LUFS, fondus de 10 ms à chaque coupe | edited-video.mp4, work/transcript.json, work/edit_report.json |
animate.py | trouve les moments nécessitant un visuel : nombres avec unités → Compteur, "A vs B" / "au lieu de" / avant-après → Comparaison, 3+ phrases "d'abord / ensuite / enfin" → Organigramme, affirmations fortes ("la vérité est", "la plupart des gens", …) → CarteTexte ; environ 1 carte toutes les 15 s, jamais dans les 2,5 premières secondes ; rend chaque carte à la taille et fréquence de la vidéo | work/animation_plan.json, animations/*.mp4, work/animation_manifest.json |
finalize.py | insère chaque carte à son moment avec fondus doux ; si un dossier broll/ existe, insère des clips dont les noms de fichier correspondent aux mots prononcés (broll/cafe.mp4 → "café") pendant 3 s | final-video.mp4, work/finalize_report.json |
Drapeaux utiles : edit.py --no-zoom, --whisper small (meilleur transcript, plus lent), --silence-db -35 (pièce silencieuse) / -25 (pièce bruyante), --min-silence 0.35 (coupes plus serrées). animate.py --max 3, --min-gap 8.
3. Rendre les cartes intelligentes (à faire à chaque fois)
Le plan automatique utilise des règles. Améliorez-le avec le transcript avant le rendu final :
SKILL_DIR/.venv/bin/python SKILL_DIR/scripts/animate.py --plan-only- Lisez
work/transcript.jsonetwork/animation_plan.json. Modifiez le plan :- Réécrivez chaque
headline/label/steps/valueen 2 à 6 mots percutants qui expriment ce que l'orateur veut dire (pas un fragment de phrase). Corrigez les nombres mal retranscrits. - Supprimez les cartes qui n'aident pas à la compréhension ; ajoutez une carte là où un nombre clé, une liste ou un contraste n'en a pas. Types de cartes et propriétés :
Counter:{"to": 75, "decimals": 0, "prefix": "$", "suffix": "%", "label": "..."}Comparison:{"left": {"label": "Avant", "value": "4 heures"}, "right": {"label": "Après", "value": "10 min"}}Flowchart:{"steps": ["Enregistrer", "Télécharger", "Publier"]}(2 à 5 étapes)TextCard:{"headline": "Personne n'en parle", "body": ""}
- Chaque carte a besoin de
"start"(secondes dans edited-video.mp4) et"seconds"(3 à 5).
- Réécrivez chaque
SKILL_DIR/.venv/bin/python SKILL_DIR/scripts/animate.py --from-planSKILL_DIR/.venv/bin/python SKILL_DIR/scripts/finalize.py
4. Vérifier le résultat
- Lisez
work/edit_report.jsonetwork/finalize_report.json: la durée a diminué de manière raisonnable, aucun avertissement. - Capturez des images à examiner :
ffmpeg -ss 5 -i final-video.mp4 -frames:v 1 -y work/check.jpg(et au début de chaque carte + 1 s). Examinez-les : visage dans le cadre sur les plans zoomés, cartes lisibles, rien de coupé. - Si un zoom recadre mal le visage, relancez
edit.py --no-zoom. Si les coupes semblent saccadées, utilisez--min-silence 0.8.
En cas d'échec
Chaque étape écrit toute la sortie ffmpeg / Remotion dans work/*.log. Lisez les dernières lignes, corrigez la cause, relancez uniquement cette étape. Les plus courantes :
whisper unavailable→ l'environnement virtuel est manquant ; installez-le (étape 1). L'édition s'exécute toujours sans choix de zoom.- Remotion
Could not find a browser→cd SKILL_DIR/remotion && npx remotion browser ensure. - Une carte ne se rend pas → elle est réessayée comme CarteTexte simple, puis ignorée ; la vidéo se termine quand même.
Rapport
--- ÉDITION VIDÉO TERMINÉE ---
Entrée / Sortie / Durée avant → après / coupes / mix zoom / cartes / b-roll / taille fichier
Indiquez ensuite tout ce que vous n'avez pas pu corriger.