YouTube Dubbing MCP
Enables dubbing YouTube videos from URLs by fetching audio and manual/automatic captions, and produces YouTube-ready multi-language audio tracks, synced SRT captions, localized metadata, and an upload package for YouTube Studio.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
YouTube Dubbing MCP: AI dubbing with one cloned voice per speaker
YouTube Dubbing MCP is an open-source MCP server that lets an AI agent (Claude, Cursor, Codex, VS Code) dub a YouTube video, a local video or an SRT file into another language, giving every speaker their own cloned voice, with synced SRT captions and upload-ready YouTube multi-language audio tracks. You ask "dub this video into English and keep each speaker's voice"; the agent translates, and the server does everything that touches audio: transcript, speaker detection, voice samples, voicing, timing, mixing and packaging.

▶ Listen to the real output: English dub (MP3) · dubbed video (MP4) · original Spanish video · synced SRT · or play them in the browser on the Hugging Face demo page.
Contents
Related MCP server: OrcaDub MCP Server
Why this AI dubbing MCP server
Multi-speaker dubbing, each voice cloned. Speakers come from caption markers (
Name:,[Name],>>) or, when there are none, from voice pitch.dubbing_extract_voice_samplescuts a clean sample of every speaker from the video itself, so Anna still sounds like Anna in Spanish, German or English.Dub YouTube videos from a URL. Reads YouTube's manual or automatic captions when they exist (fast, free of guesswork), otherwise transcribes the audio. Local MP4/MOV/MKV/MP3/WAV files and existing SRT/VTT subtitles work too.
Timing that fits. Each line gets a character budget for its time slot in the target language, the agent writes to it, and the renderer starts every line with the original and only speeds up (pitch kept, capped at 1.25×) when it must. The dub track is exactly as long as the video, which YouTube requires.
Upload-ready for YouTube. One folder per language with
audio.m4a(AAC 48 kHz),captions.srt, a localized title and description, and the YouTube Studio steps.Resumable and safe. Everything is saved in a project folder. Re-running a tool reuses finished lines, resumes pending jobs and never submits the same line twice. The API key never appears in output or logs.
No GPU, no local models.
uvxinstalls it in one command; ffmpeg comes bundled. Voices are rendered by the Miragea voice engine.
How YouTube dubbing works here
Ingest: YouTube URL → audio + captions (yt-dlp), or a local video/audio/SRT file. Caption fragments are merged into sentences; speech without captions is transcribed and re-split at pauses.
Speakers: names from caption markers, or grouped by voice pitch. Fix anything with one call.
Voices: a sample of each speaker is cut from the source and cloned, or you pick a saved voice / any public reference clip.
Translate: your agent's own model translates, line by line, inside the time budget. Too-long lines are reported back for shortening.
Render: every line is voiced in its speaker's voice, placed at its original start time, and mixed into a track of the exact video length, with an SRT and an optional preview MP4.
Package: per-language folders for YouTube Studio → Languages.
Quick start
Install uv (it provides
uvx).Get a voice engine API key at miragea.ai/workspace/api.
Add the server to your MCP client:
Claude Code
claude mcp add youtube-dubbing -s user -e MIRAGEA_API_KEY=<your-key> -- uvx youtube-dubbing-mcpClaude Desktop / Cursor / Windsurf (claude_desktop_config.json, ~/.cursor/mcp.json)
{
"mcpServers": {
"youtube-dubbing": {
"command": "uvx",
"args": ["youtube-dubbing-mcp"],
"env": { "MIRAGEA_API_KEY": "<your-key>" }
}
}
}Codex (~/.codex/config.toml)
[mcp_servers.youtube-dubbing]
command = "uvx"
args = ["youtube-dubbing-mcp"]
tool_timeout_sec = 1800
env = { MIRAGEA_API_KEY = "<your-key>" }VS Code (.vscode/mcp.json): run uvx youtube-dubbing-mcp --print-config vscode and paste the output.
Check everything with uvx youtube-dubbing-mcp --check (creates no job). Latest main instead of the PyPI release: uvx --from git+https://github.com/RTY2345RR/youtube-dubbing-mcp youtube-dubbing-mcp.
Variable | Default | Purpose |
| required for voicing and transcription | voice engine key |
|
| where projects are saved |
|
| lines voiced in parallel |
|
| seconds to wait per job before returning (re-run to resume) |
| unset | browser name or cookies.txt when YouTube asks to sign in |
| system or bundled ffmpeg | custom ffmpeg |
Example: dub a YouTube video to English with two voices
Prompt used for the demo in examples/spanish-to-english-two-speakers:
Dub
interview-es.mp4into English. Marco and Lucia should keep their own voices. Then make the YouTube upload package.
What the agent called, with the real results:
Step | Tool call | Result |
1 |
| 3 sentences, 11.3 s, 2 voices found by pitch (117 Hz / 182 Hz) |
2 |
| speakers named |
3 |
| 5.5 s and 5.1 s samples, both voices set |
4 |
| 3/3 lines fit their slots |
5 |
| track 11.29 s = video 11.29 s, 0 lines sped up |
6 |
|
|
1
00:00:00,000 --> 00:00:00,991
[Marco] Hi everyone.
2
00:00:01,187 --> 00:00:04,815
[Marco] Today we're dubbing this video into another language in one step.
3
00:00:05,389 --> 00:00:09,059
[Lucia] And everyone keeps their own voice, with synced subtitles.A speech-recognition pass over the finished English track reads back "Hi everyone! Today we're dubbing this video into another language in one step, and everyone keeps their own voice with synced subtitles." The male and female voices keep their pitch (about 110 Hz and 170 Hz), so each speaker stays recognisable.
Tools
Tool | What it does |
| Key set (hidden), voice engine reachable, models and limits, ffmpeg and yt-dlp found. Read-only. |
| YouTube URL / video / audio / SRT → project with sentences and speakers ( |
| Pages of lines with speaker and timing; with |
|
|
| Clean 4–14 s sample per speaker + transcript; |
| Saved voice ( |
| Saved voices in your voice engine account. |
| Save |
| Voice all lines, fit them to the timeline, write the track (m4a/mp3/wav), SRT and preview MP4; optional background music. |
| Per-language upload folders + |
| Where everything is. |
Upload multi-language audio tracks to YouTube
YouTube's public Data API cannot upload additional audio tracks, so no tool can do the final click for you. The package makes it a one-minute job per language in YouTube Studio:
Studio → Content → your video → Languages.
Add language → Dub → Add → upload
audio.m4a→ Publish.Subtitles → Add → Upload file → With timing →
captions.srt.Title & description → Add → paste
title.txt/description.txt.
Viewers then choose the track under Settings → Audio track. Multi-language audio is available to channels YouTube has enabled for the feature.
Comparison with other AI dubbing tools
youtube-dubbing-mcp | elevenlabs-mcp | AllVoiceLab-MCP | Auto-Synced-Translated-Dubs | YouTube auto-dubbing | |
Works from an AI agent (MCP) | ✅ | ✅ | ✅ | ❌ (Python scripts) | ❌ |
Dedicated dubbing tool / workflow | ✅ 12 tools | ❌ (TTS, STT, cloning; no dubbing tool) | ✅ one tool | ✅ | ✅ |
One cloned voice per speaker | ✅ automatic from the video | manual | ❌ | ❌ stock voices | ❌ |
Input: YouTube URL | ✅ | ❌ | ❌ | ❌ (needs an SRT) | ✅ (own channel) |
Agent can edit translation before voicing | ✅ with per-line time budgets | — | ❌ | ✅ (manual) | ❌ |
Track length = video, SRT, upload package | ✅ | ❌ | partial | ✅ | built-in |
Resume without duplicate jobs | ✅ | ❌ | ❌ | ❌ | — |
Licence | MIT | MIT | MIT | AGPL-3.0 | proprietary |
Feature status of other projects as read from their repositories and docs in November 2026; corrections welcome.
FAQ
How do I dub a YouTube video into English with AI? Add this server to Claude, Cursor or Codex and ask: "Dub https://youtu.be/… into English, keep each speaker's voice, then make the YouTube upload package." The agent runs the six steps above and you get an English audio track, SRT and upload folder.
Can AI dubbing keep the original speaker's voice?
Yes. dubbing_extract_voice_samples cuts a few seconds of each speaker from the original audio and the voice engine clones it, so every speaker is dubbed in their own voice. Ask the people in the video before cloning their voices.
Can I upload multiple audio tracks to YouTube with the API? No. The YouTube Data API has no endpoint for extra audio tracks, so tracks are added in YouTube Studio → Languages. This server prepares the exact files and steps.
Is there an open-source AI video dubbing tool for multiple speakers? This project is MIT-licensed and handles any number of speakers, each with a separate voice. The voices are rendered by a hosted voice engine, so no GPU is needed.
Can I dub from an SRT file instead of a video?
Yes: dubbing_start_project(source="talk.srt"). Without source audio, choose voices with dubbing_set_voice.
Is this an ElevenLabs dubbing alternative? It is an open-source dubbing workflow for AI agents with per-speaker voice cloning, editable translations and YouTube packaging. The voices come from the Miragea voice engine.
Which languages are supported? Any language your agent can translate into and the voice engine can speak. The demo is Spanish → English; per-language speaking rates are built in for 35+ languages so lines fit their slots.
Does it work offline or need a GPU? It needs internet for the voice engine and YouTube, and no GPU.
Troubleshooting
Problem | Fix |
| Set |
| Add it to the server's |
Some lines report | Shorten those ids with |
Two people were put under one speaker |
|
A tool timed out | Call it again; saved task ids are resumed, nothing is submitted twice. |
Voice sample upload blocked by your network | Host |
ffmpeg not found | It is bundled; set |
Related projects
TTS MCP Server: text-to-speech, voiceover and SRT/VTT captions for AI agents.
Voice Agent Skills: Agent Skills for voiceover and dubbing workflows in Claude Code and Codex.
Live demo page with audio players.
Credits
Voices and transcription by the Miragea voice engine (https://miragea.ai/v1). Agents that support skills can also install its audio skill with: Install https://miragea.ai/skills/miragea-audio/install.md. YouTube access by yt-dlp; audio by FFmpeg.
MIT License.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Transcribe, subtitle and dub videos into 100+ languages, and translate text.
Generate AI voices, text-to-speech, subtitles, transcription, and video localization.
Translate, dub and publish videos to TikTok, YouTube, Instagram and more from your AI agent.
Transcribe, subtitle, dub and lip-sync media; create speech, voices, images and thumbnails.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI-powered translation of YouTube videos into localized versions with synthesized voiceovers and avatar videos. Supports the full content pipeline from transcript extraction and translation to video generation and publishing across social platforms.-
- AlicenseNot gradedqualityCmaintenanceEnables AI video dubbing from any MCP-capable agent: upload a video or provide a URL, submit a dubbing job, poll progress, and download the finished MP4.7MIT

lipdub-mcpofficial
AlicenseAqualityBmaintenanceEnables AI agents to lip-sync video to a different audio track via LipDub 2, including creating renders, checking statuses, and retrieving results.512 npmMIT- AlicenseAqualityCmaintenanceEnables AI video dubbing by letting users submit video URLs for dubbing into Russian, English, or Spanish while preserving original speakers' voices through voice cloning, plus job status and cost estimation tools.41MIT