# place.stream.playback.getVideoBlob

> Published by [did:web:stream.place](https://lexicon.garden/identity/did:web:stream.place)

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:web:stream.place/place.stream.playback.getVideoBlob)
- [Documentation](https://lexicon.garden/lexicon/did:web:stream.place/place.stream.playback.getVideoBlob/docs)
- [Examples](https://lexicon.garden/lexicon/did:web:stream.place/place.stream.playback.getVideoBlob/examples)

## Definitions

### `place.stream.playback.getVideoBlob`

**Type**: `query`

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.

#### Parameters

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `cid` | `string` | Yes | BLAKE-3 BDASL CID of the requested blob. |
| `did` | `string` (did) | Yes | 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` | No | 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

**Encoding**: `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.

## Raw Schema

```json
{
  "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
}
```
