place.stream.vod.draftVideo
Lexicon Version: 1
Definitions
Section titled “Definitions”Type: record
A draft VOD: pre-publication video metadata and processing state. Modeled as a permissioned-data-style record (CBOR-serialized, addressed by an ats:// URI) stored in statedb until the permissioned-data spec ships (bluesky-social/proposals PR #94, the 0016-permissioned-data proposal). Publishing promotes it to a public place.stream.video record.
Record Key: tid
Record Properties:
| Name | Type | Req’d | Description | Constraints |
|---|---|---|---|---|
title | string | ✅ | Title of the video. May be a placeholder while processing; the user edits before publishing. | Max Length: 1400 Max Graphemes: 140 |
description | string | ❌ | Description of the video. | Max Length: 50000 Max Graphemes: 5000 |
descriptionFacets | Array of place.stream.richtext.videoFacet | ❌ | Annotations of text (mentions, URLs, etc). | |
thumb | blob | ❌ | Thumbnail image. Generated by the server at publish time if absent. | Accept: image/*Max Size: 1000000 bytes |
source | Union of:place.stream.media.defs#sourceTracksplace.stream.media.defs#sourceClip | ❌ | Source tracks. Filled by the server when processing completes (status ‘ready’). | |
durationMs | integer | ❌ | Duration in milliseconds. Filled when status is ‘ready’. | |
activity | Union of:place.stream.defs#activityGameplace.stream.defs#activityLabel | ❌ | The game or activity in the video. | |
tags | Array of string | ❌ | Freeform tags (same rules as place.stream.video). | Max Items: 10 |
connections | Array of Union of:place.stream.video#connection | ❌ | Related records (e.g. the source livestream for a finalized VOD). | |
contentWarnings | place.stream.metadata.contentWarnings | ❌ | ||
contentRights | place.stream.metadata.contentRights | ❌ | ||
status | string | ✅ | Processing state: ‘processing’ while the job runs, ‘ready’ when publishable, ‘error’ if processing failed. | Known Values: processing, ready, error |
error | string | ❌ | Error message when status is ‘error’. | |
createdAt | string | ✅ | Format: datetime |
Lexicon Source
Section titled “Lexicon Source”{ "lexicon": 1, "id": "place.stream.vod.draftVideo", "defs": { "main": { "type": "record", "key": "tid", "description": "A draft VOD: pre-publication video metadata and processing state. Modeled as a permissioned-data-style record (CBOR-serialized, addressed by an ats:// URI) stored in statedb until the permissioned-data spec ships (bluesky-social/proposals PR #94, the 0016-permissioned-data proposal). Publishing promotes it to a public place.stream.video record.", "record": { "type": "object", "required": ["title", "status", "createdAt"], "properties": { "title": { "type": "string", "maxLength": 1400, "maxGraphemes": 140, "description": "Title of the video. May be a placeholder while processing; the user edits before publishing." }, "description": { "type": "string", "maxLength": 50000, "maxGraphemes": 5000, "description": "Description of the video." }, "descriptionFacets": { "type": "array", "description": "Annotations of text (mentions, URLs, etc).", "items": { "type": "ref", "ref": "place.stream.richtext.videoFacet" } }, "thumb": { "type": "blob", "accept": ["image/*"], "maxSize": 1000000, "description": "Thumbnail image. Generated by the server at publish time if absent." }, "source": { "type": "union", "refs": [ "place.stream.media.defs#sourceTracks", "place.stream.media.defs#sourceClip" ], "description": "Source tracks. Filled by the server when processing completes (status 'ready')." }, "durationMs": { "type": "integer", "description": "Duration in milliseconds. Filled when status is 'ready'." }, "activity": { "type": "union", "description": "The game or activity in the video.", "refs": [ "place.stream.defs#activityGame", "place.stream.defs#activityLabel" ] }, "tags": { "type": "array", "maxLength": 10, "description": "Freeform tags (same rules as place.stream.video).", "items": { "type": "string", "maxLength": 640, "maxGraphemes": 64 } }, "connections": { "type": "array", "description": "Related records (e.g. the source livestream for a finalized VOD).", "items": { "type": "union", "refs": ["place.stream.video#connection"] } }, "contentWarnings": { "type": "ref", "ref": "place.stream.metadata.contentWarnings" }, "contentRights": { "type": "ref", "ref": "place.stream.metadata.contentRights" }, "status": { "type": "string", "knownValues": ["processing", "ready", "error"], "description": "Processing state: 'processing' while the job runs, 'ready' when publishable, 'error' if processing failed." }, "error": { "type": "string", "description": "Error message when status is 'error'." }, "createdAt": { "type": "string", "format": "datetime" } } } } }}