whiteboard-video-skill
Health Uyari
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 8 GitHub stars
Code Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Claude Code skill: turn any topic into a hand-drawn whiteboard explainer video with voice-over and captions
whiteboard-video
A Claude Code skill that turns any topic into a hand-drawn whiteboard explainer video: a marker draws each scene in sync with the voice-over, the board slides to the next idea, captions run along the bottom, and you get an MP4.

Watch the demo with sound. It was written, voiced and drawn by this skill.
What it does
- Asks for context. Topic, audience, length, format, language, facts to include.
- Writes the script. Scene by scene, with what gets drawn and the facts behind every claim, checked in two sources. You approve it before anything is drawn.
- Lets you pick a voice. It renders the same sentence with a few voices so you choose by ear: free macOS Premium voices, ElevenLabs, OpenAI TTS, or your own recordings.
- Draws and renders. Hand-drawn SVG scenes timed to each spoken line, previews for review, then a 1080p MP4 in 16:9 or 9:16.
Everything runs locally: headless Chrome draws the frames, ffmpeg makes the video.
Install
Requirements: Claude Code, Node 18+, Python 3.9+, ffmpeg, and Google Chrome (or Chromium/Edge).
git clone https://github.com/Matteoikarieth96/whiteboard-video-skill ~/.claude/skills/whiteboard-video
cd ~/.claude/skills/whiteboard-video/scripts && npm install
brew install ffmpeg # macOS; use your package manager elsewhere
Then just ask Claude Code:
Make a 60-second whiteboard video explaining how interest rates affect mortgages, for first-time buyers.
Use it without Claude
S=~/.claude/skills/whiteboard-video/scripts
$S/new_project.sh my-video # or: --vertical for 1080x1920
# edit my-video/script.json (what is said) and my-video/scenes.js (what is drawn)
python3 $S/make_audio.py my-video # voice-over + exact timing of every line
node $S/render.js my-video sheet # one PNG per scene + previews/sheet.png with all of them
node $S/render.js my-video full # my-video/out/my-video.mp4
Voices
| Voice | Cost | Setup |
|---|---|---|
| macOS Premium voices | free | System Settings > Accessibility > Spoken Content > Manage Voices |
| ElevenLabs | free tier or paid plan | ELEVENLABS_API_KEY in the project's .env |
| OpenAI TTS | cents per video | OPENAI_API_KEY in the project's .env |
| Your own recordings | free | one audio file per sentence in audio/ |
Keys stay in a local .env that is git-ignored. Compare voices before committing to one:
python3 $S/make_audio.py my-video --samples "A sentence from your script." \
--voices "say:Ava (Premium):185" "say:Samantha:190"
Share it
Social platforms take the MP4 directly. For a GIF (the one at the top of this page was made this way):
ffmpeg -i my-video/out/my-video.mp4 -t 34 \
-vf "fps=12,scale=800:-1:flags=lanczos,split[a][b];[a]palettegen=max_colors=64[p];[b][p]paletteuse=dither=bayer" my-video.gif
docs/demo.mp4 is examples/how-it-works rendered with render.js full.
How it works
script.jsonlists scenes and spoken lines. Each line becomes one caption.make_audio.pyvoices every line separately and records exactly when it starts and ends.scenes.jsdraws each scene with a small API (Tfor text,Pfor paths, plus lines, arrows, circles, icons) and times every stroke against those lines, for example "draw the coin halfway through the second sentence".render.jschecks timing and layout, makes previews, renders every frame deterministically and muxes the audio.
See references/drawing-api.md for the full drawing API and examples/ for two complete videos.
Examples
examples/how-it-works: the 33-second demo above.examples/rwa-on-ethereum: a 2-minute explainer on tokenized stocks and bonds, with charts, three-column comparisons and a custom logo.examples/sec-innovation-exemption: a 1:53 news explainer on the SEC Innovation Exemption, with the brief given to the skill and the sources behind every claim.
License
Code: MIT. The Caveat font is under the SIL Open Font License, included in assets/fonts/OFL.txt.
Built with Claude Code.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi