ultimate claude render
Une vidéo est une page HTML dont l'état dépend du temps t. Claude écrit la scène ; le moteur demande chaque image (window.__seek(t)), prend la capture dans Chromium headless et ffmpeg assemble le tout avec la voix, la bande-son et les effets. Rien n'est « enregistré » : tout est déterministe et reproductible.
Le repo est le moteur + les scripts audio + cette compétence. Les vidéos de chaque personne se trouvent dans des dossiers de projet en dehors de ce repo.
Avant d'écrire une ligne
- Exécutez
ucr doctor. Si ffmpeg, Python avec numpy/scipy ou Chromium manque, il indique la commande exacte. - Trouvez le repo. La compétence s'installe avec
ucr installer-skillet le repo se trouve là où il a été cloné (ucrdans le PATH ounode <repo>/bin/ucr.mjs). Si vous ne le trouvez pas, demandez où il a été cloné ; ne réimplémentez pas le moteur. - Planifiez avant de produire (une vidéo coûte cher à refaire) : script complet, format, marque, médias disponibles, chiffres sourcés, ce qui apparaît à chaque phrase. L'utilisateur approuve étape par étape : script → images de style (
ucr stills) → prévisualisation → rendu final. Ne faites pas le rendu de la vidéo entière sans le script et les images approuvés. - Marque existante d'abord. Lisez le brandbook, le site ou l'application de l'utilisateur et écrivez le
marque.json(couleurs, police, logo). N'inventez jamais d'identité et ne redessinez pas le logo. Le matériel client avec une apparence de modèle générique est rejeté : photo, couleur et logo réels.
Flux
ucr nouveau ma-video --marche <dossier-marque|_modele|exemple> --format vertical
# éditez narracao.txt, projet.json et scene.html
ucr tout ma-video # prep → media → voix → temps → beats → sons → mix → rendu → QA
Étapes isolées : ucr prep|media|voix|temps|beats|sons|mix|rendu|qa <dossier>. Vérification économique : ucr stills <dossier> 2,8.5,15 (PNG à n'importe quel instant, sans rendre la vidéo). Prévisualisation en temps réel : ucr preview <dossier> --audio.
Dossier d'un projet :
| Fichier | Description |
|---|---|
projet.json | format, fps, marque, voix, respirations, mix, rendu |
narracao.txt | le script parlé ; devient voix, sous-titres et temps de la scène |
scene.html | la scène (ce que vous écrivez) |
marque/ ou marque dans un autre chemin | marque.json + polices + logo |
media/ | photos, vidéos, piste.mp3, sfx/<type>/ |
build/, .ucr/, sortie/ | générés ; ne pas versionner |
Écrire la scène
Squelette : voir exemples/modele-scene.html du repo. L'ordre des <script> est important (GSAP → marque → projet → thème → temps → media → beats → moteur). API complète dans references/moteur-api.md ; résumé :
M.fond(),M.camera(),M.marque(),M.sous-titres(F, { cles: [...] }),M.grand(texte, { t, fin })M.cellulaire(pere, {x,y,B}),M.fenetre(pere, {...}),M.terminal(pere, {lignes}),M.curseur/cliquer/toucherM.photo(pere, 'nom', {...}),M.video(pere, 'nom', { son: true })(depuismedia/, aprèsucr media)M.T('mots')= instant où ces mots sont dits. Ancrez tout sur la parole, pas sur des secondes fixes : changer une phrase du script ne décale pas le reste de la scène.M.son(t, 'type')marque un effet pour le mix ;M.beat(t)déclenche une coupe sur le beat de la piste.
Règles d'or de la scène :
- Tout ne dépend que de
t. Tweens sur la timeline (M.tl), compteurs et dessins dansM.ACTUALISER.push(t => ...). Pas desetInterval,Date.now(),<video>avecplay()ou animation CSS. - Zone de sécurité de la plateforme : le QA détecte le texte en dehors (vertical : 14% en haut et 25% en bas).
- Le repos entraîne la dérive. Rien de statique pendant plus de ~1,5 s (le QA mesure et le spectateur zappe).
M.camera()fait bouger la scène en 3D ; une carte sombre sur fond sombre bouge sans que personne ne le remarque, alors donnez-lui une bordure et de la luminosité. - Chaque parole change le cadre. Nouvelle phrase, nouvelle image ou nouveau mouvement.
- Avant de rendre :
ucr stillsà 3 ou 4 instants. Une erreur de script (variable répétée, mot hors narration) apparaît immédiatement avec le message de la page.
Audio
- Voix :
projet.json → voix.fournisseur:edge(gratuit, sans clé ; bon pour tester, pas pour usage commercial),elevenlabs,fal, oufichier(vous avez enregistré ; temps via Deepgramnova-3). Texte à l'écran = celui dunarracao.txt, les temps viennent de la voix. - Respirations :
"respirations": {"2": 1.2}= 1,2 s de silence après la phrase d'indice 2 (l'image a besoin de temps pour entrer). - Piste :
media/piste.mp3(licence commerciale !) ou"synthetique"(originale, sans licence). Baisse automatiquement sous la voix (ducking). - Effets : synthétisés (whoosh, impact, clic, brillance, montée, obturateur, pop, touche, grave, papier) ou fichiers dans
media/sfx/<type>/. - Master : −14 LUFS et −1,5 dBTP (Reels/TikTok/Shorts), mesuré dans le fichier final.
Détails et pièges : references/audio.md.
QA et livraison
Le rendu exécute le QA automatiquement (sortie/<nom> - QA.txt) : taille, couleur (BT.709 marqué), image fixe, segment noir, loudness, pic et texte hors zone de sécurité. Un QA vert n'est pas une approbation : ouvrez le MP4, regardez les images, écoutez. Signalez ce que le QA a détecté et ce que vous avez vu ; ne déclarez pas « prêt » sans avoir regardé.
Sorties : sortie/<nom>.mp4 (livraison, 22 Mb/s) et sortie/<nom> - leger.mp4 (30 fps, pour envoi par message).
Quand quelque chose ne va pas
- Scène pas prête (
La scène n'est pas prête) : erreur de script (le message donne l'erreur de la page, immédiatement) ou, sans aucune erreur, chemin de<script>/média erroné (là, attend le délai d'attente de 90 s). - Rendu lent : voir
references/armadilhas.md(filter blur, backdrop-filter, blend en plein écran,<video>dans la page). - Refaire seulement un passage :
ucr rendu <dossier> --de 30 --jusque 38(réutilise les morceaux du rendu précédent si les paramètres sont les mêmes). - Avant un long rendu :
df -h(≈ 250 MB de morceaux et ≈ 145 MB de livraison pour 45 s à 1080×1920).
Références (lire à la demande)
references/moteur-api.md: toute l'API deM.*avec exemplesreferences/marque.md:marque.jsonchamp par champ, formats et zonesreferences/audio.md: voix, respirations, piste, effets, mix, licencesreferences/recettes.md: photo, vidéo au milieu, écran réel, terminal, horizontal, variantes, changement de palettereferences/armadilhas.md: ce qui a déjà cassé (mesuré), par thème