Communitygithub.com

Claude AutoCut

Montage vidéo IA pour enregistrements de tête parlante, exécuté localement. Coupes intelligentes automatiques qui suppriment les longues pauses, les mots de remplissage et les prises refaites, montage d'interviews et de podcasts, vidéos verticales pour Reels, TikTok et Shorts, sous-titres automatiques (SRT et incrustés), et un mode podcast/carToon animé où une scène en papier découpé suit la narration au-dessus du locuteur.

Qu'est-ce que Claude AutoCut ?

Claude AutoCut est un outil de montage vidéo agentif conçu pour les enregistrements de tête parlante, fonctionnant entièrement en local sur la machine de l'utilisateur. Il exploite Whisper (faster-whisper) pour la transcription, FFmpeg pour le traitement multimédia et Pillow pour les sous-titres, sans nécessiter de clé API ni de service payant. L'outil prend en charge plusieurs modes : le montage automatique qui supprime les pauses, les mots de remplissage et les prises redondantes tout en conservant le sens ; l'ajout de sous-titres uniquement ; et un mode cartoon animé qui transforme l'enregistrement en scène de podcast animée avec des personnages en papier découpé. Pour le montage automatique, le plan est conservateur : il ne supprime jamais les mots uniques importants (comme les négations) sans approbation explicite de l'utilisateur via un mécanisme de 'gate' et un fichier `overrides.json`. Le mode cartoon nécessite Node.js et HyperFrames pour le rendu de l'animation, avec un storyboard que l'assistant rédige pour guider l'animation. L'outil génère des rapports détaillés (`REPORT.md`, `decisions.md`) et ne modifie jamais les fichiers source, créant toujours de nouvelles versions des rendus.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/i0wU/Claude-AutoCut-Skill/tree/HEAD/.claude/skills/claude-autocut

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

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'utilisateurModeCommande
"éditer cette vidéo", "couper les pauses", "supprimer les euh", "nettoyer mes prises"Montage automatiqueedit VIDEO -o PROJET
sous-titres/légendes sur une vidéo sans la couperSous-titrescaptions VIDEO -o DOSSIER
une scène animée au-dessus du locuteur, enregistrement entier conservéAnimé completcartoon init VIDEO -o PROJET, storyboard, cartoon render
d'abord éditer, puis animer la vidéo éditéeCompletcomplete VIDEO -o DOSSIER, storyboard, cartoon render
"cartoon", "podcast animé" sans préciser s'il faut couperdemander 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)

  1. python -m venv .venv et activez-le, puis pip install -r "<skill-dir>/requirements.txt".
  2. FFmpeg (ffmpeg et ffprobe) dans le PATH.
  3. 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.
  4. 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)

  1. cartoon init VIDEO -o PROJET (Complet exécute edit d'abord et crée le projet cartoon sur le montage).
  2. Lisez PROJET/speech.md (blocs de parole avec horodatages) et écrivez PROJET/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 dans references/cartoon.md. Lisez-le avant d'écrire le premier storyboard.
  3. cartoon check PROJET jusqu'à ce qu'il ne signale aucune erreur. Le texte à l'écran ne peut utiliser que des mots qui sont prononcés.
  4. cartoon snapshot PROJET --at 1.5,8,20 et regardez les images dans reviews/.
  5. cartoon render PROJET (ou --range 0-6 pour un test rapide). Sortie : renders/cartoon_vN.mp4 avec la source audio copiée inchangée ; renders/cartoon_vN.qc.json vé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).

Skills associés