Communitygithub.com

Vidéo de lancement : une URL, un teaser de marque de 25 s

Transforme n'importe quelle URL en vidéo motion design de lancement ou de promo d'environ 25 secondes en 1920x1080, qui reprend le design du site : fond, couleurs, polices, logo, style d'interface et vrais textes, avec une musique procédurale libre de droits dans un style différent à chaque fois et des whooshs aux transitions. Rendu par code dans la sandbox Higgsfield, donc sans crédits de génération vidéo ou audio ; vertical 9:16 sur demande.

Qu'est-ce que Vidéo de lancement : une URL, un teaser de marque de 25 s ?

Recette Vidéo de lancement, étape 3 (le teaser instantané), par amitkushh/website-launch-video-skill. Requiert Claude Code, le connecteur Higgsfield (un compte gratuit suffit) et un outil navigateur. L'agent lit le site (texte, couleurs, polices, logo), construit les scènes depuis un template motion design, génère la musique de façon procédurale (6 styles, tonalité aléatoire) et produit <brand>_launch.mp4 en 30 i/s, H.264 + AAC. Gère les codes promo, le choix du style musical et le format vertical, et rappelle d'ajouter #ad pour une promotion payée.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add amitkushh/website-launch-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

Vidéo de lancement de site web

Répondre dans la langue de l'utilisateur. Le texte de la vidéo est en anglais sauf demande contraire. Sortie : <marque>_launch.mp4 dans le répertoire de travail (1920×1080, 30 ips, H.264 + AAC). Coût : aucun crédit de génération. Ne jamais appeler generate_video / generate_audio pour ce workflow — tout est rendu avec du code dans le sandbox Higgsfield.

Prérequis

  • Connecteur MCP Higgsfield (fournit sandbox_exec, media_upload, media_confirm, get_workflow_instructions).
  • Un outil navigateur (navigateur intégré ou Claude dans Chrome) pour lire le site.

Entrées à obtenir (demander uniquement si manquantes)

  • URL du site (obligatoire).
  • Optionnel : coupon / réduction, s'il s'agit du propre produit de l'utilisateur ou d'une promotion payante (promotion → rappeler d'ajouter #ad lors de la publication), style musical, version verticale 9:16.

Étape 1 – Lire le site

  • Accéder à l'URL, puis exécuter document.body.innerText en JS (attendre ~2s pour les SPA). Récupérer : H1, sous-titre, 4–6 titres de fonctionnalités, tarifs, texte d'offre/coupon, garantie/confiance, libellé CTA.
  • Prendre une capture d'écran et défiler 2 à 3 fois pour voir le style visuel (cartes, puces, sourcils, boutons, couleurs des mots d'accent).
  • Récupérer les styles calculés : fontFamily, color, backgroundColor, letterSpacing, fontWeight du body/h1/h2/bouton, ainsi qu'un compteur de fréquence de toutes les couleurs de fond et de texte.
  • Si la page s'affiche sans style (CSS bloqué), récupérer le CSS dans le sandbox à la place : curl -sL -A "Mozilla/5.0" URL -o index.html; grep -o '/_next/static/[^"]*\.css' index.html (ou tout <link rel=stylesheet>), les télécharger dans all.css, puis grep -oE -- '--(background|foreground|brand|primary|accent|muted|border|card|surface|ink)[a-z-]*:[^;}]*' all.css | sort -u et grep -o 'font-family:[^;}]*' all.css | sort -u.
  • Logo : <img> dans l'en-tête (ex. /logo.png) ou /android-chrome-512x512.png / /apple-touch-icon.png. Logos partenaires en SVG → convert -background none -density 1200 x.svg -resize 400x400 x.png.

Étape 2 – Tokens de design

Mapper le site aux tokens du template : BG, INK (titre), MUTED (gris du corps), BRAND (accent), BRAND_SOFT (teinte d'accent pour les puces), PANEL (fond de carte gris), WHITE (carte). Site sombre → fond sombre, INK clair, pas d'ombre douce. Reproduire les motifs du site : titres sur deux lignes avec l'accent sur la ligne 2 si le site le fait, puces/libellés en sourcil, boutons en pilule avec une flèche, panneau gris avec cartes blanches.

Étape 3 – Polices

Police statique TTF par graisse depuis fontsource (n'importe quelle police Google) : curl -sf -o font-800.ttf https://cdn.jsdelivr.net/fontsource/fonts/<slug-police>@latest/latin-800-normal.ttf (slug = minuscules, espaces→tirets, ex. bricolage-grotesque, urbanist). Utiliser via typography={{fontAssetId:handle.id}} après await p.add("font-800.ttf"). Le sous-ensemble latin ne contient pas les glyphes → ✓ ★ – utiliser icon("arrow-right") etc. Les familles intégrées (Inter, DM Sans, Montserrat…) peuvent utiliser higgsedit fonts add . Inter:400 Inter:700 + fontFamily.

Étape 4 – Scénariser la vidéo

Charger le workflow video-editing de Higgsfield une fois par session (get_workflow_instructions {workflow:"video-editing"}) avant tout travail Higgsedit. Partir de reference/template.jsx. Structure par défaut, ~25s :

#ScèneTempsContenu
1Accroche0–3.3le problème en 2 lignes, sourcil "Pour "
2Présentation3.3–7logo + marque, H1 du site, sous-titre, bouton CTA qui apparaît
3–6Fonctionnalités~3.7s chacunesourcil = libellé de section du site, titre = titre de fonctionnalité du site, une maquette UI native (cartes de statistiques avec compteurs, lignes avec étiquettes, grille de heatmap, liste de file d'attente, carte d'avis, pastilles de jours…)
7CTAdernières ~4.3slogo + domaine, carte de prix/offre, pastille de coupon + bouton, ligne de garantie

Règles :

  • Utiliser le contenu réel du site et des nombres d'exemple réels. Indiquer à l'utilisateur quelles valeurs de démonstration sont illustratives. Ne jamais inventer de nombres d'utilisateurs ou de témoignages.
  • Recréer l'UI de manière native (cadres/texte/icônes). Ne pas utiliser de captures d'écran basse résolution du site ni d'UI générée par IA.
  • Conserver les temps de début de scène – la musique en a besoin (cuts = début des scènes 2..7).

Étape 5 – Construction et prévisualisation dans le sandbox

Faits sur le sandbox : les fichiers disparaissent lors de sa réinitialisation (retélécharger les ressources si cd échoue) ; une commande ≤ 16 000 caractères (écrire les URL de téléchargement dans des fichiers lors d'un appel séparé du long cat > edit.jsx heredoc) ; longs rendus → background:true puis interroger.

  1. media_upload des sorties à l'avance (une prévisualisation sheet.png et le fichier .mp4 final) et sauvegarder chaque upload_url dans un .txt dans le sandbox. Les URL présignées sont à usage unique : une seconde requête PUT retourne 412 – en demander une nouvelle.
  2. Construction + contact sheet + téléchargement en un seul appel : higgsedit build edit.jsx 2>&1 | grep -iE "error|missing"; higgsedit sheet . --times <milieu de chaque scène + fin CTA> --cols 3 --out renders/sheet.png; curl -s -o /dev/null -w "%{http_code}" -X PUT -H "Content-Type: image/png" --upload-file renders/sheet.png "$(cat sheet_url.txt)"
  3. media_confirm, télécharger l'URL publique retournée localement et l'examiner. Corriger les problèmes de mise en page avant le rendu final.

Pièges d'Higgsedit :

  • padding est un nombre ou {left,right,top,bottom}, jamais un tableau.
  • Le token motion={{by:"word"|"character"}} sur du texte centré provoque un refoulement (le texte saute depuis la gauche). Utiliser animate={pop} pour le texte centré ; motion de token uniquement pour le texte "tapé" aligné à gauche.
  • Une target de timeline doit être un cadre enfant nommé immédiat, pas soi-même – animer soi-même avec des keyframes animate (delayPop).
  • Compteurs : cadre layout="none" de taille fixe avec un texte statique ; pas de séparateurs de milliers.
  • animate est toujours un tableau ; la motion d'un cadre est un objet.

Étape 6 – Rendu

higgsedit render . --out renders/promo.mp4 --quality final (≈1 min pour 25s).

Étape 7 – Musique (différente à chaque fois)

scripts/music.py = musique procédurale numpy, libre de droits. Styles : pop (120 bpm entraînant), lofi (82 bpm chill jazz), synthwave (105 bpm rétro), house (124 bpm contretemps), cinematic (90 bpm épique), marimba (110 bpm amical). Chaque piste : un whoosh avant chaque coupe, un impact sur le CTA, un fondu de 1,6 s.

Choisir le style – ne jamais répéter les deux derniers :

  1. Lire music-history.log dans le dossier de cette compétence (le créer s'il manque).
  2. Adapter l'ambiance : dev/AI/tech → synthwave ou house ; créateur/rédaction/productivité → lofi ou marimba ; lancement important/premium → cinématique ; consommateur/ludique → pop. Ignorer les styles utilisés dans les 2 dernières entrées sauf si l'utilisateur en demande un.
  3. --seed aléatoire → tonalité et progression aléatoires, de sorte que même le même style sonne différemment.
  4. Ajouter YYYY-MM-DD <site> <style> seed=<n> à music-history.log.

Pour obtenir music.py dans le sandbox (première exécution) : media_upload avec le nom music.py → depuis la machine locale curl -X PUT -H "Content-Type: application/octet-stream" --data-binary @scripts/music.py '<upload_url>' → media_confirm type:file → sauvegarder l'URL publique retournée dans music_url.txt dans le dossier de cette compétence. Exécutions ultérieures : curl -sf -o music.py "$(cat music_url.txt)" dans le sandbox (retélécharger si 404 ou music.py a changé).

Mixage :

python3 music.py --style <style> --duration <durée vidéo en s> --cuts <c2,c3,...,c7> --seed <n> --out music.wav
ffmpeg -y -v error -i renders/promo.mp4 -i music.wav -filter:a "loudnorm=I=-15:TP=-1.5:LRA=11" -c:v copy -c:a aac -b:a 192k -map 0:v -map 1:a -shortest final.mp4

Durée : ffprobe -v error -show_entries format=duration -of csv=p=0 renders/promo.mp4.

Étape 8 – Livraison

Télécharger final.mp4 (nouvelle URL) → media_confirm type:video → le télécharger localement sous <marque>_launch.mp4 → remettre le fichier à l'utilisateur. Rapporter : ce qui correspond au site (fond/couleurs/police/logo), la liste des scènes, le style musical, les valeurs illustratives. Proposer une version 9:16 ou un style musical différent.

Variante 9:16

size: "1080x1920", W=1080 / H=1920, empiler les lignes verticalement (cartes en colonne), tailles de titres ×0.75, mêmes tempos et musique.

Skills associés