# net.wireservice.component.video

> Published by [wireservice.net](https://lexicon.garden/identity/did:plc:lktj64hp7lc3fzuf6iyy7lwj)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:lktj64hp7lc3fzuf6iyy7lwj/net.wireservice.component.video)
- [Documentation](https://lexicon.garden/lexicon/did:plc:lktj64hp7lc3fzuf6iyy7lwj/net.wireservice.component.video/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:lktj64hp7lc3fzuf6iyy7lwj/net.wireservice.component.video/examples)

## Definitions

### `net.wireservice.component.video`

**Type**: `object`

Video component. Supports blob storage for AT Protocol-native video and optional external URLs (e.g., HLS streams or CDN-hosted MP4). At least one of `video` or `url` should be provided.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `accessibilityCaption` | `string` | No |  |
| `aspectRatio` | `ref` → `net.wireservice.defs#aspectRatio` | No |  |
| `caption` | `array` | No | Visible caption as an array of text runs with optional formatting marks. |
| `explicitContent` | `boolean` | No |  |
| `hidden` | `boolean` | No |  |
| `identifier` | `string` | No |  |
| `layout` | `string` | No |  |
| `stillImage` | `blob` | No | Poster/thumbnail image for the video. |
| `style` | `string` | No |  |
| `url` | `string` (uri) | No | External URL to the video resource (HLS stream, MP4, etc.). Alternative or supplement to the blob. |
| `video` | `blob` | No | The video blob. |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Video component. Supports blob storage for AT Protocol-native video and optional external URLs (e.g., HLS streams or CDN-hosted MP4). At least one of `video` or `url` should be provided.",
      "properties": {
        "accessibilityCaption": {
          "maxGraphemes": 2000,
          "maxLength": 20000,
          "type": "string"
        },
        "aspectRatio": {
          "ref": "net.wireservice.defs#aspectRatio",
          "type": "ref"
        },
        "caption": {
          "description": "Visible caption as an array of text runs with optional formatting marks.",
          "items": {
            "ref": "net.wireservice.defs#textRun",
            "type": "ref"
          },
          "type": "array"
        },
        "explicitContent": {
          "type": "boolean"
        },
        "hidden": {
          "type": "boolean"
        },
        "identifier": {
          "maxLength": 256,
          "type": "string"
        },
        "layout": {
          "maxLength": 256,
          "type": "string"
        },
        "stillImage": {
          "accept": [
            "image/jpeg",
            "image/png",
            "image/webp"
          ],
          "description": "Poster/thumbnail image for the video.",
          "maxSize": 2000000,
          "type": "blob"
        },
        "style": {
          "maxLength": 256,
          "type": "string"
        },
        "url": {
          "description": "External URL to the video resource (HLS stream, MP4, etc.). Alternative or supplement to the blob.",
          "format": "uri",
          "type": "string"
        },
        "video": {
          "accept": [
            "video/mp4",
            "video/webm",
            "video/quicktime"
          ],
          "description": "The video blob.",
          "maxSize": 100000000,
          "type": "blob"
        }
      },
      "type": "object"
    }
  },
  "id": "net.wireservice.component.video",
  "lexicon": 1
}
```
