
Dubs a video into 24 languages with lip-sync matched voices, returning one finished video per language plus optional subtitle tracks.
Dubs a video into 24 languages with lip-sync matched voices, returning one finished video per language plus optional subtitle tracks.
sonilo-video-translation/v1/videos/generationssonilo-dubbingsonilo/sonilo-video-translationLive pay-as-you-go rates from the EmpirioLabs catalog. You are billed only for what you use, with no monthly minimum.
Sonilo Video Translation runs through POST /v1/videos/generations. The request returns a job_id right away; poll GET /v1/jobs/{job_id} until the job completes and read the output URLs from the result. Get an API key from the EmpirioLabs dashboard.
curl https://api.empiriolabs.ai/v1/videos/generations \
-H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sonilo-video-translation",
"prompt": "Describe what you want Sonilo Video Translation to generate."
}'curl https://api.empiriolabs.ai/v1/jobs/JOB_ID \
-H "Authorization: Bearer $EMPIRIOLABS_API_KEY"import requests
response = requests.post(
"https://api.empiriolabs.ai/v1/videos/generations",
headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
json={
"model": "sonilo-video-translation",
"prompt": "Describe what you want Sonilo Video Translation to generate.",
},
)
job = response.json()
# Generation runs as an async job. Poll until it completes.
import time
while True:
status = requests.get(
f"https://api.empiriolabs.ai/v1/jobs/{job['job_id']}",
headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
).json()
if status.get("status") in ("completed", "failed"):
print(status)
break
time.sleep(5)Request parameters supported by the Sonilo Video Translation API on EmpirioLabs. Defaults apply when a field is omitted.
| Parameter | Type | Default | Range / values | Description |
|---|---|---|---|---|
| languages | string | ["zh_cn","es","fr"] | - | JSON array of target language codes. One dubbed video is returned per language, and the request is billed per language. Supported: en, zh_cn, ja, ko, pt, pt_br, es,... |
| export_srt | boolean | false | - | Also return the re-timed subtitle track for each language alongside the dubbed video. |
| video_url | string | - | - | Source video, as a publicly reachable URL. Up to 300MB and 5 minutes, and it must carry a speech audio track. |
en, zh_cn, ja, ko, pt, pt_br, es, es_419, de, fr, it, ru, th, ar, tr, vi, id, ta, ml, kn, gu, pa_in, sd_in, hi
Supports source video, a list of target languages, and an option to return the re-timed subtitle track for each language.
On EmpirioLabs, Sonilo Video Translation is billed pay as you go: Video translation $0.11634 per second per language. The live rate card on this page always matches what the API charges.
Sonilo Video Translation is served through POST /v1/videos/generations on api.empiriolabs.ai with standard bearer-token authentication.
Yes. The EmpirioLabs playground runs Sonilo Video Translation in the browser with the same parameters the API exposes, so you can test prompts before writing code.
Create an EmpirioLabs account, then generate a key under API Keys in the dashboard. Billing is pay-as-you-go credits, so you only pay for the requests you make.
Check out our pricing or reach out if you want your own model deployed on our stack.