Communitygithub.com

Hakam02-doom/music-promo-video

Créez une vidéo promo verticale soignée pour une application musicale, un artiste, un album, une playlist ou une chanson (style publicité Spotify, reel, montage TikTok/Instagram). Elle commence par demander 3 à 4 références de style, puis assemble la vidéo en code à partir du logo, des captures d'écran, des chansons, des effets sonores et des clips vidéo de l'utilisateur.

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

Cette compétence génère une vidéo promotionnelle verticale haut de gamme (1080×1920) pour des projets musicaux, à partir dequelques assets fournis par l'utilisateur. Elle suit un processus rigoureux : analyse de 3 à 4 références visuelles pour définir le style, sourcing automatique de pochettes haute résolution, analyse du tempo et des battements des morceaux, et planification d'un montage rythmé sur la grille des battements. Le pipeline inclut des animations de typographie cinétique, des transitions fluides (zooms, cuts matchés, traversées), des effets de particules, et des exports en 60 ou 120 fps. La sortie est une vidéo MP4 prête à poster, avec un lot de fichiers modifiables (code, mix audio, provenances des assets). Fonctionne sur des environnements avec ffmpeg et Python. Idéal pour réaliser des publicités, des reels ou des montages promotionnels sans outils vidéo traditionnels.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Hakam02-doom/music-promo-video/tree/HEAD

Demander à votre IA préférée

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

Documentation

Vidéo promotionnelle musicale

Réalisez une vidéo promotionnelle verticale (par défaut 1080×1920) qui ressemble à une pièce premium continue. Un logo l'ouvre. Les pages d'application, les pochettes et les lecteurs s'enchaînent par des mouvements de caméra fluides. Les chansons jouent sous l'image en suivant le rythme. Une carte de fin assortie la ferme, pour que la vidéo boucle.

Cette compétence intègre un workflow affiné par de nombreux retours d'utilisateurs réels. Les règles dans references/direction.md sont ces retours, transformés en principes. Lisez-les avant de concevoir quoi que ce soit : ils font la différence entre "joli" et "c'est exactement ce que je voulais".

0. Collecte : demander d'abord les références

Avant de planifier ou de construire quoi que ce soit, demandez à l'utilisateur 3 à 4 références qui doivent guider le résultat. Les références déterminent l'apparence, donc la vidéo en dépend. Demandez en un seul message amical, avec la liste des assets ci-dessous, pour que l'utilisateur réponde une fois.

Demandez :

  • 3 à 4 références : vidéos (idéal : elles portent le mouvement et le rythme), reels, images ou liens vers celles-ci. Pour chacune, demandez ce qui plaît : le look, la couleur, la typographie, les transitions, le rythme, le son. Si l'utilisateur ne fournit que des liens que vous ne pouvez pas ouvrir (Instagram, Pinterest, TikTok), demandez le fichier téléchargé ou des captures d'écran. Ne prétendez jamais avoir regardé quelque chose que vous n'avez pas pu ouvrir.
  • S'il en envoie moins de 3, demandez une fois de plus et expliquez que plus de références donnent un résultat plus proche. S'il ne peut toujours pas, continuez avec ce que vous avez et dites quels choix vous avez faits vous-même.
  • S'il en envoie plus de 4, demandez lesquelles sont les plus importantes, ou pondérez les premières.

Liste des assets (demandez dans le même message, et acceptez "vous choisissez" pour tout) :

  1. Logo (PNG avec transparence de préférence).
  2. Captures d'écran de l'application (écran d'accueil, bibliothèque, maintenant en lecture), qui montrent ce qui est réel.
  3. Chansons : les fichiers audio ainsi que les heures de début et de fin du refrain pour chacune (les utilisateurs connaissent leur refrain ; ne le devinez pas à partir des paroles).
  4. Pack d'effets sonores (optionnel).
  5. Fichiers vidéo de clips officiels (optionnel, pour des clips synchronisés).
  6. Format, durée visée, fréquence d'images (par défaut 1080×1920, 60 ips), et où sera-t-elle postée.

Ensuite, étudiez correctement les références (voir references/references-analysis.md) : planches contact et séquences d'images denses pour le mouvement. Rédigez un brief de référence court : palette, rôles typographiques, rythme (coupes par temps), types de transitions, texture (grain, bloom, papier ou rien), comment le texte et les images interagissent, et le caractère sonore. Montrez le brief à l'utilisateur en quelques lignes avec votre plan, puis construisez sans attendre plus d'approbation sauf si quelque chose vous bloque.

Lorsque les références entrent en conflit avec une règle de references/direction.md, suivez d'abord les mots explicites de l'utilisateur, puis les références, puis les valeurs par défaut.

1. Vérifier l'environnement

Vous avez besoin de ffmpeg et de Python avec numpy, pillow, opencv-python-headless et scipy (faites un venv dans le dossier de travail). Les polices sont les polices système ; vérifiez que chacun des trois rôles typographiques est résolu. Si une capacité essentielle manque, dites exactement quoi et arrêtez l'étape dépendante ; ne présentez pas un plan comme une vidéo finie.

2. Sources et vérification des assets

  • Pochette : n'utilisez jamais de recadrages de captures d'écran comme pochette visible. Ils sont trop flous, et les utilisateurs le remarquent. Trouvez l'œuvre officielle en ligne avec scripts/find_cover.py, qui recherche sur Apple/iTunes (jusqu'à 3000 px) et JioSaavn et compare chaque candidate au recadrage de la capture. N'acceptez que des correspondances d'environ 0,98 ou plus, et enregistrez la provenance (URL source, titre, artiste, score de correspondance) dans covers/provenance.json. Si rien ne correspond (par exemple, mixes ou radios générés par Spotify), redessinez une version vectorielle nette lorsqu'il s'agit d'un design simple (Liked Songs), ou laissez cet élément de côté.
  • Chansons : copiez-les, puis exécutez scripts/beat_grid.py sur chacune : tempo, downbeats, énergie par demi-seconde, et le plus grand saut d'énergie (le drop). Demandez les temps de refrain à l'utilisateur plutôt que de les déduire d'une transcription.
  • Clip vidéo : scripts/av_sync.py donne le décalage entre l'audio de la vidéo et le fichier de la chanson, pour que l'image et la chanson restent synchronisées. scripts/shot_cuts.py trouve les coupes de la vidéo elle-même, afin que le recadrage puisse suivre le sujet par plan.
  • Effets sonores : caractérisez chaque fichier (durée, position du pic, luminosité), donnez-lui un rôle (tap/click, whoosh, riser, pop, chime, rumble, spécial), et notez le décalage du pic de chaque fichier pour que les repères tombent sur le pic.

3. Planifier la timeline sur la grille des battements

  • Traitez le temps film comme le temps de la chanson pendant qu'une chanson joue (temps film = temps chanson + décalage). Placez les changements de scène sur les downbeats, et les pops et les pas de stop-motion sur les temps ou les croches.
  • Arc typique, adaptez-le au brief : ouverture logo → bibliothèque ou page d'application → carrousel d'albums → maintenant en lecture (barre de progression en direct) → moment du drop (gros mots cinétiques) → mur de pochettes → transition vers la chanson suivante avec sa propre animation de pochette → son lecteur → section clip vidéo optionnelle → finale de particules dans le logo → carte de fin assortie à l'ouverture.
  • Chaque changement entre les scènes doit être un mouvement continu : un zoom sur un élément qui devient la scène suivante, un cut matché (la même image au même endroit des deux côtés), ou un vol à travers une zone sombre. Listez le mécanisme de chaque transition dans le plan.
  • Règles de texte : aucun mot ne repose jamais sur une œuvre d'art, et aucun mot n'est laissé caché derrière un logo ou une pochette. Les mots glissent depuis le bord d'un objet, ou montent à travers une ligne de masque, puis restent entièrement visibles. Les titres qui surplombent un contenu défilant appartiennent à ce contenu (coordonnées mondiales), donc les tuiles ne les couvrent jamais.

Voir references/direction.md pour l'ensemble complet des règles visuelles et pourquoi chacune existe.

4. Construction

Partez de l'exemple travaillé dans assets/reference_project/ : render.py (moteur d'image plus une timeline complète de 58 s), audio.py (mix) et style.json. Il contient déjà des blocs de construction testés :

  • composition avec préfiltrage de flou, ombres douces et clipping ;
  • grain de film et bloom par image ;
  • la classe Text à trois rôles (sans, serif italique, mono) avec entrées adoucies, entrées stop-motion et sorties dérivantes ;
  • révélations de mots par ligne de masque et glissement depuis derrière ;
  • ondulations de tap avec effet de pression ; une interface utilisateur de lecteur vectoriel avec barre de progression en direct et tap cœur ; la carte de fin en anneau de répétition ;
  • le système de particules diamant (assembler une pochette pièce par pièce ; la soulever dans le logo) ;
  • lecture de clip vidéo avec mélange d'images et recadrages par plan ;
  • les outils de sweep de filtre, d'enveloppe et de repère SFX.

Conservez le moteur ; remplacez la timeline et le contenu par ceux du nouveau projet. Lisez references/engine-notes.md pour l'architecture et les pièges déjà résolus.

Travaillez dans cet ordre :

  1. Tests de texte et de mise en page : générez 10 à 20 images fixes sur la timeline, faites une planche contact, regardez-la, et corrigez les problèmes de mise en page avant tout rendu long.
  2. Le mix (audio.py) : il est rapide, donc mesurez les niveaux par seconde et autour de chaque transition (references/audio.md).
  3. Un rendu complet en arrière-plan (60 ips prend environ 10 minutes pour 60 s sur un portable ; 120 ips environ 25). Ne scrutez pas ; attendez la notification de fin.

5. QA de l'export réel

Exécutez scripts/motion_qa.py sur le MP4 final. Il signale les sauts d'image à image, les pas de stop-motion, les images figées et les images anormalement sombres. Pour chaque pic qui n'est pas un pas intentionnel ou une coupe de clip vidéo, extrayez les images consécutives autour et regardez-les. Ensuite vérifiez :

  • durée, ips, nombre d'images et décodage complet ;
  • volume sonore (−11 à −14 LUFS intégré, crête environ −1 dBFS, pas de distorsion) ;
  • niveaux par seconde et niveaux de transition ;
  • les deux côtés de chaque transition ;
  • lisibilité du texte à taille de téléphone.

Rapportez honnêtement : vous pouvez mesurer l'audio mais pas l'écouter. Dites-le, et demandez à l'utilisateur de vérifier à l'oreille.

Pour les petites corrections, ne re-rendez que la plage temporelle affectée (render.py --range a,b) et épissez-la dans le rendu maître avec des coupes exactes à l'image. Re-muxez et revérifiez les jonctions. Voir references/qa-and-delivery.md.

6. Livrer tôt et itérer

  • Envoyez un MP4 lisible dès qu'une version est terminée, même au milieu d'un changement plus long. Les utilisateurs demandent souvent "c'est fini ?" et veulent regarder pendant que vous continuez.
  • Chaque tour : relisez attentivement les mots de l'utilisateur. Ils tapent souvent rapidement et s'arrêtent au milieu d'une phrase. Appliquez exactement ce qu'ils ont demandé, gardez tout le reste identique à l'image, et dites ce qui a changé. Si un message est interrompu, faites la partie claire et demandez le reste.
  • Conservez les versions précédentes (archive_vN/), et nommez les livrables avec la version et les ips.

Livrables à chaque tour :

  • MP4 principal (60 ips pour publication ; 120 ips seulement sur demande, et expliquez que les plateformes sociales jouent au maximum à 60 ips) ;
  • la même vidéo avec effets sonores seulement, sans les chansons (pour publication avec musique sous licence de la plateforme) ;
  • un projet zip éditable : code, paramètres de style, pochettes avec provenance, images utilisées de la vidéo, effets sonores utilisés, les WAV du mix et un README avec la timeline ;
  • une courte note sur ce qui a changé, ce qui a été vérifié et ce qui ne l'a pas été, plus un rappel que les chansons, les pochettes et les clips vidéo sont protégés par le droit d'auteur : parfaits pour les montages personnels, mais les plateformes peuvent couper le son ou réclamer les publications publiques.

Fichiers de référence

  • references/direction.md : les règles visuelles et éditoriales tirées des retours utilisateurs. Lisez avant de concevoir.
  • references/references-analysis.md : comment étudier les 3 à 4 références de l'utilisateur et rédiger le brief.
  • references/audio.md : enveloppes des chansons (faible à fort, fort à faible), transitions synchronisées sur le rythme, placement des SFX, volume sonore.
  • references/engine-notes.md : architecture du moteur de référence, et pièges déjà résolus.
  • references/qa-and-delivery.md : vérifications, re-rendu partiel et épissage, encodage, empaquetage.
  • scripts/ : beat_grid.py, find_cover.py, av_sync.py, shot_cuts.py, motion_qa.py (exécutez chacun avec -h pour l'utilisation).
  • assets/reference_project/ : l'exemple complet travaillé (promo Spotify, "Raw Rich Rare" dans "National Treasures" de Drake).

Skills associés