full diff

place.stream.playback.getVideoPlaylist

stream.place +2 −1
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": null
2627 },
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": 1
6162}