Communitygithub.com

video-studio - Atelier vidéo automatique

Créez et éditez des vidéos professionnelles en une commande : montage à partir d'un storyboard, remplacement de la voix off, ajout de sous-titres, conversion de cadence, contrôle qualité automatique et détection des artefacts IA. Idéal pour les projets vidéo sur les plateformes Claude, Cursor et autres.

Qu'est-ce que video-studio - Atelier vidéo automatique ?

Video Studio est un agent spécialisé dans la création et la post-production vidéo automatisée, conçu pour fonctionner avec Claude, Cursor et d'autres assistants de codage. Il permet de générer des vidéos complètes à partir d'un projet JSON décrivant storyboard, sources, transitions, voix off et habillage graphique. Il supporte également le remplacement de voix off (revoice), l'ajout de sous-titres, la conversion de cadence d'images (fps), et le recadrage intelligent. L'agent intègre des modules de contrôle qualité (QC) qui détectent les images aberrantes, les tremblements, les niveaux sonores (LUFS) et les incohérences de synchronisation labiale. Enfin, il propose un filtre anti-« AI slop » qui vérifie que les affirmations sont sourcées, que le rythme n'est pas monotone, et que les règles du client sont respectées, garantissant ainsi un rendu professionnel et crédible.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add viethuynh243/video-studio

Demander à votre IA préférée

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

Documentation

Video Studio - montage vidéo automatique

Cette compétence produit des vidéos finalisées, et pas seulement des instructions. Tout passe par une porte unique : scripts/autovideo.py. Les connaissances métier (angles de caméra, rythme, son, sous-titres, CapCut, films IA, leçons pratiques) se trouvent dans references/ pour prendre les bonnes décisions lors de l'établissement du storyboard et de la lecture des rapports de contrôle qualité.

Chemin du script : dossier contenant ce fichier + /scripts/ (installation selon le README : ~/.claude/skills/video-studio/scripts).

0. Commandes slash pour l'utilisateur

/video:plan discuter idée - scénario - storyboard - éclairage · /video:make monter une nouvelle vidéo · /video:revoice remplacer la voix off · /video:subs sous-titres · /video:reframe changer de format (vertical/carré) · /video:library banque de plans · /video:qc contrôle qualité · /video:voices choisir une voix selon l'objectif · /video:fix corriger les saccades/fps/tremblements · /video:critic critique indépendante · /video:slop détecter et corriger les artefacts IA (AI slop) · /video:capcut exporter vers CapCut. Si l'utilisateur s'exprime en langage naturel (sans utiliser les commandes), le système suit le tableau ci-dessous.

0b. Outils MCP video-studio (à privilégier quand ils sont disponibles)

Lorsque les outils mcp__video-studio__* sont présents dans la session, appelez-les directement plutôt que d'exécuter les scripts avec Bash :

  • Rapides : video_probe, video_qc, contact_sheet, voices_suggest, voices_catalogue, pronunciation_preview, shot_search, motion_stills, slop_check, slop_compare.
  • Tâches longues (renvoient job_id, suivi via job_status / job_list) : make_video, revoice_video, subtitle_video, convert_fps, reframe_video, stabilize_video, motion_graphic, critic_kit, voice_samples. Enregistrement unique : claude mcp add --scope user video-studio -e PYTHONIOENCODING=utf-8 -- python <repo>/scripts/mcp_server.py.

1. Choisir la commande selon la demande

L'utilisateur veutAction à réaliser
Créer une nouvelle vidéo à partir d'une idée/scénario + banque de sources (vidéos, images)Écrire project.json selon templates/project_make.json → autovideo.py make project.json --out NOM_v1.mp4
Changer la voix off / remplacer la voix d'une vidéo existanteautovideo.py revoice VIDEO.mp4 --script paroles.txt [--voice auto --muc-dich thoi_su] --out NOM_v1.mp4 [--subs]
Ajouter des sous-titres à une vidéoautovideo.py subs VIDEO.mp4 --script paroles.txt --out NOM_sub.mp4 (détection automatique des repères sur l'audio)
Vérifier une vidéo avant livraisonautovideo.py qc VIDEO.mp4 (+ contact_sheet.py pour un contrôle visuel)
Changer le fps (24/25/30/50/60/120), ralenti, corriger les saccadesfps_convert.py convert SOURCE DEST --fps 24 [--slowmo 4] (RIFE GPU)
Passer du paysage au portrait/carré avec suivi du sujet ; panoramique/zoom virtuel ; stabilisationcamera.py reframe / move / stabilize
Sélectionner les meilleurs plans parmi les rushes, rechercher par descriptionshot_select.py scan / best / search
Étalonner les couleurs entre les plans, appliquer un look cinémagrade.py match / look / apply
Exporter pour une plateforme, détecter les temps forts musicauxdeliver.py export <preset> / beats
Discuter idée, storyboard, éclairage, angles de caméra avant montage/video:plan + references/11-dien-anh-cao-cap.md
Cartes de trajet, chapitres, graphiques de données (motion graphics par code)motion_html.py stills/render + templates/motion/*.html, ou scène "nguon": {"html": ...}
Scénario/film qui sonne « IA » : phrases creuses, chiffres non sourcés, affirmations gratuites, rythme uniforme, effets excessifs/video:slop (slop_guard.py mesure → nouvel agent propose des corrections → compare mesure à nouveau)
Évaluation du film avant envoi (évaluateur différent du monteur)/video:critic (critic.py + nouvel agent, évalue jusqu'à ce que tous les critères ≥ 8)
Choisir une voix selon l'objectifvoices.py suggest --muc-dich thoi_su --gioi-tinh nu, générer 2-3 échantillons vocaux suggérés, les envoyer à l'utilisateur pour écoute
Transférer vers CapCut pour réglages manuelsajouter --capcut NOM_BROUILLON à make/revoice, ou capcut_api.py build --spec
Film IA / micro-dramareferences/09-phim-ai-pipeline.md + storyboard.py jobs

Toutes les commandes sont automatiques : ne pas écraser les fichiers existants, sauvegarder les fichiers intermédiaires dans <sortie>_work/, écrire BAO_CAO_QC.md (défauts d'image, indice de saccade, LUFS, % de paroles correspondant au scénario). Lire le rapport avant d'envoyer et citer les mesures dans la réponse.

2. Créer project.json pour make (le plus important)

  • Chaque canh (scène) contient une idée unique de parole. nguon (source) peut être : {"file", "vao", "ra"} (vidéo), {"anh", "hieu_ung": zoom_in|zoom_out|pan_left|pan_right}, {"mau": "#0E2440"}.
  • La durée de la scène se calcule automatiquement = max(thoi_luong, durée de la voix + 0,9 s). La scène vidéo recule automatiquement à l'intérieur d'un plan original ; si la source n'est pas assez propre, la scène se retire automatiquement, pas de freeze.
  • L'image doit correspondre exactement aux paroles (bon chantier, bon événement) - choisir la source via probe_qc.py --inventory + contact_sheet.py sur la source, ne pas deviner d'après le nom du fichier.
  • chuyen_canh (transition) : cut pour une même idée, dissolve lors d'un changement d'idée/d'espace. Durée de scène ≤ 7-8 s.
  • Les paroles sont écrites comme parlées ; chiffres et unités en l'état (119 km, 100 km/h) - tts_vi.py normalise automatiquement (trait d'union/tiret n'est pas lu comme « à »).
  • chu_tren_hinh (texte à l'écran) : court, seulement les chiffres/noms présents dans les paroles ; ne pas utiliser "—".
  • Avancé : fps du projet quelconque (sources à fps différent passent automatiquement par fps_convert), scène vidéo avec slowmo, camera (push/pan virtuel), on_dinh (stabilisation), khung_thong_minh (suivi intelligent du sujet lors de l'export vertical) ; le projet peut avoir mau (étalonnage + look) et cat_theo_nhac (montage sur les temps forts).
  • Pas de voix imposée : "giong": "auto" (par défaut) choisit selon "muc_dich" (objectif : doanh_nghiep entreprise, thoi_su actualités, tai_lieu documentaire, quang_cao publicité, mang_xa_hoi réseaux sociaux, huong_dan tutoriel, sang_trong solennel, tre_em enfants, su_kien événement) + "gioi_tinh" (genre), "vung" (région), "am_sac" (timbre : grave/moyen/aigu), basé sur le profil de chaque voix (voices.py profile : justesse de prononciation, hauteur, vitesse). Ou spécifier : nom de voix VieNeu, {"edge": "vi-VN-HoaiMyNeural"}, {"clone": "mau_giong.wav"} (le locuteur doit donner son accord), ou enregistrement réel "ghi_am": "cau3.wav" pour chaque scène. Chaque scène/personnage peut avoir une voix différente. Toujours proposer 2-3 voix suggérées (voices.py suggest) à l'utilisateur pour écoute avant validation.
  • Précision : dictionnaire de prononciation templates/phat_am.json + "phat_am" propre au projet (abréviations, noms propres) ; chaque phrase est écoutée par Whisper, si une phrase a une précision < "do_chinh_xac" (0,97), elle est relue automatiquement jusqu'à "doc_lai" fois, avec rapport par phrase ; les sous-titres sont alignés mot par mot.
  • Options de montage : "phong_cach" (style) : trang_trong (solennel) | dien_anh (cinéma, letterbox 2.39, filmique) | tai_lieu (documentaire) | nang_dong (dynamique, montage sur les temps forts) | mang_xa_hoi (réseaux sociaux, suivi du sujet). Transitions par scène : cut, dissolve, fade_black, dip_white, wipe_left/right, slide_left/right, zoom_in. Format : "khung" : fill (remplir, rogner) | fit_blur (conserver intégralité, fond flou) | smart (suivi du sujet). "letterbox": 2.39. Toutes les options peuvent être écrasées scène par scène.
  • Graphismes animés : "nguon": {"html": "templates/motion/route_map.html", "params": {...}} (carte de trajet dessinée progressivement, cartes chapitre...). make exporte également une version audio seule _chi_nhac.mp4. Brief du réalisateur + facts.md avant le montage d'un grand film (references/12).
  • Anti artefacts IA : "facts": "facts.md" (chaque chiffre + phrase originale + document + date) et "luat": ["~/.video_studio/luat/<client>.json"] (règles du client, en dehors du dépôt). make vérifie automatiquement et inscrit une section « Anti artefacts IA » dans le rapport ; "chan_khi_slop": true pour s'arrêter s'il reste des chiffres inventés ou des violations de règles. Si le client modifie une phrase manuellement, recopier le texte exact dans le livre de règles (slop_guard.py ghi) pour que les films suivants le détectent automatiquement (references/13).
  • Sélection automatique de plans : "kho_canh": "kho.json" (provenant de shot_select.py scan --clip) et "nguon": {"tim": "aerial view of a highway at sunset"} → récupérer le plan le plus pertinent, suffisamment long, pas déjà utilisé, de bonne qualité. Écrire la description de recherche en anglais.

3. Règles immuables

  1. Ne pas supprimer/écraser une version livrée. Nouvelle version _vN. Remplacer la version principale uniquement après approbation de l'utilisateur : mv -n de l'ancienne version vers _luu_<description>, cp -n de la nouvelle, cmp pour confirmer.
  2. Mesurer avant de parler - utiliser les chiffres du BAO_CAO_QC.md ; si pas encore mesuré, dire que ce n'est pas mesuré.
  3. Contenu véridique : chantier/unité corrects, pas de stock étranger, pas de QR, pas de pub, pas de slogan hors sujet, pas de personnes non autorisées.
  4. Traduction à 100 % du sens et du contexte ; en cas de doute, demander.
  5. Ne pas saisir de mot de passe/clé API à la place de l'utilisateur.
  6. Télécharger les modèles uniquement de sources fiables, privilégier .safetensors, installer un venv dédié.
  7. Communication en français.
  8. Ne pas fournir de chiffres inventés : tout chiffre à l'écran ou dans la narration doit figurer dans facts ou être déclaré [calcul: ...]. Les corrections proposées par un agent ne sont acceptées qu'après une nouvelle mesure via slop_guard.py compare (l'auteur ne peut pas s'auto-valider).

4. Charger les références si nécessaire

QuandFichier
Processus, versions, rapport clientreferences/01-quy-trinh.md
Angles de caméra, taille de plan, rythme de coupe, transitions, images fixesreferences/02-ngon-ngu-hinh-anh.md
Saccades, à-coups, images aberrantes, changement de fpsreferences/03-khung-hinh-chuyen-dong.md
Couleur, scale/crop, logo, exportreferences/04-hinh-anh-mau-xuat.md
Voix, TTS, musique, LUFSreferences/05-am-thanh-giong-doc.md
Sous-titres, traduction, texte à l'écranreferences/06-phu-de-dich-chu.md
CapCut (MCP, VectCutAPI, web)references/07-capcut.md
QC avant livraisonreferences/08-qc-giao-file.md
Films IA / micro-dramareferences/09-phim-ai-pipeline.md
Leçons apprises à nos dépensreferences/10-bai-hoc-thuc-te.md
Éclairage, objectifs, ouverture/obturateur/ISO/ND selon situation, prompt vidéo IA, angles, couleur, son, montagereferences/11-dien-anh-cao-cap.md
Anti artefacts IA : chiffres sourcés, livre de règles client, relecteur aveugle, re-mesure avant validationreferences/13-chong-ai-slop.md
Brief du réalisateur, règles anti « mouvement IA », graphismes par code, cycle de critique, grands projets (GES, 3D, état des lieux)references/12-dao-dien-motion-va-phe-binh.md

5. Scripts

ScriptRôle
autovideo.pyPorte principale : make, revoice, subs, qc
voices.pyProfil de chaque voix, suggestion par objectif, multiples sources vocales (VieNeu, Edge, clone, enregistrement)
accuracy.pyDictionnaire de prononciation, écoute phrase par phrase, relecture automatique des phrases incorrectes
motion_html.pyGraphismes animés en HTML + seek(t) (Playwright), motion blur subframe automatique
critic.pyKit d'évaluation indépendant : contact/phone/strip, images mortes, texte suffisamment long, vérification artefacts IA (avec slop_guard)
slop_guard.pyAnti artefacts IA déterministe : chiffres sourcés/déduits, phrases creuses, affirmations gratuites, rythme, montage uniforme, livre de règles client ; compare valide/rejette les corrections
mcp_server.pyServeur MCP : 21 outils (rapides + file d'attente de jobs) pour que Claude appelle directement
probe_qc.pyInventaire des sources / QC vidéo (images aberrantes, flashs, images répétées, freeze, saccade, cadence, LUFS, bordures noires)
contact_sheet.pyPlanche contact 3 images/plan pour contrôle visuel
fps_convert.pyConvertisseur fps 24-120, ralenti, motion blur 180°, détection d'images interpolées (RIFE/flow)
camera.pyRecadrage intelligent (visage + saillance), panoramique/zoom virtuel, stabilisation vidstab
shot_select.pyBanque de plans : détection de plans, notation, recherche par description (CLIP)
grade.pyLUT d'étalonnage, balance automatique, look ; application de LUT
deliver.pyPréréglages d'export par plateforme, détection des temps forts musicaux
cadence_fix.pyCorrection de cadence par segment via optical flow (ancienne version, pas besoin de GPU)
tts_vi.pyVieNeu-TTS vietnamien (25 voix), normalisation du texte, exécution automatique dans un venv dédié
speech_check.py% de paroles correspondant au scénario (Whisper), estimation du dialecte
voice_mix.pyPlacement des paroles sur les repères, chaîne de traitement vocal, ducking, LUFS, montage vidéo
subs.pyDécoupage des sous-titres, SRT/ASS, incrustation
demucs_split.pySéparation voix/musique
capcut_api.pyCréation d'un brouillon CapCut desktop via VectCutAPI
storyboard.pyVérification du storyboard, shotlist, file d'attente de jobs pour films IA

Environnement (installation via install.ps1) : ffmpeg dans le PATH ; Python 3.12 (numpy, opencv, soundfile, librosa, Pillow, faster-whisper, torch, demucs) ; VieNeu dans ~/tools/venv_vieneu (modifiable via VIENEU_PY) ; RIFE dans ~/tools/rife/ (RIFE_BIN) ; YuNet dans ~/tools/models/ (YUNET_ONNX) ; VectCutAPI dans ~/tools/VectCutAPI (port 9001).

Skills associés