Install
openclaw skills install remotion-excalidraw-ttsClawHub Security found sensitive or high-impact capabilities. Review the scan results before using.
Generate a narrated Remotion video from an Excalidraw (.excalidraw) diagram using text-to-speech (macOS say) and render to MP4. Use when creating explainer videos with pan/zoom + focus highlights over Excalidraw diagrams, with automated voiceover generation and Remotion CLI rendering.
openclaw skills install remotion-excalidraw-ttsUse this skill to turn an Excalidraw diagram + a voiceover script into a rendered MP4 using:
say (offline)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:
assets/template/remotion-project/ into a temp workdirpublic/diagram.excalidrawpublic/voiceover.mp3 via say + ffmpegnpx remotion render--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 30TTS backends:
--tts-backend say --voice Tingting --rate 220--tts-backend openai --openai-model gpt-4o-mini-tts --openai-voice alloy (requires OPENAI_API_KEY)--tts-backend elevenlabs --elevenlabs-voice-id <voiceId> --elevenlabs-model eleven_multilingual_v2 (requires ELEVENLABS_API_KEY)Template code lives in:
assets/template/remotion-project/src/video/storyboard/storyboard.tsEdit scenes:
cameraFrom/cameraTo (x/y/scale)focus rectangle (x/y/width/height + label)subtitlestoryboard.jsonPass --storyboard-json /abs/path/storyboard.json.
Schema reference:
references/storyboard.schema.jsonMinimal example:
{
"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": "问题"}
}
]
}
say)ffmpeg + ffprobenpm i in the temp project)