Create a localization from a media URL
Start localizing a video from a URL. Poll GET /localizations/{localization_id} until done is true.
Required scope: localization:write (in Studio: Localization (write))
Authentication
Your Synthesia API key.
- Send it as
Authorization: Bearer <key>; a bare key also works. - An endpoint that needs a scope names it in its description; Scopes lists them all.
- A
:writescope also satisfies the same resource’s:read. - Without the scope, the request fails with a 403
insufficient_scope.
Request
A presigned S3 HTTPS URL for the video to localize, with the bucket in the host (https://<bucket>.s3.<region>.amazonaws.com/...). Other URLs are not supported yet.
The language spoken in the video, from GET /localizations/languages?supports=dubbing_source, or auto to detect it.
The languages to localize into, from GET /localizations/languages?supports=dubbing_target. Each language once.
Whether to lip-sync the localized videos. Lip-sync costs extra credit and needs a plan that includes it: without it, adding locales is refused, and a new localization fails once processed.
adaptive adjusts the video’s speed to fit the translation; original keeps the source’s duration.
Response headers
Response
The localization id, prefixed l10n_….
queued while the source video is fetched, processing once localization starts, then completed or failed.
Why the localization failed. Branch on its code: moderation or processing_error. More codes may be added. Null unless the status is failed.
True once status is terminal, whatever the outcome. Poll until it is true, then read status.