# social.skyphone.video.meta

> Published by [riyo.skyphone.social](https://lexicon.garden/identity/did:plc:ta347pa3wlmmyymoz56mfmfw)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:ta347pa3wlmmyymoz56mfmfw/social.skyphone.video.meta)
- [Documentation](https://lexicon.garden/lexicon/did:plc:ta347pa3wlmmyymoz56mfmfw/social.skyphone.video.meta/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:ta347pa3wlmmyymoz56mfmfw/social.skyphone.video.meta/examples)

## Definitions

### `social.skyphone.video.meta`

**Type**: `record`

Mutable metadata sidecar for a video. Record key MUST match the rkey of the social.skyphone.video.post record in the same repo, so a reader that holds a video record can fetch its metadata with one getRecord. Editing metadata is a put on this record; the canonical video record stays untouched.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `alt` | `string` | No | Accessibility description of the video content. |
| `tags` | `array` | No | Author-chosen keywords, without a leading hash mark. |
| `thumb` | `blob` | No | Author-supplied custom thumbnail. Absence is normal: an app may generate thumbnails from the video outside the record, so readers SHOULD NOT treat a missing thumb as an error. |
| `title` | `string` | No | Display title of the video. May be absent; clients SHOULD fall back to the announcement post text or a placeholder rather than showing an empty title. |
| `labels` | `union` | No | Self-applied labels for zoning (adult content, graphic media). Readers SHOULD honor these before playback. |
| `subject` | `ref` → `com.atproto.repo.strongRef` | Yes | Strong reference to the social.skyphone.video.post record this metadata describes. |
| `announce` | `ref` → `com.atproto.repo.strongRef` | No | Strong reference to the app.bsky.feed.post announcing this video, if any. |
| `createdAt` | `string` (datetime) | Yes | When the video this metadata describes was created. Kept equal to the video record's createdAt across metadata edits, so readers can order videos by this field alone. |
| `description` | `string` | No | Free-form description of the video. |

## Raw Schema

```json
{
  "id": "social.skyphone.video.meta",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "subject",
          "createdAt"
        ],
        "properties": {
          "alt": {
            "type": "string",
            "description": "Accessibility description of the video content.",
            "maxGraphemes": 1000
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "maxGraphemes": 64
            },
            "maxLength": 8,
            "description": "Author-chosen keywords, without a leading hash mark."
          },
          "thumb": {
            "type": "blob",
            "accept": [
              "image/jpeg",
              "image/png",
              "image/webp"
            ],
            "maxSize": 2000000,
            "description": "Author-supplied custom thumbnail. Absence is normal: an app may generate thumbnails from the video outside the record, so readers SHOULD NOT treat a missing thumb as an error."
          },
          "title": {
            "type": "string",
            "maxLength": 3000,
            "description": "Display title of the video. May be absent; clients SHOULD fall back to the announcement post text or a placeholder rather than showing an empty title.",
            "maxGraphemes": 300
          },
          "labels": {
            "refs": [
              "com.atproto.label.defs#selfLabels"
            ],
            "type": "union",
            "description": "Self-applied labels for zoning (adult content, graphic media). Readers SHOULD honor these before playback."
          },
          "subject": {
            "ref": "com.atproto.repo.strongRef",
            "type": "ref",
            "description": "Strong reference to the social.skyphone.video.post record this metadata describes."
          },
          "announce": {
            "ref": "com.atproto.repo.strongRef",
            "type": "ref",
            "description": "Strong reference to the app.bsky.feed.post announcing this video, if any."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "When the video this metadata describes was created. Kept equal to the video record's createdAt across metadata edits, so readers can order videos by this field alone."
          },
          "description": {
            "type": "string",
            "maxLength": 30000,
            "description": "Free-form description of the video.",
            "maxGraphemes": 3000
          }
        }
      },
      "description": "Mutable metadata sidecar for a video. Record key MUST match the rkey of the social.skyphone.video.post record in the same repo, so a reader that holds a video record can fetch its metadata with one getRecord. Editing metadata is a put on this record; the canonical video record stays untouched."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
