Skip to content
Catalog

cn8/dubbing

Dub a video in two stages built around review-before-spend. Stage 1 (script) takes only a video

Learn more about Dubbing
Videoasync (job)Instant previewaudiovideodubbing
  1. 1Video
  2. 2Script
  3. 3Render

Dub a video

The dialogue is transcribed and translated into editable, time-coded lines first — nothing is voiced until you approve it.

Dialogue is transcribed and translated into this language; lines already in it keep the original voice.

0.15/s of video for the script · rendering later 0.5/s + text-to-speech at 4/spoken second. Totals appear once the duration is known.

Overview

Dub a video in two stages built around review-before-spend. Stage 1 (script) takes only a video URL: speech is transcribed with word-accurate timing, then translated into the target language by a strong LLM, giving you time-coded dub lines you can edit line by line. Stage 2 (render) voices each approved line through core-tts on your own key, time-fits it to its slot, and mixes it onto the video — the original soundtrack stays untouched except while a line plays, when it ducks under the new speech, so music and ambience survive. You get back both the dubbed MP4 and its audio track. Dialogue already in the target language is detected and left alone. Both stages run as async jobs (poll /v2/jobs/{id} or attach a webhook).

Key capabilities

Script, then render

Stage 1 returns the translated script as editable text with exact timings. Nothing is synthesized — and no synthesis cost is incurred — until you approve the lines and render.

Word-accurate timing

Dub lines anchor to the real speech window measured from word-level timestamps, not padded segment spans — the dub starts where the sentence is actually spoken.

The original soundtrack survives

Only while a dub line plays does the original duck (to 0.15 by default); everywhere else it passes through untouched. Music, ambience and untranslated dialogue stay.

Video and audio out

Render returns the dubbed MP4 and the same mix as a standalone audio file.

When to use it

Localizing product and marketing video

Ship the same video in multiple languages with an editable translation step in the middle.

Course and training catalogs

Batch-generate scripts, have translators review the text, render only approved cuts.

Same-language accessibility

Combine with the audio-description product — the script stage there produces dub and description lines in one pass.

Input & output

input

Script: a video URL + target_language. Render: the same video URL plus the reviewed segments array, with optional per-line enabled flags and voice options.

JSON bodyvideo URL (mp4/webm/mov via upload-media media_type=video)

output

Script: time-coded dub lines (start_ms, target_duration_ms, source_text, text, same_language). Render: video_url (dubbed MP4) + audio_url (the mix as m4a) + render stats.

JSON (script)S3 MP4 + M4A (presigned GET URLs)

Specs

Latency
Script: transcription + translation only — much faster than the audio-description script since no visual analysis runs. Render: ~10–60s per minute of video. Both async.
Async
true
Rate Limit
100 req/s per API key — applied to job submission.
Max Input
2 GB per source video.

Schema

Request body

video_urlrequiredstring

Public URL of the source video. Transcription runs upstream, so this is the only input needed.

target_languagerequiredstring

Language the dialogue is translated into (ISO code). Voices exist for 13 languages — list them free with GET core-tts-voices (dutch, english, french, german, hindi, indonesian, italian, japanese, korean, mandarin, portuguese, spanish, turkish; arabic via the minimax provider).

languagestring

Source language. Detected automatically when omitted.

expected_durationnumber

Video length in seconds. Only affects how many credits are held while the job runs — billing always uses the real duration.

Pricing

Both stages billed per second of video; each synthesized line is billed as regular core-tts usage on your account.

ServiceUnitPrice
Dubbing Scriptsecond$0.0015/sec
Dubbing Rendersecond$0.005/sec + core-tts

Async jobs are billed only when they complete successfully.

A one-minute video: script ≈ 9 credits, render ≈ 30 credits + core-tts for the spoken lines (4 credits per spoken second).

FAQ

Related models