Que fait Montage Clip ?
Objectif
Prenez les courtes vidéos que l'utilisateur filme avec son téléphone, ainsi que la musique ou l'enregistrement vocal qu'il possède, et montez-les en un montage vertical au format 9:16 prêt à être publié :
- le meilleur moment de chaque clip, dans un ordre qui raconte l'histoire ;
- coupé sur le rythme ;
- une accroche sur la première image, une étiquette sur chaque plan, et l'appel à l'action à la fin ;
- le son original du clip là où c'est important (quelqu'un qui parle, un grésillement, une acclamation), sous-titré mot à mot ;
- la voix-off de l'utilisateur sur toute la vidéo, avec des sous-titres synchronisés.
Continuez à le modifier avec l'utilisateur jusqu'à ce qu'il soit satisfait (« utilise la partie où elle rit », « la cuisine en premier », « son plus fort, pas de musique ») une version à la fois, sans perdre les versions précédentes.
Ceci est le montage par défaut, et il est gratuit. Tout est rendu sur cette machine avec les outils scripts/video/ du plugin (montage.js construit la page à partir d'un court script, render.js crée le MP4). Pas de compte, pas de crédits, et rien ne quitte la machine. Les vraies images sont aussi le reflet le plus fidèle d'un lieu ou d'un produit : aucune IA n'invente quoi que ce soit.
Ce qui coûte de l'argent, et quand l'évoquer :
| Ce que l'utilisateur a | Ce qui se passe | Coût |
|---|---|---|
| Vidéos (avec ou sans photos, musique, enregistrement vocal) | Cette compétence | Gratuit |
| Uniquement des photos, et l'utilisateur peut filmer quelques clips | Demandez les clips, puis cette compétence | Gratuit |
| Uniquement des photos, pas de clips possibles | montage-video avec mouvements locaux (pano, zoom avant, mouvements 3D) | Gratuit |
| Uniquement des photos, et l'utilisateur souhaite que la caméra bouge vraiment (nouveaux angles) | « Mouvements de caméra IA » de montage-video, uniquement si l'utilisateur dit avoir un forfait payant avec un modèle vidéo (Figma Weave sur un forfait Figma payant, Higgsfield), devis et approbation préalables | Crédits payants |
Ne lancez jamais de modèle vidéo payant depuis cette compétence. Ne faites jamais de devis sauf si l'utilisateur a déclaré avoir un forfait payant et le souhaite.
Processus étape par étape
Racine du plugin : si un chemin ci-dessous contient encore un espace réservé CLAUDE_PLUGIN_ROOT non développé (Claude Code le remplit ; d'autres agents comme Codex non), résolvez-le avant d'utiliser l'un d'eux : prenez la sortie de printenv CLAUDE_PLUGIN_ROOT si elle imprime un chemin, sinon remontez à partir du dossier de ce fichier jusqu'au premier dossier contenant references/brand-voice.md, et si rien ne fonctionne, demandez à l'utilisateur où se trouve ce plugin. Utilisez ce chemin absolu dans chaque chemin de fichier et chaque commande shell ci-dessous. VIDEO ci-dessous signifie ${CLAUDE_PLUGIN_ROOT}/scripts/video.
-
Vérifiez l'état de la configuration. Lisez
${CLAUDE_PLUGIN_ROOT}/references/brand-voice.md. S'il n'existe pas, ou si sa première ligne est<!-- MARKETING-SKILL:UNCONFIGURED -->, faites une pause et demandez à l'utilisateur les 4 questions de configuration de ce plugin (tâche prioritaire ; types de contenu à produire ; public cible + ton ; format de sortie par défaut — identique à/marketing-skill:marketing-setup) avant de continuer, puis enregistrez les réponses dans ce fichier et basculez le marqueur surCONFIGUREDavec la date du jour. Si le fichier n'est pas configuré mais que l'utilisateur a déjà dit de passer la configuration ou d'utiliser les valeurs par défaut, ne demandez pas : utilisez les valeurs par défaut pour cette exécution, dites-le en une ligne, et laissez le marqueur tel quel. -
Choisissez le client. Exactement comme à l'étape 2 de
montage-video(${CLAUDE_PLUGIN_ROOT}/skills/montage-video/SKILL.md) : un client enregistré (lisez le profil et ses## Notes), un nouveau (nom de l'entreprise, coordonnées, mentions légales requises, logo, couleurs, la musique qu'il aime), ou la propre entreprise de l'utilisateur (omettezclient:). Les profils se trouvent dans${CLAUDE_PLUGIN_ROOT}/state/clients/et restent hors de git. -
Demandez les images, la musique et la voix. En un seul message :
- Les clips (la demande par défaut). Des courtes vidéos de téléphone, de 3 à 15 secondes
chacune, une par pièce, angle ou moment. S'ils n'ont pas encore filmé,
donnez-leur les « Conseils de tournage pour les clips » de
montage-guide.md: vertical, maintenez chaque plan stable pendant 3 à 5 secondes, déplacez-vous lentement, bonne lumière, et les détails en gros plan. - La musique, s'ils en ont. Un morceau dont ils ont les droits d'utilisation dans une
publicité. Une chanson d'une application de streaming ou de la radio n'en est pas une. Sinon :
le son enregistré du client (une piste générée gratuitement), un morceau Creative Commons
(
node VIDEO/media.js search "<ambiance>" --type music --out state/videos/assets --count 3), ou pas de musique, pour qu'ils ajoutent un son tendance dans l'application lors de la publication (les comptes professionnels de TikTok et Instagram ont une bibliothèque à usage commercial). - Une voix, s'ils en ont une. Une voix-off qu'ils ont enregistrée (un fichier suffit, un mémo vocal de téléphone fonctionne), avec ce qu'ils disent mot pour mot pour les sous-titres. Ou des clips où quelqu'un parle à la caméra. Ou rien : la plupart des montages sont uniquement musicaux.
- Un montage auquel ils aimeraient qu'il ressemble, le cas échéant : une vidéo qu'ils envoient
(ou la référence de style dans
brand-voice.md's Video Setup). Lanceznode VIDEO/reference.js <video>, lisez sonreference.md, et regardez ses fiches ; puis correspondez à son rythme (pace:sa durée de plan typique, en temps quand ses coupes tombent sur le rythme), ses rafales de coupes rapides, ses sous-titres, et son ambiance, et dites en une ligne ce à quoi vous correspondez. Copiez le montage, jamais ses images, sa musique ou ses paroles ; demandez le fichier plutôt que de télécharger la publication de quelqu'un sur l'application. - Que des photos ? Demandez s'ils peuvent plutôt filmer quelques clips (c'est
gratuit et la représentation la plus fidèle). S'ils ne peuvent pas, passez à
montage-video, qui anime les photos avec des mouvements locaux gratuits. Évoquez la transformation IA de photo en vidéo uniquement s'ils demandent de vrais mouvements de caméra ou de nouveaux angles, et dites que cela nécessite un forfait payant (les modèles vidéo Figma Weave fonctionnent uniquement sur les forfaits Figma payants). Lancez-la uniquement après qu'ils aient dit en avoir un et approuvé le devis, en suivant les « Mouvements de caméra IA » demontage-video. - Obtenez les fichiers sur le disque. Le moteur de rendu a besoin de fichiers : demandez le dossier (ou les chemins des fichiers). Les vidéos collées dans un chat ne peuvent pas être lues par le moteur de rendu. Si elles sont dans Google Drive et qu'un connecteur Drive est disponible, téléchargez-les avec celui-ci dans un nouveau dossier.
- Utilisez uniquement les images que l'utilisateur ou le client a filmées ou dont il a une licence d'utilisation, et uniquement les personnes qui ont accepté d'y figurer.
- Les clips (la demande par défaut). Des courtes vidéos de téléphone, de 3 à 15 secondes
chacune, une par pièce, angle ou moment. S'ils n'ont pas encore filmé,
donnez-leur les « Conseils de tournage pour les clips » de
-
Importez-les. Lancez
node VIDEO/montage.js inspect <dossier> --slug <slug>, où le slug est court et nomme la vidéo (maple,taco-night).- Il copie chaque clip dans
state/videos/assets/<slug>-01.mp4, et ainsi de suite, avec l'image et le son tels quels et les métadonnées supprimées (y compris la localisation d'un clip de téléphone). Les originaux ne sont pas touchés. - Il imprime la taille, la forme, la longueur de chaque clip, et s'il a du son, et signale les clips longs, paysage et de basse résolution.
- Il écrit une planche contact numérotée,
<slug>-contact.png, et un script de démarrage,state/videos/<date>-<slug>.md, un plan par fichier. - Copiez la musique de l'utilisateur dans
state/videos/assets/<slug>-music.<ext>et sa voix-off dansstate/videos/assets/<slug>-vo.<ext>.
- Il copie chaque clip dans
-
Regardez chaque clip. Vous ne pouvez pas lire la vidéo, alors regardez les images :
- Lancez
node VIDEO/montage.js frames <clip> --every 1pour chaque clip (--every 0.5pour un clip court et chargé). Il dispose une image toutes les secondes avec son heure, et imprime quand le son du clip est fort (quelqu'un qui parle, ou un son qui mérite d'être conservé). Lisez chaque feuille. - Nommez ce que chaque clip montre, et choisissez son meilleur moment : stable,
net, bien éclairé, le sujet clair. Ignorez le début tremblant, le téléphone
abaissé, le flou, et toute personne n'ayant pas accepté d'apparaître. Chaque choix
est un intervalle,
[from: 3.5] [to: 6.5]: 1,5 à 4 secondes convient pour la plupart des plans. Un long clip peut donner deux ou trois plans de moments différents. - Un clip paysage est recadré en 9:16. Notez ce qui doit rester dans le cadre sous la forme
[focus: x%,y%](la personne, le produit, la cheminée). - Notez les clips dont le son doit rester (
[sound]) : quelqu'un qui parle à la caméra, un rire, le grésillement sur le gril. Vous ne pouvez pas les entendre, alors demandez à l'utilisateur ce qui est dit, mot pour mot, pour les sous-titres, et dites quels clips vous garderiez le son pour qu'il puisse vérifier. - Dites quels clips ou moments vous avez laissés de côté et pourquoi, afin que l'utilisateur puisse vous contredire.
- Ordonnez les plans avec
${CLAUDE_PLUGIN_ROOT}/references/montage-guide.md(« Clips : l'ordre ») : le moment le plus fort en premier, puis un parcours à travers le lieu ou l'événement, en terminant par l'appel à l'action.
- Lancez
-
Confirmez le périmètre en un seul message. Proposez, et laissez l'utilisateur corriger :
- Durée et plans : environ 15, 30 ou 60 secondes, et quels moments la remplissent.
- Musique : leur morceau, le son du client, un autre genre, un morceau Creative Commons (envoyez-le pour écoute d'abord), ou rien.
- Voix : leur voix-off, les clips qui gardent leur propre son, ou rien.
- Les mots à l'écran : l'accroche (trois options issues de
${CLAUDE_PLUGIN_ROOT}/references/hooks.md, chacune d'un modèle différent), une étiquette pour chaque plan, un autocollant de statut le cas échéant, et l'appel à l'action, plus le prix et les spécifications pour une annonce ou un produit. Chaque fait provient de l'utilisateur ou du client. S'il en manque un, demandez, ou laissez-le de côté.
-
Écrivez le script et construisez la page. Modifiez le script de démarrage. Le format et chaque balise sont documentés en haut de
VIDEO/montage.js:--- title: taco night client: casa-lupe hook: tuesday is taco night cta: book a table · link in bio music: assets/taco-night-music.mp3 pace: 4 beats --- 3. assets/taco-night-03.mp4 Fresh off the grill [from: 1.2] [to: 4] [sound] 1. assets/taco-night-01.mp4 Handmade tortillas [from: 0.5] [to: 3] [focus: 40%,60%] 2. assets/taco-night-02.mp4 Meet chef Lupe [from: 6] [to: 10.5] [sound] [say: Every tortilla is pressed by hand, every morning.] 4. assets/taco-night-04.mp4 The patio [from: 2] [to: 5] [move: push-in]- Intervalles des clips :
[from:]et[to:]définissent l'intervalle. Le plan est ensuite ajusté au rythme (arrondi à la hausse, donc il dure un instant après[to:]). Utilisezpace:en temps, pas en mesures, pour les clips : une mesure arrondit un intervalle de 3 secondes à 5 secondes à 96 BPM. - Son propre d'un clip :
[sound]le joue en synchronisation, avec la musique atténuée en dessous. Un[say: ...]sur ce clip est ce qui y est dit, sous-titré mot par mot. Il n'est pas redoublé. - La voix-off de l'utilisateur :
voiceover: assets/<slug>-vo.m4aetvoiceover-text: <leurs mots, mot pour mot>. Elle démarre à 0,3 seconde (voiceover-at:pour la modifier), la musique s'atténue en dessous, les sous-titres défilent en bas de chaque plan, et les plans s'étirent pour la couvrir. N'utilisez pas également des lignes vocales[say: ...]. - Leur musique :
music: assets/<slug>-music.mp3. Son rythme est lu avecbeats.jset les coupes tombent dessus.music: nonelaisse de la place pour un son tendance ajouté dans l'application. - Mouvements : un clip conserve son propre mouvement.
[move: push-in],pull-outoudriftajoutent un zoom lent par-dessus. Un panoramique glisse le clip zoomé, car il n'y a rien à côté du cadre pour effectuer un panoramique. - Photos mélangées bougent comme dans
montage-video(panoramiques, zooms avant, mouvements 3D).
Puis lancez
node VIDEO/montage.js state/videos/<date>-<slug>.md. Il écrit<date>-<slug>.htmlà côté du script, imprime le tableau des plans, le son, la voix, et toutes les notes (un clip plus court que son plan, un plan maintenu pour que son étiquette soit lisible), et lancerender.js --check. Corrigez ce que la vérification liste, généralement en raccourcissant une étiquette, et relancez-la jusqu'à ce qu'elle soit propre. - Intervalles des clips :
-
Première version. Regardez chaque image de
node VIDEO/render.js <page> --slidesvous-même : le sujet dans le cadre (pas recadré d'un clip paysage), étiquettes lisibles, sous-titres dégagés des étiquettes, l'ordre racontant l'histoire. Ensuite :- Envoyez à l'utilisateur les diapositives pour approuver l'ordre et les mots.
- Rendu :
node VIDEO/render.js <page> state/videos/<slug>-v1.mp4 --cover 0. Il écrit le MP4 (1080×1920, 30fps), une image de couverture et, quand il y a une voix ou un son de clip sous-titré, un fichier de sous-titres.srt.--draftcrée une version rapide en demi-taille pour vérifier le timing d'abord. Ne publiez jamais une version provisoire. - Vous ne pouvez pas entendre le résultat. Demandez à l'utilisateur d'écouter : la musique, chaque son de clip conservé, et la voix-off par rapport aux sous-titres.
-
Modifiez jusqu'à ce que ce soit bon. Chaque demande devient une modification du script, jamais de la page, car
montage.jsrecalcule tout le timing :L'utilisateur dit Changement dans le script « utilise la partie où elle rit » le [from:]/[to:]de ce plan (trouvez-le sur la feuille--every)« coupe la partie tremblante » un [from:]plus tard, ou un[to:]plus tôt« plus long sur la cuisine » un [to:]plus tard, ou[hold: 4s]« plus rapide » / « plus lent » des intervalles plus courts, pace:(ex.3 beats), oulength:« fais-le en 15 secondes » length: 15, et supprime les moments les plus faibles (dites lesquels)« la cuisine en premier », « échange 3 et 5 » réorganisez les lignes numérotées « garde le son sur celui-là » / « coupe-le » ajoutez ou supprimez [sound]« ajoute des sous-titres à ce qu'il dit » [say: <ses mots, exactement>]sur ce clip[sound]« ajoute ma voix-off » voiceover:etvoiceover-text:« une chanson différente » / « pas de musique » music:un autre fichier, un genre, ounone« montre le côté gauche », « garde-la dans le cadre » [focus: 25%,50%]« zoome dessus » [move: push-in](avec[focus:]sur l'endroit)« plus fluide » / « coupes plus percutantes » transition: fade, oucut,slide,zoom,wipe,flash« change le texte » l'étiquette, hook:,cta:,price:,specs:« ralenti » non pris en charge : pas de changements de vitesse. Un clip filmé au ralenti du téléphone est lu tel qu'il a été filmé « une autre couleur / logo / numéro de téléphone » le profil du client, pas le script Chaque tour : modifiez le script, relancez
montage.js, puis utilisez--draftpour un changement de timing ou--slidespour un changement d'apparence. Rendez la version suivante sous la forme<slug>-v2.mp4,-v3.mp4, et ainsi de suite. Ne remplacez jamais une version antérieure, afin que l'utilisateur puisse revenir en arrière.Quand l'utilisateur dit « publie-la », téléchargez la dernière version et la couverture sur le Drive du plugin (
state/videos/), et ne la publiez nulle part. Dites que la vidéo est prête et qu'ils peuvent la télécharger depuis là où ils l'ont envoyée ou l'obtenir depuisstate/videos/<slug>-v<n>.mp4.
Rappels
- N'utilisez jamais d'images, de musique ou de voix générées par l'IA. Aucune image de
référence ou vidéo de démonstration. Aucune séquence musicale générée par l'IA (
media.jsn'obtient que de la musique Creative Commons de véritables artistes). - Chaque plan de montage vient d'un clip appartenant à l'utilisateur ou au client, ou dont il a une licence d'utilisation. Chaque fait sur le produit ou le lieu vient de l'utilisateur ou du client.
- Considérez le projet comme confidentiel. Ne partagez pas la vidéo en cours de montage avec d'autres personnes sans l'autorisation de l'utilisateur.
- La règle est de vérifier les images de
--slideset--every, pas de les décrire à l'utilisateur. L'utilisateur ne peut pas non plus voir les images, alors posez des questions précises (« est-ce qu'il parle autant ? »). - Les modifications se font toujours sur le script (
.md), jamais sur la page HTML ou le MP4.montage.jsrecalcule tout à partir du script.render.jsreconstruit le MP4.
Voir aussi
montage-video: pour les montages à partir de photos (mouvements locaux gratuits ; mouvements de caméra IA payants, nécessitant un forfait).social-media-content: publie des photos et des vidéos sur des comptes professionnels. Demandez-la lorsque l'utilisateur veut que la vidéo aille sur Meta Business Suite ou Buffer.