Overview
The Live Streaming API turns a broadcast video feed into live translated captions and dubbed audio in one or more target languages. You point Deepdub at your source stream (HLS, SRT, RTMP, or CMAF), pick target languages and voices, and receive back:- Captions in the target languages, delivered as an HLS WebVTT subtitle track and available in real time via WebSocket.
- Dubbed audio rendered by Deepdub’s TTS engine and packaged back into a broadcast output (HLS, SRT, or RTMP).
x-api-key.
Base URL
x-api-key header used everywhere else in the Deepdub API. See Authentication.
Concepts
Service
A running or startable pipeline that ingests one source and produces one or more output streams. Services are long-lived resources that you
create once and start / stop as needed. Accounts have a limit on the number of defined services — reuse and update them rather than creating a new one per broadcast.Input source
The upstream broadcast feed. Selected by an input stream type (e.g.
HlsPullSource, SrtPushSource).Output
Where translated captions and/or dubbed audio are delivered. Each service can have one or more outputs of types compatible with the chosen input.
Translation
A
(language, TTS engine, voice) triple. Multiple translations can run on the same service to produce several target languages simultaneously.Supported stream types
This matrix is dynamic — always call the enum endpoints below for the authoritative list. The values shown reflect what is enabled at the time of writing.
Input stream types
Returned byGET /live/enums/input-stream-types:
Output stream types
Returned byGET /live/enums/output-stream-types/{inputStreamType}. The available outputs depend on the input. As of writing:
608 refers to CEA-608 line-21 captions embedded into the video output.
Endpoints
Services
CRUD and lifecycle for live services.The service
config object is deep and evolves — build it by fetching a known-good service with GET /live/services/{id} and modifying the fields you need, then send it back with PUT. Deepdub Support can share a starter template if you don’t have one yet.Enums
Read-only endpoints for the discriminated unions that appear insideconfig. Call these when constructing a service to get the currently supported identifiers.
Captions WebSocket
Real-time caption fan-out for a running service.string
required
BCP-47 language tag of the caption track to subscribe to (for example
es, fr-FR, de).string
Optional explicit HLS WebVTT subtitle playlist URL. Only needed if the service’s caption output URL can’t be discovered automatically from its config.
hello frame with the resolved playlist URL, then a stream of caption frames as new cues appear. A heartbeat frame is emitted every few seconds when no cues are pending.
Quick start
1
Discover supported stream types
2
List existing services
3
Fetch a template service
Pick one with a working
config and use it as your starting point:4
Create or update a service
To adjust the input URL on an existing service (no new slot):Or create a new one:
5
Start and monitor
6
Delete when no longer needed
Accounts are capped on the number of defined services (active or not). Delete or archive unused ones to free slots:
Errors
Errors are proxied from the underlying orchestration provider and normalized to standard HTTP codes:Notes and limits
- Accounts have a soft cap on the number of defined services (typically 10) regardless of whether they are running. If you hit the cap,
PUTan existing service to change its source instead of creating a new one, orDELETEunused ones. - The API is regional. Prefer
https://restapi.deepdub.ai/livefor accounts in North America and use the EU host (https://eu-restapi.deepdub.ai/live) once your account is provisioned there. - Live pipelines are billed separately from batch TTS. Contact
[email protected]for pricing and to enable additional TTS engines beyondDeepdub.
