Communitygithub.com

ONIKOSIOLA/video-editing-kit

Transformez des rushes bruts en vidéos prêtes à être publiées dans Adobe Premiere Pro — que ce soit des enregistrements de type talking-head ou screencast, ainsi que des montages sans dialogue (visites de pièces, démonstrations de produits, voyages). Utile dès que l'utilisateur a enregistré une vidéo et souhaite la monter, nettoyer, étalonner, couper ou la rendre publiable — même s'il dit simplement « monte cette vidéo », « assemble ça », « rends-la publiable » ou fournit un clip ou un dossier de clips sans instructions supplémentaires. Ce kit pilote directement les outils MCP de Premiere Pro (création de projet/séquence, coupes, transitions, étalonnage, sous-titres, export) ainsi que claude-video-vision pour l'analyse audio et la révision des clips — ne tentez pas de le faire manuellement via l'interface graphique de Premiere.

Qu'est-ce que video-editing-kit ?

Ce skill est conçu pour automatiser entièrement le montage vidéo dans Adobe Premiere Pro en utilisant des outils MCP (Model Context Protocol). Il combine deux serveurs MCP : premiere-pro pour les opérations de montage (coupe, étalonnage, export) et claude-video-vision pour l'analyse audio (détection de silence, transcription) que Premiere ne peut pas effectuer sans tête. Le skill prend en charge deux types de montage : les vidéos avec parole (talking-head, screencast) où il coupe les silences et les mots de remplissage, et les montages sans dialogue (visites, démos) où il privilégie le rythme et la musique. Il applique un style maison par défaut (coupes serrées, alternance plans larges/détails, fondus enchaînés, livraison verticale en priorité) mais s'adapte aux préférences de l'utilisateur. Le pipeline complet va de la confirmation des entrées à l'export final (H.264, 1080p vertical et horizontal), en passant par l'analyse audio, le calcul des coupes, l'étalonnage, l'ajout de sous-titres et le recadrage. Le skill est destiné aux développeurs et utilisateurs avancés qui souhaitent un montage vidéo automatisé et reproductible sans intervention manuelle dans l'interface de Premiere.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ONIKOSIOLA/video-editing-kit/tree/HEAD/skills/premiere-clean-edit

Demander à votre IA préférée

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

Documentation

Montage Propre Premiere

Prenez un ou plusieurs fichiers vidéo bruts et transformez-les en vidéos finales exportables : Coupez les temps morts et les mots de remplissage, corrigez la couleur, ajoutez des sous-titres incrustés, et exportez à la fois une version horizontale et verticale — le tout en pilotant Adobe Premiere Pro via les outils MCP premiere-pro, avec claude-video-vision pour l'analyse audio que Premiere ne peut pas faire en mode sans tête.

Premiere Pro doit déjà être ouvert sur la machine avec le serveur MCP premiere-pro connecté et le panneau MCP Bridge (CEP) démarré (Fenêtre → Extensions) — ce skill ne peut pas lancer l'application. Exécutez le skill setup du kit si le serveur n'est pas installé. Si des outils comme create_sequence ne sont pas listés directement, le serveur les cache derrière search_tools / invoke_tool : utilisez-les, ou réenregistrez le serveur avec PREMIERE_MCP_TOOLSET=full. Si un appel d'outil mcp__premiere-pro__* échoue avec une erreur de connexion, dites à l'utilisateur d'ouvrir Premiere Pro et d'essayer à nouveau plutôt que de contourner le problème.

Pourquoi deux MCP, pas un

premiere-pro peut couper, étalonner et exporter — mais il n'a aucun moyen de décider où couper. Il n'y a pas de détection de silence ou d'outil de transcription dans ce serveur. claude-video-vision et son video_analyze comblent cette lacune : il exécute la détection de silence ffmpeg et la transcription whisper locale (horodatages au niveau du mot) sur le fichier brut avant qu'il ne touche Premiere. La liste de coupe est calculée une fois, en données simples, puis exécutée comme une séquence d'appels MCP. N'essayez pas d'estimer les points de coupe en parcourant la timeline de Premiere — vous n'avez pas une ouïe précise à la trame, c'est l'analyse qui le fait.

Deux types de montage — choisissez avant de commencer

  • Basé sur la parole (talking-head, screencast, voix-off) : suivez le Pipeline ci-dessous — la coupe des silences/mots de remplissage et les sous-titres sont le travail principal.
  • Montage / B-roll (visite de pièce, démonstration, séquences de voyage — pas de dialogue guidant la coupe) : ignorez les étapes de silence/mots de remplissage et suivez le pipeline Montage plus bas. Sous-titres facultatifs ; la musique et le rythme sont le travail principal.

Les deux types se terminent dans le Style Maison ci-dessous. En cas de doute sur le type : si l'audio ne porte pas l'histoire, c'est un montage.

Style maison (look par défaut pour les réseaux sociaux)

Ces valeurs par défaut proviennent de la comparaison d'un assemblage automatisé avec une coupe finale faite à la main. Une première coupe qui les ignore est généralement refaite à la main. Si l'utilisateur a son propre style ou une vidéo de référence qu'il aime, son goût prévaut : demandez, et ajustez ces règles pour correspondre.

  • Encadrez avec le plan le plus fort de la marque/le plus emblématique — ouvrez dessus comme une carte de titre ET fermez dessus. L'ordre narratif prime sur l'ordre chronologique ; un panneau de marque ou un plan héroïque est plus important que « le clip qui est passé en premier ».
  • Coupez sans pitié. Un beat par scène, ~3–6 secondes chacun, uniquement le meilleur moment — jamais le clip complet. Une bonne référence de coupe a gardé 46s sur 80s de séquences utilisables. Visez ~45–60s au total pour les livrables sociaux.
  • Supprimez entièrement les plans faibles — mouvements de caméra tremblants en entrant, débuts hésitants. Si un clip nécessite des excuses, il ne fait pas partie de la coupe.
  • Alternez les plans larges avec des gros plans de détails — large pièce → boutons de cuisinière, large chambre → texture de la tête de lit. Détails entre les plans d'établissement.
  • Fondus enchaînés entre les scènes, pas de coupes franches. Coupes franches uniquement pour l'accentuation délibérée (une bonne référence de coupe en a une, peut-être deux).
  • Audio d'abord la musique pour les montages. Fond musical continu (~-11 LUFS), pas de silence ; audio original de la caméra/ambiant supprimé ou complètement enterré, pas simplement atténué. Si aucune piste n'est fournie, demandez-en une ou laissez une timeline muette et signalez-le — n'exportez jamais d'audio ambiant brut.
  • Livraison verticale en priorité : 1080×1920, 30 ips, H.264 ~12 Mbps est le livrable principal même à partir d'une source 4K60. L'horizontale est l'option supplémentaire, pas l'inverse.

Pour les clips storytime/UGC (un vrai moment avec dialogue — une rencontre, une réaction, une interaction spontanée), ajoutez quatre règles en plus des précédentes :

  • Commencez à froid sur le moment viral. Mettez le seul gros plan le plus frappant de 2 à 4 s du milieu de la rencontre à 0:00, puis revenez en arrière et racontez l'histoire depuis le début. L'ordre chronologique est le mode d'échec de base ici — ne commencez jamais par la mise en place/le contexte.
  • Laissez de la place pour un hook narré. Les créateurs enregistrent souvent une ligne de voix-off en direct sur le début à froid (« je sais que vous vous demandez probablement pourquoi… »). Le montage ne peut pas générer cela — créez le début à froid, puis signalez que le hook doit être enregistré (ou demandez-le) plutôt que de livrer sans.
  • Terminez sur la carte de marque. Si l'utilisateur a une marque, un produit ou un pseudo à promouvoir, fermez sur une courte carte de fin (~3–5s) avec. Demandez son logo ou son pseudo ; n'en inventez jamais.
  • Nivelez le dialogue (~-16 LUFS, plage étroite) au lieu de poser un fond musical — pour le storytime, la parole porte ; pour le montage, la musique porte.

Pipeline

Exécutez ces étapes dans l'ordre. Pour un lot de clips (par exemple une semaine d'enregistrements), répétez les étapes 2 à 8 par clip dans un seul projet Premiere partagé.

1. Confirmer les entrées

Demandez (ou déduisez du contexte) : le(s) chemin(s) du fichier brut, et s'il s'agit d'un seul livrable ou s'il faut à la fois un export horizontal (style LinkedIn, 16:9) et vertical (Threads/TikTok/Reels, 9:16). Si l'utilisateur ne le précise pas, par défaut exportez les deux — le recadrage est peu coûteux une fois le montage verrouillé.

2. Obtenir les informations sources avec ffprobe

ffprobe -v error -select_streams v:0 -show_entries stream=width,height,r_frame_rate \
  -show_entries format=duration -of json "<fichier-brut>"

Vous avez besoin de width, height, r_frame_rate (analyser la fraction, par ex. 30000/1001 ≈ 29.97), et duration. La séquence que vous créez dans Premiere doit correspondre à ces valeurs — des paramètres de séquence non adaptés provoquent un redimensionnement/une conversion de fréquence d'images silencieuse qui dégrade la qualité.

3. Analyser l'audio — silence + transcription

Appelez mcp__claude-video-vision__video_analyze sur le fichier brut avec filters: {silence: true, transcription: true}. Cela renvoie des intervalles de silence et une transcription au niveau du mot (whisper s'exécute localement via whisper.cpp — aucune clé API nécessaire, la première exécution peut prendre une minute pour charger le modèle).

Enregistrez le résultat dans un fichier JSON — vous l'utiliserez pour le script de liste de coupe ensuite.

4. Calculer la liste de coupe

Exécutez scripts/build_cutlist.py sur le JSON d'analyse :

python3 "<chemin-skill>/scripts/build_cutlist.py" analysis.json \
  --duration <durée-ffprobe> --srt-out captions.srt

Ce script existe parce que le faire correctement à la main est sujet à erreur d'une manière spécifique : chaque horodatage de sous-titre après une coupe doit être décalé de la durée cumulée de tout ce qui a été supprimé avant, sinon les sous-titres dérivent et se désynchronisent. Le script gère cela ainsi que la logique de fusion/remplissage des espaces de silence pour qu'une coupe n'atterrisse jamais au milieu d'un mot.

Il coupe automatiquement trois choses : les espaces de silence ≥0,35 s (remplis de 0,08 s pour que la parole ne soit pas coupée), les mots de remplissage durs (euh, hum, heu et variantes), et les bégaiements/départs faux (répétitions immédiates de mots comme « le le »). Il ne coupe délibérément pas les remplissages doux (genre, donc, en fait, tu sais) — ce sont souvent la vraie voix de quelqu'un, pas du bruit. Retour réel de montages UGC passés : une improvisation comme « tu vois ce que je veux dire ? » a été signalée comme le élément le plus authentique du lot et explicitement conservée, pas supprimée. Le script les signale dans flagged_for_review avec contexte — parcourez cette liste et ne signalez à l'utilisateur que si quelque chose ressemble à un vrai remplissage plutôt qu'à une voix/personnalité ; en cas de doute, laissez-le.

5. Construire le projet Premiere et la coupe approximative

  1. create_project (ou open_project si vous en réutilisez un) et create_sequence avec des paramètres correspondant à la sortie de ffprobe (étape 2).
  2. import_media le fichier brut, add_to_timeline au temps 0 sur la piste 0.
  3. Parcourez le tableau cuts de la liste de coupe dans l'ordre décroissant du temps start et pour chacun : razor_timeline_at_time au début et à la fin de la coupe, puis remove_from_timeline sur le clip du milieu résultant avec deleteMode: "ripple". L'ordre décroissant est important — la suppression par ripple d'une coupe antérieure décale chaque horodatage ultérieur, donc si vous avancez, les points de coupe restants de l'étape 4 ne correspondent plus à rien.
  4. Confirmez que la durée de la séquence correspond approximativement à new_duration du JSON de la liste de coupe.

6. Correction colorimétrique

Aspect par défaut (l'utilisateur a demandé un rendu propre/naturel, pas une étalonnage stylisé) : corrigez la balance des blancs, adoucissez les hautes lumières, remontez légèrement les ombres écrasées, saturation modérée. Vous ne pouvez pas faire cela à l'aveugle — les paramètres de color_correct sont des curseurs manuels sans auto-détection derrière. Donc :

  1. export_frame une image représentative (quelques secondes après le début du clip, après toute introduction).
  2. Regardez-la. Évaluez la balance des blancs (les tons chair ne doivent pas être orange ou bleus), l'exposition (y a-t-il des zones cramées/écrasées) et le contraste.
  3. Appliquez des color_correct modérés sur le clip de la timeline — de petites corrections (valeurs à un chiffre), pas de changements dramatiques. Une correction naturelle doit être à peine perceptible comme « correction », juste comme « ça a l'air correct ».
  4. export_frame à nouveau et comparez. Itérez une ou deux fois si quelque chose cloche toujours ; ne bouclez pas indéfiniment à la recherche de la perfection sur une seule image.

Si l'utilisateur a un LUT .cube/.3dl qu'il souhaite appliquer au lieu/en complément de la correction manuelle, utilisez apply_lut avec une intensity faible à modérée (0,5–0,8) par-dessus la correction de base plutôt qu'à la place — un LUT seul ne corrigera pas un vrai problème de balance des blancs, il le recolorera simplement.

7. Sous-titres

  1. import_media le captions.srt écrit à l'étape 4.
  2. create_caption_track sur la séquence, en pointant projectItemId vers le SRT importé.

Cela ne fonctionne que parce que l'étape 4 a déjà réajusté le SRT à la timeline post-coupe — si vous régénérez les sous-titres à partir des horodatages de transcription originaux (pré-coupe) ici, ils seront désynchronisés avec la vidéo montée.

8. Recadrer pour le deuxième format d'image

Le recadrage recadre dans le cadre existant en utilisant le suivi de mouvement — il fonctionne bien en passant d'un format plus large à plus étroit (16:9 → 9:16) mais il n'y a pas de données de cadre réelles à inventer en passant d'un format plus étroit à plus large (9:16 → 16:9 nécessiterait une extension générative que l'auto-recadrage de Premiere ne fait pas). Donc :

  • Filmé en horizontal → auto_reframe_sequence avec numerator: 9, denominator: 16 pour l'export vertical. C'est le cas courant et cela fonctionne bien.
  • Filmé en vertical → si une version horizontale est vraiment nécessaire, dites-le à l'utilisateur plutôt que de remplir/flouter silencieusement les côtés ; un nouveau tournage ou un export letterboxé/pillarboxé est généralement une meilleure option qu'un mauvais recadrage IA.

9. Exporter

Les livrables sociaux finaux sont en H.264 1080p, pas en ProRes — c'est un export fini, pas une transition Premiere-à-Premiere. export_sequence chaque version :

  • Horizontale : format: "h264" (ou "mp4"), resolution correspondant à la source, quality: "high".
  • Verticale (à partir de la séquence recadrée) : mêmes paramètres, 1080×1920.

Convention de sortie lorsque l'utilisateur n'a pas spécifié de chemin : créez un dossier edited/ à côté du/des fichiers bruts source et nommez les sorties <nom-source>-final.mp4 (horizontale) et <nom-source>-vertical.mp4. save_project avant de terminer.

10. Rapport

Dites à l'utilisateur : ce qui a été coupé (décomptes par raison — silence/remplissage/bégaiement), tout ce qui provient de flagged_for_review que vous avez laissé et pourquoi, ce que la correction colorimétrique a changé et où se trouvent les fichiers exportés. Ne dites pas simplement « fait » — ce sont des images d'eux ; ils doivent savoir ce qui a été touché.

Pipeline Montage (séquences sans dialogue)

  1. Regardez chaque clip source avant qu'il ne touche la timeline — video_watch à 1 ips minimum. N'inférez pas le contenu à partir des noms de fichiers, des miniatures ou des résumés de dossier précédents : un clip « seulement pièce » peut se terminer avec la personne visible dans un miroir (c'est arrivé — deux clips de salle de bain étaient propres jusqu'aux dernières secondes). Pendant le visionnage, notez pour chaque clip le meilleur beat de 3 à 6 s et les points de coupe exacts.
  2. ffprobe tous les clips (étape 2 du Pipeline). Créez la séquence pour correspondre aux ips source — les clips en 60 ips obtiennent une séquence en 60 ips. Les paramètres de séquence ne peuvent pas être modifiés après la création (voir les bugs MCP), alors faites-le correctement d'abord.
  3. Assemblez dans l'ordre narratif selon le Style Maison : plan de marque → plans larges alternant avec des détails → plans héroïques → plan de marque à nouveau.
  4. Coupez chaque clip à son beat noté : ajoutez le clip complet à son emplacement, raser à la limite de conservation, suppression par ripple du reste — en passant à la fois videoTrackIndices et audioTrackIndices, puis list_sequence_tracks pour confirmer que les longueurs des pistes vidéo et audio correspondent toujours. Les queues audio orphelines désynchronisent silencieusement tout ce qui les suit.
  5. Ajoutez des fondus enchaînés à chaque limite de scène (add_transition_to_clip).
  6. Fond musical selon le Style Maison ; supprimez l'audio de la caméra.
  7. Exportez en priorité verticale (1080×1920, 30 ips, h264, haute qualité). Ne faites une version horizontale que si demandé.

Bugs connus du MCP premiere-pro (vérifiés en août 2026)

  • trim_clip ne fait rien en silence — renvoie un succès, ne change rien (avec ou sans duration). Ne l'utilisez jamais ; utilisez plutôt raser + suppression par ripple.
  • export_frame ignore time — renvoie toujours la première image de la séquence, quel que soit le timecode demandé. Inutile pour vérifier un moment spécifique ou étalonner un clip au milieu d'une séquence ; extrayez les images du fichier source avec claude-video-vision à la place. Il ajoute également sa propre extension (x.png → x.png.png), donc passez un outputPath sans extension.
  • razor_timeline_at_time avec seulement videoTrackIndices coupe toujours toutes les pistes audio — et les suppressions par ripple uniquement vidéo laissent des pistes audio orphelines derrière. Passez toujours audioTrackIndices explicitement et vérifiez la synchronisation après.
  • set_sequence_settings ne peut pas changer ips/taille après la création — créez une nouvelle séquence avec les bons paramètres et supprimez l'ancienne.
  • Les appels MCP peuvent expirer tout en réussissant (create_sequence l'a fait). En cas d'expiration, vérifiez get_project_info/list_sequences avant de réessayer — les nouvelles tentatives aveugles créent des doublons.
  • export_sequence peut signaler un succès et n'écrire rien — confirmé deux fois (avec et sans extension de fichier dans outputPath) ; il renvoie également format: "Pro... [tronqué pour la traduction]

Contribuer

Les contributions sont les bienvenues ! Consultez le dépôt GitHub pour les directives de contribution.

Licence

MIT

Individual skills in this repo

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

Skills associés