place.stream.playback.getVideoPlaylist
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Get an HLS CMAF playlist for a video. Returns a master playlist when `track` is omitted, or a single-track media playlist when `track` is supplied. The playlist references each segment + per-track init segment via getVideoBlob, addressed by content hash. The `uri` is an AT-URI pointing at a playable record — today only place.stream.video records are supported, but the surface is collection-agnostic so other record types can join later.",
"errors": [
{
"description": "No record indexed at the supplied AT-URI.",
"name": "VideoNotFound"
},
{
"description": "The requested track ID is not present in the video's blob.",
"name": "TrackNotFound"
},
{
"description": "The record references a blob this node hasn't indexed an origin for.",
"name": "BlobNotFound"
},
{
"description": "The AT-URI points at a collection this endpoint doesn't know how to play back.",
"name": "UnsupportedCollection"
}
],
"output": {
"encoding": "*/*",
"schema": null
},
"parameters": {
"properties": {
"end": {
"description": "End time in milliseconds. Omit to include all remaining content. Local to the clip's timeline when playing back a sourceClip record.",
"type": "integer"
},
"sid": {
"description": "Opaque playback session identifier. Omit on the master playlist request; the server generates one and embeds it in every sub-playlist URL it returns. Players never have to construct it themselves — they just follow the URLs the master playlist hands them, which carry the sid into media-playlist + segment requests. Used downstream to correlate a player's playlist + segment fetches for view-count accounting.",
"type": "string"
},
"start": {
"description": "Start time in milliseconds from the beginning of the video. Defaults to 0. For a place.stream.video record whose source is a place.stream.media.defs#sourceClip, this is in the clip's local timeline (0 == the clip's start).",
"type": "integer"
},
"track": {
"description": "Track ID (stringified u32 matching the MUXL container) for a single-track media playlist. Omit for the master playlist.",
"type": "string"
},
"uri": {
"description": "AT-URI of the record to play back (e.g. at://did:plc:.../place.stream.video/<rkey>).",
"format": "at-uri",
"type": "string"
}
},
"required": [
"uri"
],
"type": "params"
},
"type": "query"
}
},
"id": "place.stream.playback.getVideoPlaylist",
"lexicon": 1
}
Metadata
- DID
-
did:plc:gqtagsooi75obldmytuow57q - CID
-
bafyreibbr3cpcwtwtv72q4zixawvlkipyarucmtdi3kagmrwpmylt45gz4 - Indexed At
- 2026-08-20 16:30 UTC
- AT-URI
-
at://did:plc:gqtagsooi75obldmytuow57q/com.atproto.lexicon.schema/place.stream.playback.getVideoPlaylist
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
Get an HLS CMAF playlist for a live stream. Returns a master playlist when `track` is omitted, or a single-track media playlist when `track` is supplied. The playlist references each segment + per-track init segment via…
-
Fetch a content-addressed MUXL playback blob by CID. Serves either a primary fMP4 archive or a per-track init segment — both are CID-addressed and indistinguishable from the endpoint's point of view. HTTP `Range` head…
-
Fetch a single live HLS segment, or a track's init segment, from the in-memory live window. `seg` is `init` for the EXT-X-MAP init segment, otherwise the segment's media-sequence number; a cosmetic `.m4s` suffix is acce…
-
Get a hydrated view of a place.stream.video record — the record itself plus author info plus aggregated view counts summed across every reporting node we've indexed. View counts come from place.stream.media.viewCount …
-
Get available playback servers for a livestream.