{
"id": "place.stream.playback.getVideoBlob",
"defs": {
"main": {
"type": "query",
"errors": [
{
"name": "BlobNotFound",
"description": "This node doesn't have the requested CID. The caller should consult place.stream.media.origin records to find a node that does."
}
],
"output": {
"schema": null,
"encoding": "video/mp4"
},
"parameters": {
"type": "params",
"required": [
"did",
"cid"
],
"properties": {
"cid": {
"type": "string",
"description": "BLAKE-3 BDASL CID of the requested blob."
},
"did": {
"type": "string",
"format": "did",
"description": "DID of the account that owns the record this blob is being served for. Used for egress/usage accounting, not for access control — the blob is served purely by CID."
},
"sid": {
"type": "string",
"description": "Opaque playback session identifier, propagated unmodified from the media playlist that referenced this blob. Logged for view-count correlation; not used for access control."
}
}
},
"description": "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` headers are honored; HLS media playlists generated by getVideoPlaylist reference this endpoint with `EXT-X-BYTERANGE` to serve segments out of the primary blob. The `did` identifies the owning account for egress accounting: the blob itself is content-addressed and owner-agnostic, so the caller carries the attribution."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}