Communitygithub.com

MrIago/whiteboard-explainer-video

Crée des vidéos explicatives de tableau blanc dessiné à la main (traits Excalidraw) qui se dessinent en même temps que la narration, avec une caméra qui se promène sur un seul tableau et un zoom arrière final qui montre la carte complète. Script, voix via OpenRouter ou ElevenLabs, synchronisation mot à mot et rendu en MP4 16:9 avec Remotion.

Qu'est-ce que whiteboard-explainer-video ?

Cette compétence permet de produire des vidéos explicatives animées de type « tableau blanc » où le dessin se déroule en temps réel, en parfaite synchronisation avec la narration. L'effet repose sur un principe clé : aucun élément n'apparaît complet ; tout se dessine au moment où la voix en parle, sur un unique tableau où la caméra se déplace, créant une continuité visuelle. Le zoom arrière final révèle l'intégralité de la carte mentale du sujet, servant de résumé visuel immédiat. La compétence utilise Remotion pour le rendu vidéo MP4 16:9, avec la génération de voix via OpenRouter (ou ElevenLabs) en option, et assure une synchronisation mot à mot entre le texte parlé et les animations. Elle s'adresse aux développeurs ou créateurs de contenu qui souhaitent expliquer un système, un produit, un processus, un livre ou une idée de manière pédagogique et engageante.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add MrIago/whiteboard-explainer-video

Demander à votre IA préférée

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

Documentation

Vidéo explicative de tableau blanc

Un tableau blanc qui se dessine pendant que le narrateur parle. La personne repart avec la carte complète en tête.

Ce qui fait le style, et qui ne peut pas être coupé :

  • Tout se dessine au moment où la voix parle de cette chose. Rien n'apparaît prêt.
  • Un seul tableau : la caméra se promène et ce qui a été expliqué reste en place.
  • Le zoom arrière final montre le tableau entier et devient le résumé de la vidéo. Il ne fonctionne que si la carte est planifiée avant de dessiner.
  • S'il existe une app ou quelque chose de réel, l'enregistrement d'écran dans une fenêtre dessinée prouve ce que le dessin affirme.

SD ci-dessous est le dossier de cette compétence. Commandes : node "$SD/scripts/...".

Avant de commencer

  1. node "$SD/scripts/config.mjs". Sans clé, demandez à la personne une des suivantes et sauvegardez sans répéter la valeur dans le chat :
    • OpenRouter (openrouter.ai/keys), qui fait voix et transcription : node "$SD/scripts/config.mjs" OPENROUTER_API_KEY=...
    • ElevenLabs (elevenlabs.io/app/settings/api-keys) : node "$SD/scripts/config.mjs" ELEVENLABS_API_KEY=...
  2. Nécessite Node 20+ et ffmpeg. S'il manque quelque chose : dites comment l'installer sur son système.
  3. Avant de construire, combinez : sujet, public cible, durée, langue et ce que la vidéo doit clarifier. Une fois la demande claire, suivez sans poser de questions.

L'ordre de production

#ÉtapeRésultat
1node "$SD/scripts/new-project.mjs" <dossier>projet Remotion
2Script en courts extraits, un sujet par extrait, sans numéro inventéscript/script.md
3Vidéo de plus d'1 min : 3 échantillons (narrate.mjs <dossier> --samples "première phrase") et la personne choisit. Enregistrez dans script/voice.json. Test court utilise la valeur par défautla voix
4node "$SD/scripts/narrate.mjs" <dossier>public/audio/, src/data/narration.json
5Enchaîner les extraits dans src/sections.tsligne de temps
6Carte du monde : une région par extrait, regroupées par partie de la vidéoconstantes R_*
7Une région à la fois : dessiner, ancrer sur les mots, vérifier avec un stillsrc/scenes/*.tsx
8Caméra et fermeturesrc/Video.tsx
9npx remotion studio src/index.ts pour que la personne regarde, si elle veut réviserok
10Rendu d'un morceau, planche, rendu entier, planche, loudnessout/video.mp4

La scène src/scenes/Example.tsx n'est qu'un modèle : supprimez-la et dessinez le tableau du sujet. Chaque vidéo a son propre dessin.

Lisez references/method.md avant l'étape 6. S'il y a un enregistrement d'écran dans la vidéo, lisez aussi references/screens.md.

Script

**s01**
Texte parlé de l'extrait, en un seul paragraphe.
  • Phrase parlée, pas de texte écrit. Ponctuation simple : le tiret et les points de suspension créent un silence étrange.
  • Écrire les nombres en toutes lettres lorsque la lecture importe.
  • Chaque extrait doit donner un dessin. Si ce n'est pas dessinable, réécrivez.
  • Pas de date dans la vidéo si elle doit durer, et chaque nombre a besoin d'une source.

Vérifier : vous ne regardez pas, alors lisez les planches

npx remotion still src/index.ts Whiteboard /tmp/f.png --frame=N --scale=0.5
node "$SD/scripts/render.mjs" <dossier> --frames=0-299
node "$SD/scripts/qa.mjs" sheet <dossier>/out/video.mp4 24    # planche : cherchez morceau répété et superposition
node "$SD/scripts/qa.mjs" scan  <dossier>/out/video.mp4       # secondes immobiles, cadre noir, cadre qui clignote
node "$SD/scripts/qa.mjs" loud  <dossier>/out/video.mp4       # visez -14 à -16 LUFS, pic jusqu'à -1 dBTP

Le scan mesure ce que l'œil ressent : au-dessus de 5% d'immobilité, la vidéo ressemble à un diaporama. Corrigez avant de livrer, même en test, avec plus d'éléments par phrase et des clés de caméra dans les détails ; la respiration de la caméra seule compte comme immobile.

Ouvrez les images. Ne dites pas que c'est bien sans avoir vu la planche et mesuré l'audio.

N'utilisez que l'effet de useCurrentFrame : les transition et animation CSS ne sortent pas dans le rendu.

Skills associés