{
 "schema_version": 1,
 "generated": "2026-10-23",
 "id": "cth9191-animate--narrated-explainer-with-voice-over",
 "repo": "cth9191/animate",
 "repo_url": "https://github.com/cth9191/animate",
 "repo_slug": "cth9191-animate",
 "title": "Build a narrated explainer with a synced voice-over",
 "page_title": "How to build a narrated explainer with a synced voice-over with Animate",
 "summary": "Write a script, get one voice take per line, and time the picture to the spoken words automatically.",
 "who": "An educator or documentation writer who wants a narrated animated explainer with the picture synced to the voice.",
 "problem": "Syncing narration to animated visuals line by line is tedious, and every re-take breaks the timing.",
 "outcome": "A narrated MP4 where the scenes are timed to the words of the voice-over, with pace checked in the review.",
 "steps": [
  "Connect the ElevenLabs connector in Claude (Settings, then Connectors) and install faster-whisper with Python.",
  "Start the skill with a narration request: `/animate a narrated 45s explainer of how DNS works, math style, 16:9, voice from ElevenLabs`",
  "Approve the script and the storyboard as the skill presents them.",
  "Generate or re-time the voice with the tool: `node $SKILL/tools/voice.mjs pieces/my-piece`",
  "Export and review the narrated piece: `node $SKILL/tools/export.mjs pieces/my-piece --share --formats 9:16,1:1,16:9` then `node $SKILL/tools/review.mjs pieces/my-piece`"
 ],
 "agent_prompt": "Using the animate skill in cth9191/animate, create a narrated 45-second explainer about <topic> with a voice-over. Expect voice.wav and voice.json in the piece folder and an exported MP4, and verify that the review reports narration pace and that every script line is timed to the picture.",
 "agents": [
  "claude-code"
 ],
 "difficulty": "Advanced",
 "time": "90 minutes",
 "basis": "readme",
 "caveat": "The README names faster-whisper for timing and the ElevenLabs connector for the voice, but it does not state which voices or languages are supported.",
 "category": "Content",
 "tags": [
  "Content"
 ],
 "lang": "javascript",
 "requirements": [
  "Claude Code",
  "Node 18+",
  "Playwright with Chromium",
  "ffmpeg on your PATH",
  "Python with faster-whisper and the ElevenLabs connector (only for voice-overs)"
 ],
 "risk": "none",
 "seen_in_the_wild": false,
 "mentioned_publicly": false,
 "risks": [
  {
   "tag": "credentials",
   "notice": "The voice comes through the ElevenLabs connector, so you must connect your own ElevenLabs account in Claude settings and keep its access under your control."
  }
 ],
 "best": false,
 "score": 0.7,
 "evidence": [],
 "url": "https://dedupedai.com/use-cases/cth9191-animate/narrated-explainer-with-voice-over/",
 "md": "https://dedupedai.com/use-cases/cth9191-animate/narrated-explainer-with-voice-over/index.md",
 "disclaimer": "Deduped lists open-source repositories that belong to other people. We do not own, maintain, audit, or vouch for any of them, and a repo appearing here is not an endorsement or a safety check. The use cases, steps, and prompts are written by AI and may be incomplete, outdated, or just wrong. Where a use case is marked \"Seen in the wild\", we link to public posts where someone described something similar, but we have not verified those posts and the use case itself is still our AI's own write-up. Use all of this at your own risk. Only run code, commands, or agents on systems and accounts you are authorized to use, and read the code and every command before you run it, especially anything that touches credentials, files, or the network. Nothing here is professional, security, legal, or financial advice. All trademarks and project names belong to their respective owners, and their use here does not imply affiliation. Content is provided as is, without warranties of any kind. Found a mistake, a safety problem, or something you want removed? Email hello@dedupedai.com and we will look at it promptly.",
 "api": "https://dedupedai.com/api/v1/usecases/cth9191-animate--narrated-explainer-with-voice-over.json",
 "api_version": "v1"
}
