Communitygithub.com

F0rger123/claude-video-editing-god-mode

Agent 1 du pipeline de montage vidéo. Supprime les silences et les blancs d'un enregistrement de talking-head. Utilisez-le pour couper les silences, réduire les pauses, supprimer les blancs ou resserrer le rythme d'une vidéo brute à partir d'une transcription mot-à-mot. Produit une liste de montage (EDL), une transcription retimée pour les agents avals, et optionnellement la vidéo coupée via ffmpeg. Ne coupe PAS les erreurs, répétitions ou faux départs – c'est le rôle de l'agent coupe-erreurs.

Qu'est-ce que claude-video-editing-god-mode ?

Il s'agit du premier agent d'un pipeline de montage vidéo automatisé. Il prend une transcription mot-à-mot d'un enregistrement (type talking-head) et supprime uniquement les silences : les blancs avant le premier mot et après le dernier mot, ainsi que les pauses entre les mots qui dépassent un seuil configurable (réduites à une respiration naturelle, jamais un silence total). L'agent laisse les paroles intactes – les faux départs, retakes et bégaiements sont traités par un agent ultérieur (coupe-erreurs). L'agent est déterministe et basé sur la transcription, ce qui permet à ses sorties (EDL, transcription retimée) de s'enchaîner proprement avec les autres agents et le validateur de synchronisation. Il prend en charge les transcriptions au format ElevenLabs Scribe ou un format générique, et peut soit planifier la coupe uniquement (écriture de l'EDL et de la transcription retimée), soit également générer la commande ffmpeg, soit rendre la vidéo coupée avec ffmpeg. Il est conçu pour être utilisé en premier dans un flux de montage complet, juste après la transcription.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/F0rger123/claude-video-editing-god-mode/tree/HEAD/.agents/skills/cut-silences

Demander à votre IA préférée

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

Documentation

Couper les silences (Agent 1 du pipeline)

Première étape du montage automatisé. Prend un enregistrement brut + sa transcription mot-à-mot et supprime uniquement les silences : blancs avant le premier mot et après le dernier mot, ainsi que les pauses entre mots plus longues qu'un seuil (réduites à une respiration naturelle, jamais un silence total). Les paroles de l'orateur restent intactes — les faux départs, retakes et bégaiements sont du ressort de l'agent coupe-erreurs (Agent 2).

Cet agent est déterministe et piloté par la transcription, donc sa sortie (*.silence-transcript.json) s'enchaîne proprement vers les agents suivants et le validateur de synchronisation.

Quand l'utiliser

  • « coupe les silences », « réduis les pauses », « supprime les blancs », « resserre le rythme »
  • Comme première étape du flux de montage principal, juste après la transcription.

Prérequis

Une transcription mot-à-mot au format JSON. Soit au format ElevenLabs Scribe ({ words: [{ text, start, end, type }], audio_duration_secs }) soit un format générique { words: [{ text, start, end }] }. Générez-en une avec le transcripteur de l'espace de travail :

node scripts/transcribe-elevenlabs.mjs chemin/vers/raw.mp4    # -> chemin/vers/raw.json

Utilisation

# 1) Planification uniquement — calcul de la coupe, écriture de l'EDL + transcription retimée (vidéo non touchée)
node .agents/skills/cut-silences/scripts/cut-silences.mjs <transcript.json> \
  --out-dir video-projects/<slug>/assets

# 2) Avec une vidéo — écrit également la commande ffmpeg (toujours sans rendu)
node .agents/skills/cut-silences/scripts/cut-silences.mjs <transcript.json> \
  --video video-projects/<slug>/assets/raw.mp4 --out-dir video-projects/<slug>/assets

# 3) Rendu de la vidéo coupée (ffmpeg local, ré-encodage, A/V synchronisé)
#    ajouter --apply pour exécuter ffmpeg
node .agents/skills/cut-silences/scripts/cut-silences.mjs <transcript.json> \
  --video video-projects/<slug>/assets/raw.mp4 --apply \
  --output video-projects/<slug>/assets/edited-silenced.mp4

Options

OptionDéfautSignification
--video <chemin>—Vidéo source ; active la commande / le rendu ffmpeg
--out-dir <répertoire>à côté de la transcriptionRépertoire de sortie
--output <chemin><video-stem>.silenced.mp4Chemin de la vidéo coupée
--gap <s>0.55Pause minimale considérée comme silence à couper
--head-pad <s>0.22Silence conservé avant le premier mot
--tail-pad <s>0.34Silence conservé après le dernier mot
--applydésactivéExécute effectivement ffmpeg pour effectuer la coupe

Comment ça décide (les règles de silence)

  • Les pauses en dessous de --gap (0.55s) sont laissées intactes — rythme naturel de la parole.
  • Pour une pause coupée, une respiration naturelle est conservée, ajustée selon le contexte : 0.24s pour les longues pauses (≥2s), 0.20s après un terminateur de phrase (. ! ?), 0.14s dans les autres cas. La respiration conservée est légèrement décalée vers la fin de la phrase précédente.
  • Les blancs de début/fin sont coupés à --head-pad / --tail-pad.
  • Les plages à supprimer sont fusionnées ; les plages à conserver en sont le complément. La coupe est rendue avec un filtre trim/atrim + concat ffmpeg (écrit dans un script *.silence-filter.txt et passé via -/filter_complex), garantissant la synchronisation vidéo et audio.

Sorties (écrites dans --out-dir)

FichierObjectif
<stem>.silence-edl.jsonPlages à conserver/supprimer, durées, paramètres — la liste de montage
<stem>.silence-transcript.jsonMots retimés sur la timeline éditée (alimente l'Agent 2 + beats)
<stem>.silence-decisions.mdRésumé lisible des plus grandes pauses coupées
<stem>.silence-filter.txtLe graphe de filtres ffmpeg (uniquement avec --video)
<video-stem>.silenced.mp4La vidéo coupée (uniquement avec --apply)

Le résumé JSON affiché sur stdout inclut removed, removedPct, les comptes de plages et les chemins de sortie — utile pour que le flux principal journalise et enchaîne.

Notes de réglage

  • Valeur par défaut pour YouTube talking-head (--gap 0.55) supprime environ 15-20 % d'une prise brute typique comme silence pur. Abaissez --gap pour une coupe plus nerveuse et rapide ; augmentez-le pour préserver plus d'espace de respiration naturel.
  • Si une coupe semble trop agressive en fin de phrase, augmentez la respiration de fin de phrase, ou augmentez --gap.

Passage à l'agent suivant

Passez <stem>.silence-transcript.json (et la silenced.mp4 si rendue) à l'agent coupe-erreurs. Comme les timestamps sont déjà sur la timeline éditée, le timing des beats avals et scripts/validate-beat-sync.mjs fonctionnent sans ajustement supplémentaire.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Skills associés