agentsclimarketplace

Skill

Skill Hectelion-SA/claude-design-video-render/skill

Transforme un export "vidéo" Claude Design (animation HTML/React) en vrai fichier MP4. Pipeline Puppeteer (rendu image par image via window.__seek + capture de l'élément [data-capture-canvas]) puis encodage ffmpeg H.264. Utiliser quand l'utilisateur dit "monte la vidéo", "rends la promo en MP4", "exporte la vidéo Claude Design", "fais-en une vraie vidéo", tape "/design-video-render", ou fournit un dossier d'export Claude Design contenant un Promo.jsx / promo.html à filmer.From its SKILL.md

Install
npx -y skills add Hectelion-SA/claude-design-video-render --skill skill

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

4.7 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it

design-video-render — Claude Design → MP4

Les "vidéos" produites par Claude Design sont des animations HTML/React, pas des fichiers vidéo. Ce skill les rend hors-ligne et les encode en MP4 déterministe (frame-accurate), sans la barre de lecture ni le letterboxing.

Quand utiliser ce skill

Déclencher quand l'utilisateur demande de :

  • Transformer un export Claude Design en vrai .mp4
  • "Monter la vidéo", "rendre la promo en MP4", "exporter la vidéo Claude Design"
  • Filmer un dossier d'export contenant un Promo.jsx (carré) ou un promo.html modulaire (vertical)

Vue d'ensemble du pipeline

  1. build.js — patche la source React et génère un render.html autonome qui :
    • tag le canevas de capture avec data-capture-canvas (on screenshote exactement cet élément, taille pixel exacte) ;
    • expose window.__seek(t) (un React.useEffect injecté dans le Stage) pour piloter l'animation image par image.
  2. render.js — Puppeteer/Chromium charge render.html, attend window.__seek + les polices (document.fonts.ready), puis pour chaque frame appelle __seek(t), attend 2× requestAnimationFrame, et screenshote [data-capture-canvas]. 30 fps. Sort des PNG dans _render/frames/.
  3. encode.jsffmpeg-static assemble les PNG : -c:v libx264 -pix_fmt yuv420p -crf 18 -movflags +faststart.

Procédure

  1. Repérer le dossier d'export Claude Design (racine contenant le _ds/<id>/styles.css et la source du composant).
  2. Copier le dossier scripts/ de ce skill dans la racine de l'export, en le renommant _render/.
  3. Régler le bloc CONFIG de chaque script selon l'export (voir ci-dessous).
  4. Installer et lancer, depuis la racine de l'export :
    cd _render && npm install
    cd .. && node _render/build.js && node _render/render.js && node _render/encode.js
    
    node_modules peut être supprimé par le ménage de Downloads → réinstaller (npm i). Chromium reste en cache ~/.cache/puppeteer, donc la réinstallation est rapide.

Deux formats d'export rencontrés (toujours vérifier lequel)

Nouveau (à plat, carré — juin 2026+) — c'est ce que les scripts gèrent par défaut

  • Loader *.dc.html (système <x-dc> / <x-import> via support.js), mais le composant Promo.jsx est AUTONOME (moteur + scènes, expose window.VideoRoot).
  • Format 1080×1080. DUR / width / height définis dans Promo.jsx. Icônes/SVG inline → ni animations.jsx ni support.js nécessaires.
  • CONFIG : build.jsSOURCE='Promo.jsx', ROOT_GLOBAL='VideoRoot' ; render.jsW=1080,H=1080, TOTAL = la valeur DUR.

Ancien (modulaire, vertical)

  • Dossier video/ avec promo.html modulaire + jsx séparés (icons.js, animations.jsx, promo-parts.jsx, promo-scenes.jsx). Format 1080×1920. TOTAL dans promo.html.
  • L'ordre des <script type="text/babel"> casse hors-ligne (window.HEC undefined) → précompiler chaque .jsx avec @babel/standalone, chaque fichier dans sa propre IIFE (sinon collision const Stage), puis assembler en un seul render.html à scripts ordonnés. Le composant Seeker (qui expose __seek) est déjà présent dans cet export.
  • CONFIG : render.jsW=1080,H=1920, TOTAL = la valeur dans promo.html. build.js doit être adapté à l'assemblage multi-fichiers (cette variante n'est pas couverte telle quelle par le build.js par défaut).

Pièges connus

  • Ne pas utiliser le *(vertical).html autonome : ses polices/assets pointent vers des IDs opaques résolus uniquement par claude.ai → ne rend pas hors claude.ai. Toujours partir de la source modulaire / du Promo.jsx.
  • Viewport = format + 120 px (la barre de lecture fait 44 px) pour forcer scale = 1 du Stage et un rendu 1:1.
  • Capturer l'élément [data-capture-canvas], pas la page entière.
  • Règle de marque Hectelion : pas d'em-dash. Le texte source de la promo peut contenir un em-dash ("Europe de l'Ouest — une expertise…") → le corriger dans la source avant le rebuild si la règle s'applique.

Référence

Voir README.md pour les commandes npm. Scripts : scripts/build.js, scripts/render.js, scripts/encode.js.

What ships with it: 4 files

7.7 KB alongside SKILL.md, 3 of them executable

scripts/

Keep looking

Skills are one crate of 326,499. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.