Que fait Claude AutoCut ?
Montage vidéo local piloté par une transcription mot par mot. Tout s'exécute sur la machine de l'utilisateur : Whisper (faster-whisper) pour la parole, FFmpeg pour le multimédia, Pillow pour les sous-titres et, uniquement pour le mode cartoon, HyperFrames (Node.js) pour le rendu de l'animation. Pas de clé API, pas de service payant, rien n'est téléchargé.
La ligne de commande est scripts/autocut.py dans ce dossier de compétence. Exécutez-la avec le Python qui a les
dépendances installées (voir "Configuration") :
python "<skill-dir>/scripts/autocut.py" <commande> ...
<skill-dir> est le répertoire de base de cette compétence (affiché lors du chargement de la compétence).
Choisir le mode
| Ce que veut l'utilisateur | Mode | Commande |
|---|---|---|
| "éditer cette vidéo", "couper les pauses", "supprimer les euh", "nettoyer mes prises" | Montage automatique | edit VIDEO -o PROJET |
| sous-titres/légendes sur une vidéo sans la couper | Sous-titres | captions VIDEO -o DOSSIER |
| une scène animée au-dessus du locuteur, enregistrement entier conservé | Animé complet | cartoon init VIDEO -o PROJET, storyboard, cartoon render |
| d'abord éditer, puis animer la vidéo éditée | Complet | complete VIDEO -o DOSSIER, storyboard, cartoon render |
| "cartoon", "podcast animé" sans préciser s'il faut couper | demander une fois : tout garder (Animé complet) ou couper d'abord (Complet) ? |
Si la demande est ambiguë, demandez quel mode en une seule question courte et recommandez-en un. Avant toute chose,
exécutez doctor une fois dans la session : il indique quels modes sont prêts sur cette machine.
Configuration (une fois par machine)
python -m venv .venvet activez-le, puispip install -r "<skill-dir>/requirements.txt".- FFmpeg (
ffmpegetffprobe) dans le PATH. - Modes cartoon uniquement : Node.js 18+ (npx et npm). HyperFrames 0.8.79 est récupéré par npx lors de la première utilisation et n'est jamais mis à jour automatiquement ; chaque projet cartoon installe GSAP avec npm.
python "<skill-dir>/scripts/autocut.py" doctor
La première transcription télécharge le modèle Whisper (--model tiny ~75 Mo, small ~480 Mo, par défaut).
Utilisez --language lorsque la langue est connue ; --model medium ou large-v3 pour un audio difficile.
Montage automatique
python "<skill-dir>/scripts/autocut.py" edit input.mp4 -o edits/ma-video [--language fr] [--model small]
Étapes : transcription → analyse → plan → rendu → vérification (le montage est retranscrit et comparé) →
sous-titres → REPORT.md. Sorties dans le dossier du projet : renders/cut_vN.mp4 (montage propre),
renders/final_vN.mp4 (avec sous-titres incrustés), captions_vN.srt, decisions.md (chaque segment supprimé avec
son type et sa raison), analysis.md, verify_vN.json. Rien n'est jamais écrasé : chaque rendu est une nouvelle version.
La vidéo source est uniquement lue.
Ce que fait le plan automatiquement (volontairement conservateur) :
- supprime le silence avant le premier et après le dernier mot ;
- raccourcit les pauses de plus de 0,7 s mais ne les supprime jamais ; une pause après la fin d'une phrase en conserve davantage (une pause possible pour insister) ;
- supprime les sons de remplissage et une prise incomplète qui est reprise immédiatement après ;
- de deux prises complètes de la même phrase, conserve la plus propre par évidence, jamais "la dernière" ou "la plus courte" ; si les évidences sont égales, les deux sont conservées et le cas est listé sous "À revoir" ;
- conserve les sons audibles que la transcription a manqués et supprime le texte que Whisper a inventé sur du silence.
La barrière (coupes à fort impact)
Une coupe qui supprime des mots non prononcés ailleurs (y compris les négations) est à fort impact. Le plan automatique
n'en fait jamais une ; elles proviennent uniquement de overrides.json (coupes que vous ajoutez à la demande de l'utilisateur). Le rendu s'arrête
jusqu'à ce que chaque coupe à fort impact ait été approuvée. Pour approuver, montrez à l'utilisateur l'intervalle exact et les mots de
decisions.md, obtenez un oui explicite, puis :
python "<skill-dir>/scripts/autocut.py" approve PROJET --start 12.0 --end 18.5 --by "utilisateur" --reason "demandé de supprimer la digression"
python "<skill-dir>/scripts/autocut.py" edit input.mp4 -o PROJET # la transcription est réutilisée, nouvelle version rendue
N'enregistrez jamais une approbation que l'utilisateur n'a pas donnée. plan PROJET réexécute l'analyse et le plan sans effectuer de rendu.
overrides.json (dans le dossier du projet)
{"cuts": [{"start": 12.0, "end": 18.5, "reason": "digression hors sujet"}],
"keep": [{"start": 3.0, "end": 4.2, "reason": "le mot de remplissage fait partie de la blague"}],
"pauses": {"p04": {"action": "keep"}, "p07": {"keep_s": 0.8}}}
Les identifiants de pause (p04) proviennent de analysis.md. Lisez references/editing.md pour savoir comment les décisions sont classifiées.
Rapport à l'utilisateur
Lisez REPORT.md et decisions.md et informez brièvement l'utilisateur : durée avant et après, ce qui a été supprimé
et pourquoi, tout élément sous "À revoir", si la vérification a réussi (mots manquants, négations conservées). Dites que
vous ne pouvez pas entendre ou regarder la vidéo : le rythme et le goût sont à juger par l'utilisateur avec le son.
Sous-titres uniquement
python "<skill-dir>/scripts/autocut.py" captions input.mp4 -o captions/ma-video [--no-burn] [--caption-y 0.75]
Écrit captions.srt, captions.json et captioned.mp4. Les vidéos verticales obtiennent de grandes majuscules à
70 % de la hauteur ; les vidéos horizontales se placent près du bas. Chaque mot parlé apparaît une fois, dans l'ordre.
Cartoon (Animé complet et Complet)
cartoon init VIDEO -o PROJET(Complet exécuteeditd'abord et crée le projet cartoon sur le montage).- Lisez
PROJET/speech.md(blocs de parole avec horodatages) et écrivezPROJET/storyboard.json: des scènes qui couvrent toute la vidéo sans lacunes, chacune avec un scénario, les poses et expressions du présentateur, les objets et les mots à l'écran. Le schéma, le catalogue (scénarios, poses, expressions, objets, transitions) et les règles de mise en page sont dansreferences/cartoon.md. Lisez-le avant d'écrire le premier storyboard. cartoon check PROJETjusqu'à ce qu'il ne signale aucune erreur. Le texte à l'écran ne peut utiliser que des mots qui sont prononcés.cartoon snapshot PROJET --at 1.5,8,20et regardez les images dansreviews/.cartoon render PROJET(ou--range 0-6pour un test rapide). Sortie :renders/cartoon_vN.mp4avec la source audio copiée inchangée ;renders/cartoon_vN.qc.jsonvérifie la durée et l'audio.
L'animation interprète le sens de la parole uniquement à travers le storyboard que vous écrivez : le code ne comprend pas la parole par lui-même.
Règles
- Ne jamais modifier ou supprimer la vidéo source ou les rendus précédents.
- Ne jamais ajouter une coupe qui change le sens de la parole ; ne jamais approuver une coupe à fort impact pour l'utilisateur.
- Le texte à l'écran et les sous-titres utilisent uniquement des mots qui sont prononcés.
- Exécutez les rendus un par un ; le rendu cartoon est lourd (voir
references/troubleshooting.md). - N'affirmez pas que le résultat "sonne bien" : vous ne pouvez pas l'entendre. Signalez ce qui a été mesuré.
En cas d'échec
Voir references/troubleshooting.md (FFmpeg manquant, téléchargement du modèle, Node/npx, HyperFrames, mémoire, mauvaise
langue, mauvaise transcription).