Remotion Excalidraw Tts
Generate a narrated Remotion video from an Excalidraw (.excalidraw) diagram using text-to-speech (ma
- Rating
- 4 (121 reviews)
- Downloads
- 8,443 downloads
- Version
- 1.0.0
Overview
Generate a narrated Remotion video from an Excalidraw (.excalidraw) diagram using text-to-speech (macOS say)
Complete Documentation
View Source →
Remotion + Excalidraw + TTS (Local)
Use this skill to turn an Excalidraw diagram + a voiceover script into a rendered MP4 using:
- Remotion (render)
- Excalidraw (render the .excalidraw JSON directly)
- TTS via macOS
say(offline)
Quick start (one command)
Run:
python3 skills/remotion-excalidraw-tts/scripts/make_video.py \
--diagram /absolute/path/to/diagram.excalidraw \
--voiceover-text /absolute/path/to/voiceover.txt \
--out /absolute/path/to/out.mp4
Optional: drive camera/focus/subtitles via storyboard JSON:
python3 skills/remotion-excalidraw-tts/scripts/make_video.py \
--diagram /absolute/path/to/diagram.excalidraw \
--voiceover-text /absolute/path/to/voiceover.txt \
--storyboard-json /absolute/path/to/storyboard.json \
--out /absolute/path/to/out.mp4
What it does:
1) copies the Remotion template project from assets/template/remotion-project/ into a temp workdir
2) writes public/diagram.excalidraw
3) generates public/voiceover.mp3 via say + ffmpeg
4) sets composition duration to match the voiceover length
5) renders MP4 with npx remotion render
Inputs
--diagram:.excalidrawJSON file (from Excalidraw export)--voiceover-text: plain text file (Chinese supported)
--voiceover-mp3: if you already have audio, skip TTS--tts-backend:say(default) |openai|elevenlabs--fps: default30
- macOS say:
--tts-backend say --voice Tingting --rate 220 - OpenAI:
--tts-backend openai --openai-model gpt-4o-mini-tts --openai-voice alloy(requiresOPENAI_API_KEY) - ElevenLabs:
--tts-backend elevenlabs --elevenlabs-voice-id(requires--elevenlabs-model eleven_multilingual_v2 ELEVENLABS_API_KEY)
Customizing scenes (pan/zoom/highlights)
Option A: edit TypeScript storyboard
Template code lives in:
assets/template/remotion-project/src/video/storyboard/storyboard.ts
cameraFrom/cameraTo(x/y/scale)focusrectangle (x/y/width/height + label)subtitle
Option B (recommended): provide storyboard.json
Pass --storyboard-json /abs/path/storyboard.json.
Schema reference:
references/storyboard.schema.json
{
"scenes": [
{
"name": "intro",
"durationSec": 10,
"subtitle": "很多智能体隔天就失忆。",
"cameraFrom": {"x": 0, "y": 0, "scale": 1},
"cameraTo": {"x": 0, "y": 0, "scale": 1},
"focus": {"x": 140, "y": 120, "width": 1640, "height": 340, "label": "问题"}
}
]
}
Requirements
- macOS (for
say) ffmpeg+ffprobe- Node.js + npm (the script will run
npm iin the temp project)
Installation
openclaw install remotion-excalidraw-tts
💻Code Examples
--out /absolute/path/to/out.mp4
What it does:
1) copies the Remotion template project from `assets/template/remotion-project/` into a temp workdir
2) writes `public/diagram.excalidraw`
3) generates `public/voiceover.mp3` via `say` + `ffmpeg`
4) sets composition duration to match the voiceover length
5) renders MP4 with `npx remotion render`
## Inputs
- `--diagram`: `.excalidraw` JSON file (from Excalidraw export)
- `--voiceover-text`: plain text file (Chinese supported)
Optional:
- `--voiceover-mp3`: if you already have audio, skip TTS
- `--tts-backend`: `say` (default) | `openai` | `elevenlabs`
- `--fps`: default `30`
TTS backends:
- **macOS say**: `--tts-backend say --voice Tingting --rate 220`
- **OpenAI**: `--tts-backend openai --openai-model gpt-4o-mini-tts --openai-voice alloy` (requires `OPENAI_API_KEY`)
- **ElevenLabs**: `--tts-backend elevenlabs --elevenlabs-voice-id <voiceId> --elevenlabs-model eleven_multilingual_v2` (requires `ELEVENLABS_API_KEY`)
## Customizing scenes (pan/zoom/highlights)
### Option A: edit TypeScript storyboard
Template code lives in:
- `assets/template/remotion-project/src/video/storyboard/storyboard.ts`
Edit scenes:
- `cameraFrom/cameraTo` (x/y/scale)
- `focus` rectangle (x/y/width/height + label)
- `subtitle`
### Option B (recommended): provide `storyboard.json`
Pass `--storyboard-json /abs/path/storyboard.json`.
Schema reference:
- `references/storyboard.schema.json`
Minimal example:python3 skills/remotion-excalidraw-tts/scripts/make_video.py \
--diagram /absolute/path/to/diagram.excalidraw \
--voiceover-text /absolute/path/to/voiceover.txt \
--out /absolute/path/to/out.mp4python3 skills/remotion-excalidraw-tts/scripts/make_video.py \
--diagram /absolute/path/to/diagram.excalidraw \
--voiceover-text /absolute/path/to/voiceover.txt \
--storyboard-json /absolute/path/to/storyboard.json \
--out /absolute/path/to/out.mp4{
"scenes": [
{
"name": "intro",
"durationSec": 10,
"subtitle": "很多智能体隔天就失忆。",
"cameraFrom": {"x": 0, "y": 0, "scale": 1},
"cameraTo": {"x": 0, "y": 0, "scale": 1},
"focus": {"x": 140, "y": 120, "width": 1640, "height": 340, "label": "问题"}
}
]
}Tags
Quick Info
Ready to Install?
Get started with this skill in seconds
Related Skills
4claw
4claw — a moderated imageboard for AI agents.
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
Acestep Lyrics Transcription
Transcribe audio to timestamped lyrics using OpenAI Whisper or ElevenLabs Scribe API.
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.