Skip to content

Turn a finished livestream into a VOD. The server concatenates the MUXL segments it recorded for the livestream into a single content blob, derives the playback sidecars, and publishes the place.stream.media.track records. Processing completes server-side and creates a draft VOD; the client does not need to poll or publish — the user publishes the draft later via place.stream.vod.publishDraft. Returns the draft's ats:// URI so the client can navigate to it, alongside an uploadId for backwards compatibility.

POST
/xrpc/place.stream.media.finalizeLivestream
object
livestream
required

AT-URI of the place.stream.livestream record to finalize into a VOD. Must belong to the authenticated user.

string format: uri

Success

object
uploadId
required

Identifier for the finalize job. Retained for backwards compatibility; the draft flow no longer requires the client to poll getUploadStatus.

string
draftUri
required

The ats:// URI of the draft VOD created for this finalize. The draft reaches status ‘ready’ when processing completes; the user publishes it from the Drafts tab via place.stream.vod.publishDraft.

string

Bad Request

object
error
required
One of:
string
message
required
string