Communitygithub.com

NiJingzhe/promo-video-skill

Réalisez un film promotionnel ou de lancement de produit synchronisé sur la musique, du début à la fin, avec un humain dans la boucle — choix musical, storyboard, script voix-off et montage vidéo dans Remotion.

Qu'est-ce que promo-video-skill ?

Cette compétence permet de produire une vidéo promotionnelle ou un film de lancement, entièrement synchronisé sur la musique et la voix-off, en six étapes séquentielles. Chaque étape produit un livrable validé par l'humain avant de passer à la suivante, évitant ainsi des coûts de construction inutiles. La compétence analyse le morceau choisi (BPM réel, temps forts), génère un storyboard minuté, écrit un script voix-off pour ElevenLabs, découpe le fichier audio vocal, puis construit la vidéo dans Remotion avec des scènes 3D (three.js), des reproductions d'interface utilisateur, des mouvements de caméra virtuels, et chaque coupe placée sur le beat. Elle s'appuie sur des scripts Python (analyse musicale, interface de découpe du son, visionneuse de révision) et un projet Remotion modèle. L'utilisateur reste décisionnaire pour le morceau et la voix ; la compétence propose l'automatisation du navigateur pour Epidemic Sound et ElevenLabs, mais sans jamais manipuler mots de passe ou informations de paiement.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add NiJingzhe/promo-video-skill

Demander à votre IA préférée

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

Documentation

promo-video

Un film se réalise en six étapes. Chaque étape se termine par quelque chose que l'humain vérifie. N'allez pas en avance : l'étape coûteuse (la construction) n'est bon marché que si les précédentes sont réglées, car chaque événement image est placé par rapport à la musique et à la voix.

Expliquez le plan à l'humain une fois au début (le README.md contient la version destinée à l'humain), puis exécutez les étapes dans l'ordre. Parlez-lui dans son langage. Conservez tous les fichiers du projet dans un seul répertoire (<projet>/ : audio/, vo/, PLAN.md, elevenlabs.md, le projet Remotion dans video/).

#ÉtapeVous faitesL'humain faitRéférence
1Musiqueanalysez le morceau, trouvez le tempo réel et les marques forteschoisit le morceau sur Epidemic Sound, utilise Create a cut pour la durée, vous donne le fichierreferences/01-music.md
2Storyboardposez les questions directrices, écrivez PLAN.md (tableau de plans minuté sur la musique)répond, approuvereferences/02-storyboard.md
3Script voixécrivez les répliques + la prise étiquetée ElevenLabsla génère dans ElevenLabs, envoie le fichierreferences/03-voiceover.md
4Couper la voixouvrez cut_ui.py sur la prise, puis découpez, nivelez, placez chaque répliqueclique entre les lignes dans la page navigateur, appuie sur Terminé ; vérifie le tableau de placementreferences/03-voiceover.md
5Constructionprojet Remotion depuis template/, scène par scène, vérifiez chaque image fixeexamine les images fixes / un rendu provisoirereferences/04-build.md
6Révision + polissagerendu, vérification du volume sonore, ouvrez review_ui.py sur le rendu, lisez ses notes + images, corrigez, re-rendezregarde dans la page de révision, laisse des notes sur l'image, choisit Approuvé / Modifications nécessairesreferences/05-review.md

Automatisation du navigateur : proposez-la, ne la présumez jamais

Les étapes 1 et 3 se déroulent sur des sites web (Epidemic Sound, ElevenLabs). Si une compétence ou un outil d'automatisation de navigateur est disponible (par exemple ego-browser, une configuration Playwright, un MCP navigateur), proposez d'effectuer ces parties vous-même, et expliquez clairement ce que cela implique avant de demander un accord :

  • Comptes : les deux sites nécessitent un compte (Epidemic Sound est un abonnement payant avec un essai ; ElevenLabs a un niveau gratuit avec un quota mensuel de caractères). Si l'humain n'en a pas, c'est lui qui s'inscrit : vous ne créez pas de comptes.
  • Coût : ElevenLabs facture au nombre de caractères ; un film de 40 à 60 secondes représente environ 600 à 1000 caractères, et chaque nouvelle génération est facturée à nouveau. Les téléchargements Epidemic sont déduits du forfait. Indiquez à l'humain le coût prévu et demandez son accord d'abord.
  • Connexion et paiement sont de la responsabilité de l'humain : passez la main au navigateur (task.handOff() dans ego-browser) pour la connexion, l'authentification à deux facteurs, les captchas et tout écran de paiement ; reprenez la main après qu'il a dit avoir terminé. Ne tapez jamais son mot de passe, n'entrez ni ne stockez jamais les informations de carte bancaire, ne collez jamais sa clé API dans une page ou un fichier.
  • Ce que vous pouvez faire après un accord : chercher/filtrer les morceaux selon l'ambiance et le BPM convenus et ouvrir des candidats pour qu'il les écoute (c'est lui qui choisit), cliquer sur Create a cut avec la durée cible et télécharger le résultat ; coller la prise elevenlabs.md, appliquer la voix et les réglages qu'il a choisis, générer une fois, télécharger le mp3.
  • Sans un tel outil, ou s'il refuse : donnez-lui les étapes exactes (documents des étapes 1 et 3) et attendez le fichier.

Les choix restent les siens : le morceau et la voix ne sont jamais choisis à sa place.

Règles de base (apprises à la dure)

  1. Tout ce qui est montré est réel. Maillages d'exemple réels (tesselez le CAO/STEP réel), code et API réels dans les panneaux de code, l'interface utilisateur reconstruite à partir des propres composants frontend du produit. Un contenu qui semble faux est la seule chose que les spectateurs remarquent. Si vous ne pouvez pas obtenir le vrai, dites-le et demandez — ne l'inventez pas.
  2. La musique est l'horloge. Mesurez le tempo réel (scripts/music_analyze.py l'ajuste ; un BPM estimé qui est à 1,2 % de décalage place une coupe à un tiers de temps de retard et l'humain entend un faux pas). Tous les temps vivent dans src/marks.ts ; les scènes les importent, ne codent jamais en dur les secondes.
  3. Confirmez les étapes tournées vers l'extérieur ou coûteuses : le fichier musical et la voix sont à choisir par l'humain ; vous ne les choisissez jamais à sa place. N'imprimez jamais les clés API ou les jetons de connexion qui apparaissent dans le produit que vous filmez.
  4. Vérifiez les images avec des images fixes, pas par foi : faites le rendu des images aux marques (temps forts, coupes, le logo) et regardez-les avant un rendu complet. Un rendu complet prend des minutes ; une image fixe prend des secondes.
  5. Conservez l'ancienne version. Lorsque l'humain demande une version raccourcie ou une variante, copiez le répertoire du projet et modifiez la copie (cp -R video video_court, lien symbolique node_modules).
  6. Rapportez en éditeur : ce qui a changé, le chemin du fichier, ce qu'il faut écouter/regarder et à quelle seconde.

Outils de cette compétence

Tous les scripts Python s'exécutent avec uv run (les dépendances sont déclarées dans chaque fichier ; rien à installer).

ScriptObjectif
scripts/music_analyze.py track.wav --out beats.jsonBPM réel (ajusté), grille temps/temps forts, sections, drop, silences
scripts/music_splice.py track.wav out.wav --beats beats.json --keep a:b --keep c:draccourcir un morceau par un saut aligné sur les temps forts avec fondu enchaîné ; vérifie la jonction
scripts/cut_ui.py take.mp3 --mode cuts --script elevenlabs.md --out vo/cuts.jsonpage de découpe dans le navigateur (forme d'onde, script affiché ligne par ligne, parole vs silences, zoom, annuler/rétablir) : l'humain joue et clique là où une ligne se termine, appuie sur Terminé, l'onglet se ferme et cuts.json arrive pour vous. --mode marks --beats beats.json marque le drop/coupure/pont de la musique sur la grille des temps forts
scripts/vo_cut.py take.mp3 --regions vo/cuts.json --out vo/découper une prise ElevenLabs en clips nivelés + clips.json (ou --lines N --ends t1,... si l'humain préfère taper les temps)
scripts/review_ui.py out/promo.mp4 --out review/review.json [--overlay overlay.json]page de révision dans le navigateur : moniteur en haut, bande de timeline en bas (filmstrip + forme d'onde du mix final + temps forts / marques / lignes voix optionnels). L'humain laisse des notes à un instant ou sur une plage ; chaque note porte l'image exacte ; ils terminent par Approuvé / Modifications nécessaires et review.json arrive pour vous
scripts/new_project.sh <dir> [--link-modules path]Projet Remotion depuis template/ (scène métal, horloge des temps forts, mix VO, caméra virtuelle)
template/tools/mesh.pyFormes STEP/OCC -> maillage compact + arêtes B-rep pour three.js
template/tools/refold.pyvider les énormes chaînes de métadonnées STEP que OCC ne peut pas lire
template/tools/variants.py, stages.pyvariantes de paramètres du maillage / chaque solide intermédiaire d'un carnet CAO (pour les scènes « glisser un curseur, le modèle suit » et « cellule par cellule »)

Nécessite : ffmpeg, node 20+, uv. Pour three.js dans Chrome sans tête : playwright's chrome-headless-shell (new_project.sh l'installe).

Skills associés