Que fait Voiceover → glass reel ?
Une demande, une MP4 terminée. L'utilisateur fournit un fichier voiceover (n'importe quel format audio ou vidéo, jusqu'à ~3 min) et optionnellement le texte du script, une note de sujet ou des liens de référence. Vous faites tout le reste et vous arrêtez seulement :
- une fois pour les téléchargements comme les logos. Il n'y a pas de budget de crédits : tout est sourcé gratuitement
(voir
references/higgsfield.md- recettes Pixabay / Wikimedia / thesvg testées). Signalez ce qui a été sourcé et d'où, mais l'argent n'entre jamais en conversation à moins que l'utilisateur ne demande explicitement l'annexe payante.
Travaillez dans la langue de l'utilisateur dans le chat. Tout ce qui s'affiche à l'écran est dans la langue du voiceover.
Ce qu'il produit
Transforme n'importe quel voiceover (et un script optionnel) en un reel documentaire 16:9 dans After Effects en une seule demande. Il coupe les pauses et les respirations, écrit l'histoire visuelle, trouve chaque image gratuitement (photos d'archives Wikimedia Commons, clips et portraits Pixabay MCP, logos SVG via le MCP thesvg, mouvements Ken-Burns ffmpeg à partir d'images fixes) et construit le montage nativement dans After Effects. Le look : documentaire archivistique sombre, chaque clip dans un cadre en verre flottant arrondi avec une fine bordure lumineuse et un push-in fluide, une grille de perspective animée avec des mots-clés qui changent de couleur sur le mot, de grandes légendes parlées, des pages machine à écrire / mot géant / fiche photo, des flashs et des flics négatifs sur les coupes, des effets sonores synthétisés. Il rend un MP4 1080p H.264. Utilisez-le chaque fois que quelqu'un fournit un voiceover, un mémo vocal, une narration ou un extrait de podcast et demande un reel, une vidéo, un court métrage, une explication ou un montage : "fais une vidéo à partir de mon voiceover", "transforme cette narration en reel", "montage en verre", "un clip d'un voice-over", "fais un reel avec mon enregistrement vocal", "coupe une vidéo sur ma voix", "cadres en verre et une grille". Cela fonctionne même s'ils n'ont aucune séquence.
Avant de commencer (vérifier une fois par Mac ; dire exactement à l'utilisateur quoi corriger si quelque chose échoue)
- macOS 26 ou plus récent (transcription sur l'appareil) avec After Effects 2024 ou plus récent, ouvert. Dans AE, activez Paramètres → Scripting & Expressions → Autoriser les scripts à écrire des fichiers et à accéder au réseau.
- Outils en ligne de commande Xcode (
swiftc). Exécutezscripts/build_tools.sh. Il compilescripts/bin/{to_wav,transcribe,facebox,frames}. Si un script échoue avec "permission denied" (un skill téléchargé peut perdre le bit exécutable), exécutezchmod +x scripts/*.shdans le dossier de ce skill une fois. - Sourcing gratuit prêt : les outils MCP
pixabayetthesvg(search_pixabay_images,search_pixabay_videos,search_icons,list_variants,get_icon_url,get_icon) pluscurletffmpeg(déjà utilisés par le moteur). Wikimedia Commons nécessite seulement Internet- un User-Agent approprié. Pas de crédits, pas de comptes, pas de soldes à vérifier.
- La première exécution de
transcribepeut demander l'autorisation de reconnaissance vocale. Elle peut aussi télécharger le modèle sur l'appareil une fois. - Si un autre projet AE est ouvert avec des modifications non enregistrées,
build.shrefuse. Demandez à l'utilisateur de l'enregistrer. Ne jetez jamais leur travail. Le journal de build affichePREVIOUS_PROJECT <chemin>lorsqu'il a fermé un projet enregistré. Après le rendu final, rouvrez-le : écrivez une ligne jsxapp.open(new File("<chemin>"));et exécutez-la avecscripts/ae_run.sh.
S = dossier de ce skill. PY = /usr/bin/python3 (ou tout Python 3.9+, bibliothèque standard uniquement).
Pipeline
1. Dossier du projet et voix
- Créez
<proj>= un nouveau dossier à côté du voiceover nommé<nom_voiceover>_reel. - Exécutez
PY S/scripts/reel.py prep <voiceover> <proj>. Il convertit l'audio, le transcrit sur le Mac et supprime toutes les pauses et respirations. Les résultats sontwork/voice_cut.wavetwork/words.json(index des mots → temps programme). - Ensuite, exécutez
PY S/scripts/reel.py words <proj>et lisez l'intégralité du transcript indexé. - Si l'utilisateur a fourni un script, comparez-le avec le transcript. Notez les noms mal entendus pour
spell(par exemple"28": "Grok").
2. Histoire (lisez references/story.md, puis écrivez <proj>/story.json)
- Décidez le monde qui correspond au script : époque, lieu, un casting récurrent de 2 à 5 personnages, 3 à 6 lieux, N&B ou couleur.
- Par défaut : un documentaire d'archives en noir et blanc des années 1950-60, où les sujets abstraits deviennent des personnes et des lieux.
- Choisissez un look pour l'hôte. Quand l'utilisateur veut apparaître lui-même, utilisez sa photo comme référence d'hôte.
- Coupez le transcript en plans. Chaque plan commence sur un index de mot.
- host (parle à la caméra sur la télé) : 3 à 6 plans, 2 à 6 s chacun. Utilisez-les à l'accroche, aux tournants et à l'appel à l'action. Ensemble, ils prennent environ 15 à 20 % du temps.
- clip (séquence générée dans le cadre en verre) : la plupart des plans, 1,5 à 3 s chacun.
- type (page machine à écrire) : la question d'ouverture ou les titres de section, au maximum 6 mots.
- giant (un mot énorme avec une étiquette rouge et une sous-ligne sérif) : un concept nommé.
- cards (2 à 4 fiches photo avec des badges de logo, un nom sur chaque mot) : quand la voix liste des personnes, des produits ou des marques. Les logos apparaissent seulement quand ils sont prononcés.
- list : quand la voix liste 2 à 4 points, marquez cette plage de mots. Ses mots-clés passent à la couleur d'accentuation sur le mot.
- keys : au maximum un par phrase.
- hits :
invertsur 3 à 6 coupes dramatiques,strobesur au maximum 2 moments "ça devient plus fou",burnsur au maximum 2 pics. - Ne montrez jamais le même moment de clip deux fois.
- Écrivez la liste de sourcing à partir des plans :
- chaque clip d'histoire correspond à 8 à 12 s de séquence libre de droits (ou un panoramique Ken-Burns sur une image fixe sourcée), couvrant des plans consécutifs,
donc un clip alimente plusieurs plans via différents temps
in; - portraits des fiches, lieux et tout matériel hôte - tout sourcé gratuitement ;
- une bande sonore optionnelle (ou aucune : le build la saute quand
musicest absent).
- chaque clip d'histoire correspond à 8 à 12 s de séquence libre de droits (ou un panoramique Ken-Burns sur une image fixe sourcée), couvrant des plans consécutifs,
donc un clip alimente plusieurs plans via différents temps
3. Sourcer les assets (lisez references/higgsfield.md)
- Sourcez dans cet ordre : clips d'histoire → portraits des fiches → lieux → (si conservé) plaque TV →
(si conservé) clips hôte. Vérifiez chaque téléchargement selon les recettes testées (HEAD
content-type+content-length, curl-AUA + tentatives, SHA-1 quand Commons en donne un). Enregistrez fichier → source URL → licence → auteur danswork/SOURCES.md. - Clips d'histoire : Pixabay
search_pixabay_videos(video_type: "film", orientation correspondante, durée 8 à 15 s) ou Commonsfiletype:video(imageinfo→ téléchargement avec la recette curl → transcodage des Talks.ogv/.webmen MP4). Les images fixes deviennent des.mp4Ken-Burns avec la recette ffmpeg. - Clips hôte (seulement si l'utilisateur apparaît lui-même à l'écran) :
PY S/scripts/reel.py chunks <proj>écrit un chunk audio par plan hôte danswork/host/host_NN.wav;- composez le chunk audio sur leur clip webcam et sauvegardez-le comme
assets/host/host_NN.mp4(ffmpeg -map 0:v:0 -map 1:a:0 -shortest) -reel.py alignfait ensuite correspondre les mots exactement ; PY S/scripts/reel.py align <proj>mesure le décalage de chaque clip par rapport aux mots. Pas de séquence propre → restructurez ces beats hôte comme des pagestype/giant/cardsà la place.
- Si une plaque TV est utilisée, exécutez
PY S/scripts/reel.py screen <proj>/assets/tv_plate.png <proj>. Il trouve l'écran vert. Si aucun n'est trouvé, repeignez-le (ffmpeg drawbox, §2 de la référence) ou passez les plans hôte en modefull- pas de plaque nécessaire. - Exécutez
PY S/scripts/reel.py sfx <proj>pour synthétiser les effets sonores (pas de licences nécessaires). - Musique : omettez
music(par défaut), utilisez la piste de l'utilisateur, ou convertissez un fichier audio Commons en MP3.
4. Build et vérification
- Exécutez
PY S/scripts/reel.py plan <proj>. Il écritwork/plan.jsonet affiche les vérifications. Corrigez chaque ERREUR dansstory.json. Prenez les AVERTISSEMENTS au sérieux : clips répétés, lip-sync de l'hôte. - Exécutez
S/scripts/build.sh <proj>. Il construit<proj>/reel.aep(comp REEL) en environ 1 min pour un reel de 70 s. Lisez le journal : polices utilisées, avertissements. - Exécutez
S/scripts/render.sh <proj> --halfpour une vérification rapide (~2 min). Ensuite, vérifiez les images :S/scripts/bin/frames <proj>/out/reel_half.mp4 <proj>/work/check.jpg 4 <la seconde milieu d'environ 16 plans>;- regardez
check.jpg: légendes lisibles et pas sur les visages, lèvres de l'hôte qui bougent à l'intérieur de la télé, cadres en verre présents, pas de trous noirs, pages non vides. Corrigez dansstory.json, puis réexécutezplan,buildet la vérification.
- Final : exécutez
S/scripts/render.sh <proj>. Il écrit<proj>/out/reel_1080.mp4(1920×1080, 25 ips, environ 40 Mbps, avec son). - Envoyez le MP4. Signalez :
- sa durée ;
- ce que vous n'avez pas pu vérifier ;
- l'endroit à modifier à la main (
reel.aep: chaque plan est sa propre comp dans02_SHOTS/03_PAGES, les légendes sont dansCAPTIONS).
Règles
- Droits :
- Sourcez tout gratuitement : Pixabay MCP, Wikimedia Commons (vérifiez la licence de chaque fichier), thesvg
MCP pour les logos, plus synthèse locale (ffmpeg Ken-Burns,
reel.py sfx). Aucun service payant par défaut ; l'annexe Higgsfield est uniquement pour quand l'utilisateur le demande explicitement. - Ne scrapez jamais de films, séries, publicités ou autres publications sociales.
- Logos uniquement depuis le MCP thesvg ou Wikimedia Commons, et seulement après l'approbation de l'utilisateur.
- La musique est optionnelle (omise, piste propre de l'utilisateur, ou fichier Commons converti en MP3).
- Les effets sonores sont synthétisés par
reel.py sfx.
- Sourcez tout gratuitement : Pixabay MCP, Wikimedia Commons (vérifiez la licence de chaque fichier), thesvg
MCP pour les logos, plus synthèse locale (ffmpeg Ken-Burns,
- La voix est l'horloge.
- Chaque coupe tombe sur un mot, une image avant lui.
reel.pyfait cela. - Ne changez jamais la vitesse ni les mots.
- Les légendes montrent exactement ce qui est dit, à part les corrections
spellde noms mal entendus.
- Chaque coupe tombe sur un mot, une image avant lui.
- Personnes :
- vêtements modestes et adaptés à l'époque ;
- adultes réalistes ;
- aucune personnalité publique réelle comme personnage ;
- les modèles IA et les entreprises sont représentés comme des personnages inventés et nommés uniquement par légende et logo.
- Les ré-exécutions sont bon marché.
planetbuildsont déterministes et reconstruisentreel.aepde zéro. Modifiezstory.jsonplutôt que d'éditerreel.aepà la main, à moins que l'utilisateur ne demande des modifications manuelles. Une fois qu'il éditereel.aeplui-même, ne reconstruisez jamais par-dessus sans demander. - AE exécute un script à la fois.
- Utilisez seulement
scripts/ae_run.sh,build.shetrender.sh. - Sortie 4 signifie qu'AE est encore occupé : attendez, ne renvoyez jamais.
- Sortie 6 signifie qu'AE n'a pas démarré le script : y a-t-il une boîte de dialogue ouverte ?
- Utilisez seulement
Fichiers
| chemin | quoi |
|---|---|
scripts/reel.py | prep / words / chunks / align / screen / sfx / plan (bibliothèque standard uniquement) |
scripts/build.sh, scripts/ae/build_reel.jsx, scripts/ae/reel_lib.jsx | le build After Effects |
scripts/render.sh | aerender vers H.264 (--half pour vérifications) |
scripts/ae_run.sh | envoie un script à AE en cours d'exécution et attend |
scripts/tools/*.swift → scripts/bin/ | conversion audio, transcription sur l'appareil, boîtes de visage, feuilles d'images |
references/story.md | format story.json, règles de plan, un exemple complet |
references/higgsfield.md | manuel de sourcing gratuit : recettes de récupération et vérification Pixabay / Wikimedia / thesvg testées, mapping par asset, annexe de génération payante |
references/look.md | ce que le build dessine (tailles, timings, couleurs) et comment le régler |
references/troubleshooting.md | erreurs et correctifs |
references/example_story.json | le story.json d'un reel de 70 s terminé (le test EXPERIMENT) |
PROMPT.md | comment installer le skill et l'unique invite à envoyer |