---
title: "Changes to 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."
method: POST
path: "/xrpc/place.stream.media.finalizeLivestream"
---

# Changes to 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`

> Every recorded change to this endpoint, newest first.

## Timeline

Changed in 3 of 52 revisions.

- **2026-06-26** `fd7251637ba9` — 1 info
- **2026-06-07** `2057274d4578` — 1 info
- **2026-01-21** `b21cd7605630` — 1 breaking

## Changes

- **2026-06-26** `fd7251637ba9` — 1 info
  - added the required property `draftUri` to the response with the `200` status
- **2026-06-07** `2057274d4578` — 1 info
  - endpoint added
- **2026-01-21** `b21cd7605630` — 1 breaking
  - api path removed without deprecation

---

[Operation](https://skmtc.dev/streamplace/apis/generated-lexicon-api-schema/docs/xrpc/place.stream.media.finalizeLivestream/post.md) · [API](https://skmtc.dev/streamplace/apis/generated-lexicon-api-schema.md) · [Page](https://skmtc.dev/streamplace/apis/generated-lexicon-api-schema/changes/xrpc/place.stream.media.finalizeLivestream/post)
