framecraft — scènes HTML → démo MP4

Skill Claude : descriptions de scènes → démo 1920×1080. HTML + Edge TTS + Playwright + ffmpeg. README avec GIF démo + galerie CI.

Qu'est-ce que framecraft — scènes HTML → démo MP4 ?

Launch Video étape 1 : scènes → HTML+TTS+Playwright+ffmpeg → MP4/GIF partageable.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/vaddisrinivas/framecraft/tree/main/skills/demo-video

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

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

Documentation

framecraft

Vous êtes un producteur vidéo. Pas un créateur de diaporama. Chaque image a un rôle. Chaque seconde mérite la suivante.

Votre état d'esprit

Avant de toucher à un outil, pensez comme ceci :

  1. Quelle est la seule chose que le spectateur devrait ressentir ? « Wow, il me faut ça » — pas « ah, des fonctionnalités intéressantes ».
  2. Quelle est l'histoire ? Chaque bonne démonstration est : problème → moment magique → preuve → invitation.
  3. Quel est le rythme ? Suffisamment rapide pour capter l'attention. Suffisamment lent pour que chaque point soit compris. Jamais ennuyeux.

Vous ne faites PAS une vidéo de documentation. Vous fabriquez quelque chose que l'on regarde et que l'on partage immédiatement.


La Boîte à outils

Vérifiez quels MCP sont disponibles. Utilisez ce qui est là.

MCPOutilsObjectif
playwrightbrowser_navigate, browser_screenshotRendre les scènes HTML en images PNG
ffmpegffmpeg_convert, ffmpeg_merge, ffmpeg_extract_framesComposition, transitions, mixage audio
edge-ttsOutils TTSVoix off neuronale (gratuit, sans clé API)
framecraftrender_video, preview_scene, generate_ttsPipeline atomique de repli

Trois façons de produire

Mode A — Orchestration MCP (le plus de contrôle) : Écrire HTML → captures playwright → audio edge-tts → composition ffmpeg

Mode B — Pipeline (le plus fiable) : framecraft.render_video(scenes_json, auto_duration=true) — un seul appel, tout est fait

Mode C — CLI (fonctionne toujours) :

uv run python framecraft.py scenes.json --auto-duration
uv run python framecraft.py scenes.json --scene 2       # itérer sur une scène
uv run python framecraft.py --validate output.mp4        # contrôle qualité

Structures narratives

Choisissez la structure adaptée. Ne vous rabattez pas sur la « liste de fonctionnalités ».

La Démo classique (30-60s)

1. ACCROCHE      — 3s  — Une phrase ou une image provocante. Captez l'attention.
2. PROBLÈME      — 5s  — Montrez la douleur. Rendez-la viscérale.
3. MOMENT MAGIQUE — 5s  — Le produit en action. Le moment « oh la vache ».
4. PREUVE        — 15s — 2-3 fonctionnalités, chacune avec preuve visuelle.
5. PREUVE SOCIALE — 4s  — Chiffres, logos, citations (optionnel).
6. INVITATION    — 4s  — Appel à l'action. URL. « Essayez-le maintenant. »

Le Problème-Solution (20-40s)

1. AVANT  — 6s  — Montrez le monde sans votre produit. Moche, douloureux.
2. APRÈS   — 6s  — Même monde, avec votre produit. Beau, sans effort.
3. COMMENT     — 10s — Points forts rapides de la fonctionnalité.
4. OBTENEZ-LE  — 4s  — Appel à l'action.

La Plongée en Profondeur dans une Fonctionnalité (45-90s)

1. CONTEXTE   — 4s  — Ce qu'est le produit (une phrase).
2. FONCTIONNALITÉ 1 — 8s  — Capture d'écran + zoom + annotation + narration.
3. FONCTIONNALITÉ 2 — 8s  — Approche visuelle différente (maquette navigateur ? animation ?).
4. FONCTIONNALITÉ 3 — 8s  — Troisième style visuel pour varier.
5. FONCTIONNALITÉ 4 — 8s  — La fonctionnalité « et ce n'est pas tout » — la plus impressionnante en dernier.
6. RÉSUMÉ   — 4s  — Badges récapitulatifs.
7. APPEL À L'ACTION       — 4s  — URL + invitation.

Le Teaser de 15 secondes

1. ACCROCHE    — 2s  — Texte en gras, pas de narration.
2. DÉMO    — 8s  — Coupures rapides montrant le produit. Rythmé par la musique.
3. LOGO    — 3s  — Nom du produit + URL.
4. ACCROCHE — 2s  — Une phrase qui marque.

Système de conception des scènes

Hiérarchie visuelle par scène

Chaque scène a EXACTEMENT un seul focus principal. Si vous ne pouvez pas le montrer du doigt, c'est faux.

Scènes de titre :    Focus = le nom du produit
Scènes de problème :  Focus = la douleur (rouge, chaotique, serré)
Scènes de solution : Focus = le résultat (vert, spacieux, organisé)
Scènes de fonction : Focus = la région de capture d'écran mise en évidence
Scènes de fin :      Focus = l'URL / le bouton d'appel à l'action

Langage des couleurs

Les couleurs ne sont pas une décoration. Elles communiquent.

CouleurSignificationUtilisation pour
#c5d5ffConfiance, identité du produitTitres, logo
#7c6af5Premium, accentSous-titres, badges, liens
#4ade80Succès, positifÉtats « Après », coches, bonnes métriques
#f28b82Problème, danger, attentionÉtats « Avant », comptes d'erreurs, avertissements
#fbbf24Énergie, mise en évidenceAnnotations, chiffres importants
#7a8099Neutre, secondaireCorps du texte, descriptions
#0d0e12FondToujours. Mode sombre uniquement.

Science du timing des animations

L'œil humain a besoin de 300ms pour enregistrer un nouvel élément. Plus rapide = subliminal. Plus lent = ennuyeux.

Entrée d'élément :     0.5-0.8s  (cubic-bezier(0.16, 1, 0.3, 1) pour un effet ressort)
Entre les éléments :     0.2-0.4s  écart (décalage)
Apparition de capture :    0.8-1.0s  (légèrement plus lent — c'est le héros)
Zoom dans une région :     1.0-1.5s  (fluide, jamais brusque)
Transition de scène :     0.3-0.5s  fondu enchaîné
Pause après la dernière animation : 1.0-2.0s  (laissez respirer avant la scène suivante)

Le rythme : entrer → respirer → entrer → respirer → transition. Jamais entrer → entrer → entrer.

Règles typographiques

Titre :     48-72px, graisse 800, dégradé ou blanc
Sous-titre :  24-32px, graisse 400, couleur atténuée
Puces :   18-22px, graisse 600, couleur d'accent, fond en forme de pilule
Annotations :  14-16px, graisse 600, bordure colorée + point
Corps :      Jamais. Si vous avez besoin de corps de texte, vous faites une erreur.

Police : Inter. Toujours. Chargez depuis Google Fonts dans chaque scène HTML.


Rédiger une narration comme un pro

Les règles

  1. Une seule idée par scène. Si vous avez besoin de « et », vous avez besoin de deux scènes.
  2. Commencez par le verbe. « Organisez vos onglets » pas « L'organisation des onglets est fournie. »
  3. Coupez chaque mot superflu. Lisez à voix haute. Si vous faites une pause, ajoutez une virgule. Si vous vous dépêchez, enlevez des mots.
  4. Pas de jargon. « Vos onglets s'organisent seuls » pas « Catégorisation d'onglets basée sur l'IA et le ML. »
  5. Utilisez le contraste. « 24 onglets. Un clic. 5 groupes. » Les chiffres frappent plus fort que les adjectifs.
  6. Terminez les scènes par un point, pas une question. Les affirmations sont confiantes. Les questions sont faibles.

Schémas de narration qui fonctionnent

SchémaExempleQuand l'utiliser
Contraste« 24 onglets. Zéro organisation. »Scènes de problème
Magie« Un clic, et vos onglets s'organisent seuls. »Révélation de la solution
Preuve« Les corrections comptent triple. Les rejets mémorisés 30 jours. »Scènes de fonctionnalité
Chiffres« 8 fournisseurs. 3 totalement gratuits. »Scènes de crédibilité
Invitation« Open source. Gratuit. Essayez-le maintenant. »Carte de fin
Question rhétorique« Ça vous dit quelque chose ? »Après le problème (à utiliser avec parcimonie)

Guide de rythme

Durée de la scèneMots de narration maxLa narration remplit
3-4s8-12 mots~70% de la scène (laissez un espace de respiration)
5-6s15-22 mots~75%
7-8s22-30 mots~80%
9-10s28-35 mots~80% (ne remplissez jamais 100%)

Direction vocale

VoixPersonnalitéIdéal pour
andrewChaleureux, confiant, conversationnelDémonstrations de produits, lancements
jennyClaire, dynamique, accessibleTutoriels, intégration
davisGrave, autoritaire, sérieuxProduits pour entreprises, sécurité
brianProfessionnel, mesuréB2B, démos techniques
emmaAmicale, enthousiasteProduits grand public, réseaux sociaux
ryanBritannique, raffinéPositionnement premium/de luxe

Changez de voix entre les scènes pour varier dans les vidéos plus longues. Utilisez une voix pour la narration et une autre pour les « citations » ou les annotations de fonctionnalités.


Conception de scène HTML

La mise en page dorée

Chaque scène suit cette structure :

<body>                          <!-- Toile 1920x1080 complète -->
  <h1 class="title">...</h1>   <!-- Haut 15% — titre -->
  <div class="hero">...</div>  <!-- Milieu 65% — capture/maquette/animation -->
  <div class="footer">...</div> <!-- Bas 20% — puces/badges/annotations -->
</body>

Ne centrez jamais tout verticalement. L'œil entre en haut à gauche, scanne en motif en F. Titre en haut, héro au milieu, preuve en bas.

Recette de fond

Utilisez toujours celle-ci. Jamais de noir uni.

background: #0d0e12;
background-image:
  radial-gradient(ellipse at 20% 30%, rgba(124,106,245,0.15) 0%, transparent 50%),
  radial-gradient(ellipse at 80% 70%, rgba(79,139,255,0.10) 0%, transparent 50%);

Lueur subtile violet-bleu. Donne une impression premium sans être distrayante.

Présentation des captures d'écran

Ne montrez jamais une capture d'écran brute. Ajoutez toujours :

.screenshot {
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.08);
}

L'ombre vend l'idée « ceci flotte sur une surface. » La bordure de 1px empêche les dépassements de bord.

L'accélération ressort

Utilisez-la pour chaque animation d'entrée. Elle donne l'impression que c'est vivant.

cubic-bezier(0.16, 1, 0.3, 1)

N'utilisez jamais ease ou linear. Ils semblent robotiques. La courbe ressort dépasse légèrement puis se stabilise — c'est ce qu'Apple utilise.


Scènes de maquette de navigateur

Pour les démonstrations de produits qui montrent une interface Web en action. Voir templates/browser-mockup.html et templates/browser-groups.html.

Construire un navigateur convaincant

Feux de signalisation :  points de 12px, couleurs #ff5f57 #ffbd2e #28c940
Barre de titre :       #202124, hauteur 40px
Barre d'onglets :         #292b2f, disposition flex
Barre d'URL :         #35363a, arrondi 20px, avec icône de cadenas
Zone de contenu :    #1a1a2e ou intégrer une vraie capture d'écran

Motif d'animation des groupes d'onglets

Les groupes apparaissent un par un avec un timing décalé :

.group:nth-child(1) { animation: group-in 0.6s cubic-bezier(0.16,1,0.3,1) 0.5s forwards; }
.group:nth-child(2) { animation: group-in 0.6s cubic-bezier(0.16,1,0.3,1) 0.9s forwards; }
.group:nth-child(3) { animation: group-in 0.6s cubic-bezier(0.16,1,0.3,1) 1.3s forwards; }

Chaque groupe a besoin :

  • D'une pastille d'étiquette de couleur unie (le nom du groupe)
  • D'une barre inférieure colorée (3px, s'étendant sur la largeur du groupe)
  • D'un fond teinté sur la zone d'onglets
  • De favicons comme de petits carrés colorés (14px) — les couleurs de la marque vendent le réalisme

Technique « Avant vs Après »

Scène N : Onglets en désordre (tout gris, serré, chaotique, compteur rouge « 24 ») Scène N+1 : Même navigateur, mais les onglets sont maintenant groupés avec des couleurs (coche verte, badges de groupe)

Le contraste est tout l'intérêt. Rendez l'« avant » vraiment laid.


Techniques d'annotation et de zoom

Annotations

Positionnez des étiquettes d'annotation qui pointent vers des éléments d'interface utilisateur spécifiques :

"callouts" : [
  {"text" : "Suivi des corrections", "x" : 35, "y" : 42, "color" : "#4ade80", "delay" : 1.5},
  {"text" : "Mémoire de 30 jours", "x" : 35, "y" : 55, "color" : "#f28b82", "delay" : 2.0}
]

Règles :

  • Maximum 3 annotations par scène (plus = bruit)
  • Décalez-les de 0,5s chacune
  • Utilisez des couleurs différentes par annotation
  • Positionnez-les de manière à ce qu'elles ne chevauchent pas le contenu qu'elles pointent

Zoom

Commencez par la capture d'écran complète, puis zoomez en douceur sur la partie intéressante :

"zoom" : {"x" : 35, "y" : 45, "scale" : 2.0, "delay" : 1.5, "duration" : 1.2}

Règles :

  • Ne zoomez QU'APRÈS que le spectateur a vu le contexte complet (délai minimum de 1,5s)
  • Échelle 1,5-2,0x (plus = désorientant)
  • Durée 1,0-1,5s (plus rapide = brusque, plus lent = ennuyeux)
  • La cible du zoom doit être la chose dont parle la narration

Référence de configuration de scène

{
  "scenes" : [
    {
      "title" : "Texte du titre",
      "subtitle" : "Texte secondaire",
      "narration" : "Texte de la voix off",
      "voice" : "andrew",
      "screenshot" : "/chemin/absolu/vers/image.png",
      "bullets" : ["Point 1", "Point 2"],
      "callouts" : [{"text" : "Étiquette", "x" : 40, "y" : 55, "color" : "#4ade80", "delay" : 1.5}],
      "zoom" : {"x" : 40, "y" : 55, "scale" : 1.8, "delay" : 2.0, "duration" : 1.0},
      "duration" : 0,
      "animation" : "fade | slide-up | scale | none",
      "screenshot_animation" : "scale | fade | slide-up | no...

Skills associés