Skip to main content
POST
Create a dubbing job

Authorizations

Authorization
string
header
required

Use Authorization: Bearer pyai_live_... (or pyai_test_...).

Body

multipart/form-data
file
file
required

Source audio or video. Provide this or source_url, never both. The multipart upload limit is 200 MiB.

source_url
string<uri>

A publicly reachable media URL. Provide this or file, never both.

source_lang
enum<string>
default:en

Canonical source-language code. These are accepted input codes, not output languages. English-to-Hindi audio is the published tested workflow.

Available options:
en,
es,
fr,
de,
hi,
it,
pt,
nl
target_lang
enum<string>
default:hi

Output language. Hindi is currently enabled.

Available options:
hi
single_speaker
boolean

Use when the recording contains one speaker. This does not establish a speaker's identity.

timing
enum<string>

natural uses conversational gaps; source preserves source starts and duration. Default: natural for audio, source for video or background-preserving requests.

Available options:
natural,
source
preserve_background
boolean

Request background preservation where available; unavailable processing is rejected rather than silently ignored.

transcript
string

Optional JSON object encoded as a form-field string: {segments:[{speaker,start,end,text}]}, with start/end in source seconds. Supplies transcription while Dub still translates and renders the speech.

speaker_map
string

Optional JSON object encoded as a form-field string, mapping speaker IDs to voice IDs or male/female voice hints. Prefer speaker_voices for explicit registered voices; conflicting overrides are rejected.

glossary
string

Optional JSON object encoded as a form-field string, mapping source terms to their intended target-language form.

speaker_voices
string

Optional JSON object encoded as a form-field string, mapping speaker IDs to registered voice IDs. Unknown or unavailable voices are rejected.

webhook_url
string<uri>

Optional public HTTPS endpoint for completion notification. Keep polling as the status source of truth.

Maximum string length: 2048

Response

Dubbing job queued.

job_id
string
required
Example:

"dub_example"

status
enum<string>
required
Available options:
queued
status_url
string
required

Relative path on api.pyai.com. Requires the same product key.

Example:

"/v1/dub/jobs/dub_example"