Add video dubbing to your product.
Create a project from YouTube or a local upload. Track each target language and download its audio, captions, metadata, and thumbnail.
Create a project
One request creates the project and queues every target language.
curl https://api.dittodub.com/v1/dubbing/projects \
--request POST \
--header "Authorization: Bearer $DITTODUB_API_KEY" \
--header "Content-Type: application/json" \
--header "Idempotency-Key: launch-video-1042" \
--data '{
"name": "Launch video",
"source_locale": "en_us",
"target_locales": ["es_mx", "pt_br", "fr_fr"],
"max_billable_seconds": 1800,
"source": {
"type": "youtube",
"url": "https://www.youtube.com/watch?v=VIDEO_ID"
}
}'Dubbing API
Manage each project through the API.
Search connected YouTube channels and existing projects. Check credits, create or add languages, then poll the project for completed files.
/v1/dubbing/localesUse the exact language and dialect identifiers returned by this endpoint.
/v1/dubbing/projectsCreate one YouTube or upload project. Reusing the same idempotency key does not create a duplicate.
/v1/dubbing/youtube/videosSearch connected channels and reuse a matching DittoDub project.
/v1/usageRead total, reserved, and available credits before a paid request.
/v1/dubbing/projects/{id}Read usage, project status, progress for each language, and completed files.
/v1/dubbing/projectsSearch and paginate the projects in a workspace.
/v1/dubbing/projects/{id}/languagesGet an exact quote, then add languages after confirmation.
/v1/dubbing/projects/{id}/transcript-reviewGet an exact quote, then send the English source transcript to Ditto Verified.
Create a YouTube project
Creates one project for the requested languages. The idempotency key prevents duplicates.
curl https://api.dittodub.com/v1/dubbing/projects \
--request POST \
--header "Authorization: Bearer $DITTODUB_API_KEY" \
--header "Content-Type: application/json" \
--header "Idempotency-Key: launch-video-1042" \
--data '{
"name": "Launch video",
"source_locale": "en_us",
"target_locales": ["es_mx", "pt_br", "fr_fr"],
"max_billable_seconds": 1800,
"source": {
"type": "youtube",
"url": "https://www.youtube.com/watch?v=VIDEO_ID"
}
}'How projects run
One project keeps every language together.
The project stores the source, target languages, usage, status, and completed files.
Add the source
Use a YouTube URL or upload a local video. Uploads resume after a dropped connection.
Choose languages
Choose the target languages and dialects.
Track each language
DittoDub validates the source, then translates and dubs each target language.
Download the files
Download dubbed audio, captions, translated metadata, and thumbnails.
Project files
Download each completed language.
A language exposes its files as soon as its status changes to completed.
Dubbed audio
MP3 and WAV
Captions
SRT and VTT
Localized copy
Title and description
Thumbnail
PNG
Looking for MCP?
Connect DittoDub to Codex, Claude, or another AI app.
Works with Codex, Claude, Grok, Cursor, DeepSeek, Kimi, Gemini, Mistral, and Qwen.
See MCPStart your first API project.
Create a service key, choose its permissions, and send a YouTube URL or local upload.