place.stream.playback.getVideoBlob

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.

Repository @stream.place did:plc:rbvrr34edl5ddpuwcubjiost not from the namespace authority
Details · query
Kindquery
Authorityplayback.stream.place
Indexed

Query

query · GET

Parameters

query string

cid

requiredstring

BLAKE-3 BDASL CID of the requested blob.

did

requiredstring · did

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

string

Opaque playback session identifier, propagated unmodified from the media playlist that referenced this blob. Logged for view-count correlation; not used for access control.

Output

video/mp4

Errors

BlobNotFound

This node doesn't have the requested CID. The caller should consult place.stream.media.origin records to find a node that does.

Similar lexicons

semantic match

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • place.stream.playback.getVideoPlaylist

    query not from the namespace authority

    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.

  • place.stream.playback.getLiveSegment

    query not from the namespace authority

    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 accepted (and ignored) so ffmpeg-based HLS players will fetch it. HTTP Range is honored. Segments are the verbatim signed canonical .m4s, so provenance travels with playback.

  • place.stream.playback.getLivePlaylist

    query not from the namespace authority

    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 getLiveSegment. Segments come from an in-memory sliding window fed as the stream is ingested (or replicated to this node), so a playlist is only available while the stream is live here.

  • Get a blob by its CID from temporary R2 storage. Returns the raw binary content. The authenticated user's temporary blob is retrieved using their DID and the provided CID.

  • place.stream.media.origin

    record not from the namespace authority

    An attestation that a MUXL blob is available for download from the publishing node, retrievable via XRPC (com.atproto.repo.getBlob and similar). Published by the Streamplace node that hosts the blob, not by the user who owns the underlying video. The rkey is conventionally the blob's BDASL CID — atproto lexicon doesn't yet have a literal-rkey syntax so we settle for `key: any` and rely on the convention.