Skip to content

place.stream.playback.getVideoPlaylist

Lexicon Version: 1

Type: query

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.

Parameters:

NameTypeReq’dDescriptionConstraints
uristringAT-URI of the record to play back (e.g. at://did:plc:…/place.stream.video/).Format: at-uri
trackstringTrack ID (stringified u32 matching the MUXL container) for a single-track media playlist. Omit for the master playlist.
startintegerStart 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).
endintegerEnd time in milliseconds. Omit to include all remaining content. Local to the clip’s timeline when playing back a sourceClip record.
sidstringOpaque 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.

Output:

  • Encoding: */*
  • Schema:

Schema not defined. Possible Errors:

  • VideoNotFound: No record indexed at the supplied AT-URI.
  • TrackNotFound: The requested track ID is not present in the video’s blob.
  • BlobNotFound: The record references a blob this node hasn’t indexed an origin for.
  • UnsupportedCollection: The AT-URI points at a collection this endpoint doesn’t know how to play back.

{
"lexicon": 1,
"id": "place.stream.playback.getVideoPlaylist",
"defs": {
"main": {
"type": "query",
"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.",
"parameters": {
"type": "params",
"required": ["uri"],
"properties": {
"uri": {
"type": "string",
"format": "at-uri",
"description": "AT-URI of the record to play back (e.g. at://did:plc:.../place.stream.video/<rkey>)."
},
"track": {
"type": "string",
"description": "Track ID (stringified u32 matching the MUXL container) for a single-track media playlist. Omit for the master playlist."
},
"start": {
"type": "integer",
"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)."
},
"end": {
"type": "integer",
"description": "End time in milliseconds. Omit to include all remaining content. Local to the clip's timeline when playing back a sourceClip record."
},
"sid": {
"type": "string",
"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."
}
}
},
"output": {
"encoding": "*/*"
},
"errors": [
{
"name": "VideoNotFound",
"description": "No record indexed at the supplied AT-URI."
},
{
"name": "TrackNotFound",
"description": "The requested track ID is not present in the video's blob."
},
{
"name": "BlobNotFound",
"description": "The record references a blob this node hasn't indexed an origin for."
},
{
"name": "UnsupportedCollection",
"description": "The AT-URI points at a collection this endpoint doesn't know how to play back."
}
]
}
}
}