Publish a playlist
Puts the playlist’s draft on its live stream, replacing what it plays without going off air. Only for a stream that is live: a stream that isn’t plays its playlists as they are when it starts, so edits made before POST /streams//start need no publish (here they are 409 NOT_LIVE). expectedDraftVersion is the version you reviewed (the playlist’s version). Asynchronous: poll GET /playlists/ until publishStatus is IDLE (done) or FAILED. Refusals, by the problem’s code: STALE_DRAFT (409; a newer draft, the problem carries currentVersion: re-read and retry), EMPTY_PLAYLIST, BROKEN_ITEM (an item’s upload is incomplete or removed; carries objectId), METADATA_PENDING (a video’s width and height had not arrived within 40 s; retry), ORIENTATION_CHANGED, RECIPE_MISMATCH, NOT_LIVE (409), NOT_FOUND (404).
Authorizations
OAuth 2.1 authorization-code flow with PKCE.
Headers
Workspace this request operates in — the workspace id (wksp_…) or the organization id, from GET /workspaces. Required with an API key, which carries no workspace (400 WORKSPACE_REQUIRED without it). With an OAuth token it defaults to the workspace the token was issued for. Responds 403 WORKSPACE_FORBIDDEN when the caller is not a current member, rather than falling back to another workspace.
Optional client-generated key. A repeated request with the same key, method and path (by the same caller in the same workspace) replays the original response, with Idempotency-Replayed: true, for 24 hours instead of running again — safe retries. The same key with a different body is refused with 422 IDEMPOTENCY_KEY_REUSED (nothing runs): use a new key for each new request. A 5xx answer is not remembered (a retry runs).
Path Parameters
Resource identifier.