# Send Remotion + Excalidraw + TTS to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "remotion-excalidraw-tts",
    "name": "Remotion + Excalidraw + TTS",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/jack4world/remotion-excalidraw-tts",
    "canonicalUrl": "https://clawhub.ai/jack4world/remotion-excalidraw-tts",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/remotion-excalidraw-tts",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=remotion-excalidraw-tts",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md",
      "assets/template/remotion-project/README.md",
      "assets/template/remotion-project/eslint.config.mjs",
      "assets/template/remotion-project/package-lock.json",
      "assets/template/remotion-project/package.json",
      "assets/template/remotion-project/postcss.config.mjs"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/remotion-excalidraw-tts"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/remotion-excalidraw-tts",
    "downloadUrl": "https://openagent3.xyz/downloads/remotion-excalidraw-tts",
    "agentUrl": "https://openagent3.xyz/skills/remotion-excalidraw-tts/agent",
    "manifestUrl": "https://openagent3.xyz/skills/remotion-excalidraw-tts/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/remotion-excalidraw-tts/agent.md"
  }
}
```
## Documentation

### 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:

copies the Remotion template project from assets/template/remotion-project/ into a temp workdir
writes public/diagram.excalidraw
generates public/voiceover.mp3 via say + ffmpeg
sets composition duration to match the voiceover length
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)

### 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:

{
  "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 i in the temp project)
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: jack4world
- Version: 1.1.0
## Source health
- Status: healthy
- Source download looks usable.
- Yavira can redirect you to the upstream package for this source.
- Health scope: source
- Reason: direct_download_ok
- Checked at: 2026-05-07T17:22:31.273Z
- Expires at: 2026-05-14T17:22:31.273Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/remotion-excalidraw-tts)
- [Send to Agent page](https://openagent3.xyz/skills/remotion-excalidraw-tts/agent)
- [JSON manifest](https://openagent3.xyz/skills/remotion-excalidraw-tts/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/remotion-excalidraw-tts/agent.md)
- [Download page](https://openagent3.xyz/downloads/remotion-excalidraw-tts)