Skip to main content
The Live Streaming API is in early access. Endpoints, request shapes, and stream-type identifiers may change. Contact [email protected] to enable it on your account.

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).
Under the hood the API drives a live-broadcast orchestration provider on your behalf. You never authenticate to that provider directly — you use your standard Deepdub x-api-key.

Base URL

Authentication is the same 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 by GET /live/enums/input-stream-types:

Output stream types

Returned by GET /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 inside config. Call these when constructing a service to get the currently supported identifiers.

Captions WebSocket

Real-time caption fan-out for a running service.
Query parameters:
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.
On connect the server first sends a 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, PUT an existing service to change its source instead of creating a new one, or DELETE unused ones.
  • The API is regional. Prefer https://restapi.deepdub.ai/live for 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 beyond Deepdub.