Skip to main content
POST
Create Video Translation
Create a video translation job to translate your video content into one or multiple target languages. The API supports automatic source language detection, automatic voice selection, lip-sync, and various caption options.
The merge_interval and face_enhance parameters have been deprecated and are no longer supported.

Voice Selection

The API selects the voice type separately for each target language:
  • Original voice clone (voice_type: 0): Used when the target language exactly matches one of the following codes: en, fr, zh, ar, bg, hr, cs, da, nl, fil, fi, de, el, hi, hu, id, it, ja, ko, ms, nb, pl, pt, ro, ru, sk, es, sv, ta, tr, uk, vi.
  • AI voice (voice_type: 2): Used for target language codes outside this list.
Matching uses the exact language code. For example, zh selects original voice cloning, while zh-CN selects AI voice. For comma-separated targets, use language codes without surrounding spaces. You can provide optional voice settings in voices_map, keyed by target language. The server overrides any supplied voice_type according to the rules above and passes the resulting settings to the translation service. This endpoint does not read an ai_voice request parameter. A voice_id is not required by the current OpenAPI request validation.

Video Duration

/api/open/v3/content/video/createbytranslate does not enforce a 60-second duration limit in the current OpenAPI validation. Shorter videos may reduce processing time; keeping videos under 60 seconds is a recommendation, not a request requirement. Downstream processing constraints may still apply. The separate legacy endpoint /api/open/v3/content/video/translate rejects videos longer than 60 seconds. This restriction does not apply to the Create Video Translation endpoint documented here.

Authorizations

x-api-key
string
header
required

Body

application/json
url
string
required

The video URL address you want to translate. Current OpenAPI validation does not enforce a 60-second duration limit; shorter videos are recommended for faster processing.

language
string
required

Target language(s) for translation. For multiple languages, separate with commas without surrounding spaces (e.g., "ja,zh-CN-shandong,zh-CN-sichuan"). Exact matches to en, fr, zh, ar, bg, hr, cs, da, nl, fil, fi, de, el, hi, hu, id, it, ja, ko, ms, nb, pl, pt, ro, ru, sk, es, sv, ta, tr, uk, vi use original voice cloning (voice_type 0). Other target codes use AI voice (voice_type 2). For example, zh uses voice_type 0, while zh-CN uses voice_type 2.

source_language
string
default:DEFAULT

The original language of the video. Use "DEFAULT" for automatic language detection, or specify a language code (e.g., "en" for English, "zh" for Chinese, "es" for Spanish)

lipsync
boolean
default:false

Enable synchronized mouth movements with the audio track in translated video

webhookUrl
string

Callback URL address for HTTP notifications when processing completes

speaker_num
integer
default:0

Number of speakers in the video (0 = Auto Detect)

remove_bgm
boolean
default:false

Whether to remove background music from the video

caption_type
enum<integer>
default:0

Caption handling: 0=none, 1=add original subtitle, 2=add target subtitle, 3=translate and replace original subtitle, 4=add translated subtitle

Available options:
0,
1,
2,
3,
4
caption_url
string

Subtitle file URL (supports SRT or ASS files)

voices_map
object

Optional voice settings keyed by exact target language code. The server sets the language and overrides voice_type for each target according to the language selection rules. The current OpenAPI validation does not require voice_id.

studio_voice
object

Advanced voice and translation settings

dynamic_duration
boolean
default:false

Control the dynamic duration of the video

Response

200 - application/json

Video translation request submitted successfully

code
integer

Business status code (1000 = success)

msg
string

Status message

data
object