Skip to content

Bake a subtitle track into the video

POST
/assets/{id}/burn-subtitles

Enqueues a subtitle.burn job that re-encodes the source video with the named track baked into the pixel grid. The result is a new asset linked back to the source via metadata.video.burned_from. Use this for exports to platforms that don’t honour <track kind="subtitles"> (Twitter / IG uploads, embedded video on non-HTML5 surfaces).

This endpoint is a stub: it enqueues the job and returns 202 with the job id, but the worker surfaces a TerminalError because the ffmpeg integration is not implemented yet. When it is, the job result will carry the new asset id.

422 when the asset’s renderable kind isn’t audio/video (image / 3D / document assets reject up-front).

id
required
string format: uuid
object
lang
required

The (asset, lang) track to bake in. Must match an existing track on the asset.

string

Burn job enqueued.

object
job_id
required

The enqueued jobs.* row id. Poll /jobs/{id} for status.

string format: uuid

Malformed request

object
error
required

Human-readable error summary

string
Example
the request could not be completed

Authentication required, missing, or invalid

object
error
required

Human-readable error summary

string
Example
the request could not be completed
Example
{
"error": "authentication required: sign in and retry with a valid session or API token"
}

Resource not found

object
error
required

Human-readable error summary

string
Example
the request could not be completed

Request shape is valid but the action doesn’t apply (e.g. subtitles on a non-video/audio asset).

object
error
required

Human-readable error summary

string
Example
the request could not be completed