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
npx -y skills add Hectelion-SA/claude-design-video-render --skill skillAssembled 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 unpromo.htmlmodulaire (vertical)
Vue d'ensemble du pipeline
build.js— patche la source React et génère unrender.htmlautonome qui :- tag le canevas de capture avec
data-capture-canvas(on screenshote exactement cet élément, taille pixel exacte) ; - expose
window.__seek(t)(unReact.useEffectinjecté dans le Stage) pour piloter l'animation image par image.
- tag le canevas de capture avec
render.js— Puppeteer/Chromium chargerender.html, attendwindow.__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/.encode.js—ffmpeg-staticassemble les PNG :-c:v libx264 -pix_fmt yuv420p -crf 18 -movflags +faststart.
Procédure
- Repérer le dossier d'export Claude Design (racine contenant le
_ds/<id>/styles.csset la source du composant). - Copier le dossier
scripts/de ce skill dans la racine de l'export, en le renommant_render/. - Régler le bloc CONFIG de chaque script selon l'export (voir ci-dessous).
- 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.jsnode_modulespeut ê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>viasupport.js), mais le composantPromo.jsxest AUTONOME (moteur + scènes, exposewindow.VideoRoot). - Format 1080×1080.
DUR/width/heightdéfinis dansPromo.jsx. Icônes/SVG inline → nianimations.jsxnisupport.jsnécessaires. - CONFIG :
build.js→SOURCE='Promo.jsx',ROOT_GLOBAL='VideoRoot';render.js→W=1080,H=1080,TOTAL= la valeurDUR.
Ancien (modulaire, vertical)
- Dossier
video/avecpromo.htmlmodulaire + jsx séparés (icons.js,animations.jsx,promo-parts.jsx,promo-scenes.jsx). Format 1080×1920.TOTALdanspromo.html. - L'ordre des
<script type="text/babel">casse hors-ligne (window.HECundefined) → précompiler chaque.jsxavec@babel/standalone, chaque fichier dans sa propre IIFE (sinon collisionconst Stage), puis assembler en un seulrender.htmlà scripts ordonnés. Le composant Seeker (qui expose__seek) est déjà présent dans cet export. - CONFIG :
render.js→W=1080,H=1920,TOTAL= la valeur danspromo.html.build.jsdoit être adapté à l'assemblage multi-fichiers (cette variante n'est pas couverte telle quelle par lebuild.jspar défaut).
Pièges connus
- Ne pas utiliser le
*(vertical).htmlautonome : 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 / duPromo.jsx. - Viewport = format + 120 px (la barre de lecture fait 44 px) pour forcer
scale = 1du 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/
- build.jsruns3.6 KB
- encode.jsruns758 B
- package.json456 B
- render.jsruns2.9 KB