From
bafyreiesek2i3uiec5442muj2mq76ty4tys4uewzndpusz3qzmyz5xah4q
indexed 2026-11-04 01:29 UTC
View this version
To
bafyreibbr3cpcwtwtv72q4zixawvlkipyarucmtdi3kagmrwpmylt45gz4
indexed 2026-08-20 16:30 UTC
View this version
Compatibility
backward compatible Backward compatible. 2 non-breaking changes.
Non-breaking changes (2)
- AddedVertex AddedVertex { vertex_id: "place.stream.playback.getVideoPlaylist:output" }
- AddedEdge AddedEdge { src: "place.stream.playback.getVideoPlaylist", tgt: "place.stream.playback.getVideoPlaylist:output", kind: "prop", name: Some("output") }
Migration guidance
Added
AddedVertex { vertex_id: "place.stream.playback.getVideoPlaylist:output" }
Notes
- Non-breaking: AddedEdge { src: "place.stream.playback.getVideoPlaylist", tgt: "place.stream.playback.getVideoPlaylist:output", kind: "prop", name: Some("output") }
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"main": {55
"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.",66
"errors": [77
{88
"description": "No record indexed at the supplied AT-URI.",99
"name": "VideoNotFound"1010
},1111
{1212
"description": "The requested track ID is not present in the video's blob.",1313
"name": "TrackNotFound"1414
},1515
{1616
"description": "The record references a blob this node hasn't indexed an origin for.",1717
"name": "BlobNotFound"1818
},1919
{2020
"description": "The AT-URI points at a collection this endpoint doesn't know how to play back.",2121
"name": "UnsupportedCollection"2222
}2323
],2424
"output": {25
"encoding": "*/*"25
"encoding": "*/*",26
"schema": null2627
},2728
"parameters": {2829
"properties": {2930
"end": {3031
"description": "End time in milliseconds. Omit to include all remaining content. Local to the clip's timeline when playing back a sourceClip record.",3132
"type": "integer"3233
},3334
"sid": {3435
"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.",3536
"type": "string"3637
},3738
"start": {3839
"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).",3940
"type": "integer"4041
},4142
"track": {4243
"description": "Track ID (stringified u32 matching the MUXL container) for a single-track media playlist. Omit for the master playlist.",4344
"type": "string"4445
},4546
"uri": {4647
"description": "AT-URI of the record to play back (e.g. at://did:plc:.../place.stream.video/<rkey>).",4748
"format": "at-uri",4849
"type": "string"4950
}5051
},5152
"required": [5253
"uri"5354
],5455
"type": "params"5556
},5657
"type": "query"5758
}5859
},5960
"id": "place.stream.playback.getVideoPlaylist",6061
"lexicon": 16162
}