Video Dubbing API
Video dubbing API for 21 languages, in each speaker's own voice
Send a video and a target language and get back a dubbed file where each speaker keeps their own voice.
Available now as a local API in the desktop app. Cloud API coming soon.
# 1. Create a project from a video on this computercurl -X POST "http://127.0.0.1:8100/api/v1/dubbing/projects" \ -H "Content-Type: application/json" \ -d '{ "name": "Launch video (French)", "source_video_path": "/Users/you/Videos/launch.mp4", "target_lang": "fr", "clone_voices": true, "keep_background": true }' # 2. Run the dub, then export the video with subtitlescurl -X POST "http://127.0.0.1:8100/api/v1/dubbing/projects/PROJECT_ID/run"curl -X POST "http://127.0.0.1:8100/api/v1/dubbing/projects/PROJECT_ID/export" \ -H "Content-Type: application/json" \ -d '{ "subtitles": true }'What developers build with it
A dub runs transcription, translation, speaker separation and re-voicing in one pipeline. Each segment can be regenerated on its own afterwards.
- Translated versions of a YouTube back catalog, one language per run
- Localized training and product videos without booking voice actors
- A separate dubbed audio track for platforms that support multiple languages
Planning to dub at volume and want it in the cloud?
Endpoints
Dubbing endpoints
| Method | Path | What it does |
|---|---|---|
| POST | /api/v1/dubbing/projects | Create a dub from a video on this computer |
| POST | /api/v1/dubbing/projects/youtube | Create a dub from a YouTube link |
| POST | /api/v1/dubbing/projects/{project_id}/run | Run the dubbing pipeline |
| POST | /api/v1/dubbing/projects/{project_id}/lipsync | Lip sync a finished dub |
| POST | /api/v1/dubbing/projects/{project_id}/export | Export the video, with subtitles if you want them |
Cloud API
Join the cloud API waitlist
We're building a cloud API. Pick the features you need and roughly how much you'd use, and your answers decide which ones come first.
FAQ
Common Questions
21 languages, English included. GET /api/v1/dubbing/translation-languages returns the current list, so your code never sends one that isn't supported.
Yes, when you set clone_voices to true. The pipeline separates the speakers and clones each one, so the dubbed version keeps every voice distinct.
Yes. GET /api/v1/dubbing/projects/{project_id}/audio-url returns the dubbed audio track on its own, for example to upload as an extra language track on YouTube.
Yes. POST /api/v1/dubbing/projects/youtube takes the video's URL and a target language, then creates the dubbing project from it.
Explore
Related APIs
Text to speech
Turn text into speech with preset speakers in 10 languages.
Voice cloning
Clone a voice from a short clip and speak new text with it.
Voice design
Describe a voice in words and generate speech in it.
Speech to text
Transcribe audio with word timestamps and speaker labels.
Subtitles
Generate SRT caption files with word-level timing.
Clips
Cut long videos into short, captioned clips.
AI Cut
Remove silences, filler words and bad takes, then render.
Avatars
Make a lip-synced talking-head video from one photo.
Voice changer
Re-voice a recording while keeping its timing and emotion.
Audiobooks
Narrate a manuscript with a voice for every character.