Communitygithub.com

Montage-Video

Erstellt aus rohem Videomaterial ein fertiges Video mit Facecam: Entfernt Stille, Zögern („ähm“), Fehlaufnahmen und Dreh-Anweisungen; integriert B-Rolls, Animationen, Soundeffekte und einen Korrektur-Player; erkennt automatisch den Videotyp und nutzt die Rendering-Engine von video-use.

Was ist Montage-Video?

Dieses Skill automatisiert den gesamten Videobearbeitungsprozess – von der Rohaufnahme bis zur exportierbaren, fertig geschnittenen Videodatei. Es analysiert das Audiomaterial mit einem spezialisierten Transkriptor (CrisperWhisper 2.0), um Stille, Zögern (z. B. „ähm“), Neuansätze und laute Anweisungen zu identifizieren und zu entfernen. Anschließend wählt es passende B-Rolls aus der eigenen Bibliothek des Anwenders oder aus kostenlosen Quellen wie Pexels und Pixabay aus, integriert Grafiker-Animationen und Hausillustrationen, fügt Soundeffekte (z. B. Atmosphäre, Klickgeräusche) hinzu und erstellt einen webbasierten Korrektur-Player mit frame-genauen Kommentaren. Das Skill erkennt den Videotyp (z. B. langes YouTube-Video, Short, Schulung, Interview) und passt die Bearbeitung entsprechend an. Es verlässt sich auf die Schnitt- und Rendering-Engine von `video-use` und HyperFrames für Animationen – ohne diese Funktionalität neu zu implementieren. Alle Verarbeitungen erfolgen lokal auf dem Mac, ohne dass Videodaten in die Cloud hochgeladen werden.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/fredericpuxeddu-lgtm/montage-video/tree/main

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Montage vidéo : du rush à la vidéo publiable

La personne tourne, dépose ses fichiers, et récupère une vidéo coupée serrée.

Ce que ce skill ne fait pas lui-même : le moteur de coupe et de rendu est celui de video-use (skill public, à installer à côté), les animations sont rendues par HyperFrames. Refaire ici ce qu'un de ces outils fait déjà, c'est deux versions à entretenir.

Installation (une fois par machine)

Ce skill tourne sur un Mac à puce Apple (M1 ou plus récent), macOS 14 ou plus. Tout reste sur la machine : aucune vidéo n'est envoyée en ligne. À vérifier dans l'ordre, et à installer ce qui manque :

  1. Le skill lui-même : ce dossier montage-video posé dans ~/.claude/skills/.
  2. ffmpeg et ffprobe : brew install ffmpeg (Homebrew : https://brew.sh).
  3. uv, qui pose les environnements Python à part : brew install uv.
  4. Node.js 18 ou plus récent (avec npx) : brew install node. HyperFrames, qui rend les illustrations, se télécharge tout seul au premier rendu (npx [email protected]), avec son navigateur de rendu.
  5. Le skill video-use (moteur de coupe et de rendu), à cette version précise, celle avec laquelle ce skill a été essayé :
    git clone https://github.com/browser-use/video-use ~/.claude/skills/video-use
    git -C ~/.claude/skills/video-use checkout 87f00c6
    
    Ailleurs que dans ~/.claude/skills/video-use : donner son dossier par VIDEO_USE_DIR. Ce skill n'utilise que son helpers/render.py, qui n'a besoin que de ffmpeg : pas de clé ElevenLabs.
  6. CrisperWhisper, le transcripteur qui entend les « euh » : python3 scripts/derush.py installer (2,2 Go, hors du skill, refuse sous 5 Go libres ; voir l'étape 0 du dérushage).
  7. Le modèle de vision qui classe la bibliothèque de B-rolls : rien à faire, il se télécharge au premier brolls.py indexer (mlx-vlm, par uv).
  8. Final Cut Pro, seulement pour le bouton « Ouvrir dans Final Cut Pro » du lecteur.
  9. Playwright et son navigateur WebKit, qui cherchent les B-rolls gratuits sur Pexels et Pixabay, sans clé ni compte : npm install -g playwright puis npx playwright install webkit. Sans eux, l'agent cherche avec son propre navigateur (voir « B-rolls »).

On vérifie l'installation sur une vraie vidéo courte (une minute suffit) : derush.py analyser, puis monter, puis verifier. Une installation n'est faite que quand ces trois commandes ont tourné.

Où vont les fichiers

Tout ce qui sert au montage d'une vidéo va sur le Bureau, dans un dossier à son nom : ~/Desktop/Fichiers de montage <nom de la vidéo> (à supprimer à la fin) ; dans ce nom, une apostrophe s'écrit ’ (typographique), jamais ' : le moteur de coupe ne lit pas un dossier qui en contient une droite, le skill s'arrête et le dit (transcriptions, listes de coupes, plans, versions, projet du lecteur de corrections, projet Final Cut). On le crée au premier geste, on ne demande pas où le mettre. Les rushs d'origine ne sont jamais déplacés ni modifiés. L'export final va aussi sur le Bureau, à côté, sous un nom lisible (« <nom de la vidéo> monté.mp4 »).

Rien ne s'efface tout seul : c'est la personne qui supprime le dossier de travail quand la vidéo lui convient. Tant qu'il est là, on peut reprendre une correction ou rouvrir le projet Final Cut, qui pointe sur ses fichiers. À la fin du montage, on lui dit où sont les deux : l'export final, et le dossier de travail qu'elle pourra mettre à la Corbeille quand elle n'aura plus de correction à faire. Un dossier du Bureau synchronisé par iCloud peut refuser mv : le copier (cp -Rc), puis mettre l'original à la Corbeille.

Où en est le skill (dire la vérité à celui qui l'invoque)

BriqueÉtat au 11/11/2026
1. Dérushage : silences, hésitations, reprises, consignes ditesEn service, hésitations entendues par CrisperWhisper 2.0 rapide depuis le 11/11/2026, essayé sur quatre rushs réels
2. B-rolls de la bibliothèque : classement local, choix, incrustation, contrôleEn service, essayé sur une bibliothèque d'essai de 12 plans
3. B-rolls gratuits Pexels et Pixabay, sans clé ni compteEn service depuis le 11/11/2026 : recherche par Playwright ou par le navigateur de l'agent (computer use), essayé sur un montage réel (trois plans posés)
4. Animations à la charte : 38 de graphistes (la façon par défaut depuis le 11/11/2026) et 24 maison, leur catalogueEn service en 16:9, essayé sur un montage réel (trois animations de graphistes) ; le format vertical n'est pas essayé
5. Lecteur de corrections (commentaires à l'image près, un point par commentaire sur la barre, commentaire rattaché à une animation, plages, dessin, versions, comparaison)En service, essayé de bout en bout sur une vidéo réelle (3 corrections, une V3) ; étude dans references/lecteur-facon-frame-io.md
6. Bruitages : souffle à l'entrée d'une animation, clic par coche, swoosh par planEn service depuis le 11/11/2026, posés seuls à l'incrustation, essayé sur un montage réel (huit bruitages)
6 bis. Musique selon l'émotionÀ construire (pas de bibliothèque de musiques)
7. Clips verticaux, sous-titres, mise en lignePas dans ce skill
8. Mémoire des correctionsManuel : une règle datée en bas de ce fichier après chaque retour
9. Export Final Cut Pro (bouton du lecteur, pistes séparées)En service : projet fabriqué et conforme au format de Final Cut ; bruitages sur leur piste ; sans étalonnage ni musique. Premiere et DaVinci : à construire

Une demande qui touche une brique « à construire » se dit telle quelle dans la livraison : on livre ce qui marche, on nomme ce qui manque. On n'annonce pas « vidéo montée » pour une vidéo seulement dérushée.

Les réglages de la machine (à la première utilisation)

Rien de propre à une personne n'est écrit dans ce skill : il sert à plusieurs. Le dossier de B-rolls, le cache et la charte des illustrations vivent dans un fichier de réglages de la machine, ~/.config/montage-video/reglages.json, hors du skill.

python3 scripts/brolls.py reglage            # montre où on en est

À la première demande de B-rolls, si « bibliotheque » vaut « aucune », demander une fois à la personne : « As-tu un dossier de B-rolls à toi ? Donne-moi son emplacement. » Puis brolls.py reglage --bibliotheque <dossier>. Elle n'en a pas : on continue avec les banques seules, sans insister. Même logique pour la charte : sans réglage, les illustrations sortent dans le style par défaut, et on lui montre le catalogue pour qu'elle choisisse le sien.

Le dérushage, pas à pas

scripts/derush.py porte les trois gestes. Tout tourne sur le Mac, rien n'est envoyé en ligne.

0. Une fois par machine : installer le transcripteur. Les hésitations sont entendues par CrisperWhisper 2.0 dans sa version rapide (turbo), un Whisper réentraîné pour écrire les « euh ». Il vit hors du skill, dans ~/.local/share/montage-video/crisper (ou $MONTAGE_VIDEO_DONNEES) :

python3 scripts/derush.py installer          # 2,2 Go, refuse sous 5 Go libres

Sans lui, analyser s'arrête et le dit : il ne retombe jamais en silence sur une autre méthode.

1. Analyser.

python3 scripts/derush.py analyser <video> --edit-dir <dossier de travail>/edit

Le script transcrit mot à mot par CrisperWhisper, repère les silences au son, et écrit edit/derush/<nom>.json (les données) et edit/derush/<nom>.md (le texte mot pour mot, phrase par phrase, horodaté). Le dossier de travail est celui de la vidéo sur le Bureau (voir « Où vont les fichiers »).

Pourquoi CrisperWhisper : un transcripteur ordinaire rend un texte propre, donc sans les « euh », et on ne coupe pas ce qu'on ne voit pas. Mesuré le 11/11/2026 sur quatre rushs réels (296 s de son, 11 hésitations vérifiées au son) : CrisperWhisper rapide en trouve 10, l'ancienne méthode (Whisper amorcé par une phrase pleine d'hésitations, gardée en --moteur amorce) 5 ; aucun mot réel perdu d'un côté comme de l'autre ; environ 4 fois plus lent (152 s contre 35 s). On coupe seulement l'intervalle entre le mot réel d'avant et le mot réel d'après : une hésitation inventée ne coupe rien.

Le modèle rapide date parfois mal le mot qui suit un « euh » (durée nulle, posé au milieu de l'hésitation) : sur un rush d'essai, deux « que », et 0,2 s de « euh » restée au rendu. crisper.py le redate au son (voix tenue jusqu'à un creux, recherche bornée à 0,4 s et au mot suivant) et écrit chaque correction dans corrige_au_son de la transcription.

2. Lire le texte et décider des reprises. C'est le travail de l'agent, pas d'un script : lire <nom>.md en entier et écrire un fichier retirer.json, une liste de {"debut", "fin", "raison"}. On y met :

  • la reprise : une phrase recommencée. On garde la dernière version complète, on retire les précédentes, du début de la première tentative jusqu'au début de la bonne ;
  • la consigne dite à voix haute : « je reprends », « coupe ça », « on la refait ». On retire la consigne et ce qu'elle désigne ;
  • la phrase abandonnée en cours de route, le faux départ, l'aparté hors sujet (« attends », un bruit, quelqu'un qui entre).

Les bornes se posent sur les horodatages du texte, avec 0,1 s de marge avant le premier mot gardé. Dans le doute sur une reprise (deux versions qui disent deux choses différentes), on garde les deux et on le signale : couper une idée est plus grave que laisser une redite.

Les « voix sans mot » listées en tête du texte ne sont pas coupées d'office : c'est un son parlé qu'aucun mot ne couvre. Souvent une hésitation que le transcripteur a ratée, parfois un rire, un mot mal entendu, ou un « euh » dit exprès (un rush d'essai en contenait un : « c'était un euh assez long »). L'agent regarde le contexte et l'ajoute à retirer.json seulement si c'est du déchet.

3. Monter.

python3 scripts/derush.py monter edit/derush/<nom>.json --retirer retirer.json -o <sortie>.mp4

Le script écrit la liste de coupes au format de video-use et la fait rendre par son moteur (extraits, fondu son de 30 ms à chaque coupe, collage sans réencodage). --apercu rend en 720p, plus vite, pour une première lecture. Il s'arrête si la durée rendue s'écarte de la durée attendue.

4. Vérifier, puis seulement livrer.

python3 scripts/derush.py verifier <sortie>.mp4

Le rendu est retranscrit par le même transcripteur. On livre quand hesitations_restantes vaut 0, qu'il n'y a plus de silence de plus de 0,6 s, et que le texte rendu se lit d'une traite, sans phrase amputée ni mot coupé. Une phrase amputée se corrige dans retirer.json, pas en élargissant les marges pour tout le monde. On regarde aussi deux ou trois coupes à l'image (video-use, helpers/timeline_view.py) : un saut de cadre trop visible appellera un zoom à la brique 3, en attendant on le dit.

Les B-rolls, pas à pas

Un B-roll est un plan qui montre ce que la personne dit pendant qu'on continue de l'entendre. scripts/brolls.py porte les gestes ; le rendu reste celui de video-use.

1. Classer la bibliothèque, une fois.

python3 scripts/brolls.py indexer

Chaque plan est décrit sur la machine par un petit modèle de vision (trois images du plan, deux phrases), le thème est le nom du sous-dossier. Compter 3 secondes par plan ; seuls les fichiers nouveaux ou changés sont refaits, donc on relance sans crainte avant chaque montage. Un fichier de plus de 40 s est découpé en plans de 20 s. Les images fixes comptent aussi. La bibliothèque n'est jamais modifiée : l'index est rangé avec les réglages.

Le modèle de vision décrit bien le sujet, mal le détail : il lui arrive de compter « trois horloges » parce qu'il voit trois images du même plan. La description sert à trouver, pas à décider : on regarde la planche du contrôle avant de livrer.

2. Lire la vidéo dérushée, phrase par phrase.

python3 scripts/brolls.py phrases <video dérushée>

3. Choisir : c'est le travail de l'agent, pas d'un script. Lire la bibliothèque entière (brolls.py lister) quand elle tient en quelques dizaines de plans ; au-delà, brolls.py chercher "<mots>" avec des mots de ce qu'on veut VOIR (« clavier », « horloge », « caméra »), pas la phrase dite : « je laisse tourner 45 minutes » ne contient aucun mot d'une horloge, c'est à l'agent de faire le pont entre l'idée et l'image.

L'ordre : la bibliothèque de la personne d'abord (ses images lui ressemblent, personne d'autre ne les a), une banque gratuite seulement quand rien n'y colle :

Les banques gratuites se prennent sans clé ni compte, de deux façons. L'agent choisit :

OptionQuand la prendreCommande
Playwright (par défaut)Toujours en premier : rapide, sans écran, le même résultat chez Claude comme chez ChatGPTbrolls.py banque "<mots>"
Computer use (le navigateur de l'agent : Claude in Chrome, computer use, l'agent de ChatGPT)Playwright manque sur la machine ou ne rend rien qui colle ; ou le plan demande un vrai coup d'œil (une ambiance, un geste précis)l'agent cherche et choisit à l'image, puis brolls.py banque --prendre <adresse de la page>
python3 scripts/brolls.py banque "typing laptop" -n 3            # mots en ANGLAIS, deux ou trois, concrets
python3 scripts/brolls.py banque "film camera" -n 2 --chaque     # au moins un plan de chaque site
python3 scripts/brolls.py banque --prendre "https://pixabay.com/videos/keyboard-hands-writing-computer-1046/"

Playwright. Le script ouvre la page de recherche de Pexels, puis de Pixabay, dans le navigateur WebKit de Playwright, sans fenêtre, muet, profil jetable fermé à la sortie. Un simple programme reçoit un refus des deux sites, et le Chromium de Playwright reste bloqué sur leur page de vérification : WebKit passe (mesuré le 11/11/2026). S'il manque : npm install -g playwright puis npx playwright

Verwandte Skills