{
"id": "place.stream.vod.draftVideo",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"title",
"status",
"createdAt"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 640,
"maxGraphemes": 64
},
"maxLength": 10,
"description": "Freeform tags (same rules as place.stream.video)."
},
"error": {
"type": "string",
"description": "Error message when status is 'error'."
},
"thumb": {
"type": "blob",
"accept": [
"image/*"
],
"maxSize": 1000000,
"description": "Thumbnail image. Generated by the server at publish time if absent."
},
"title": {
"type": "string",
"maxLength": 1400,
"description": "Title of the video. May be a placeholder while processing; the user edits before publishing.",
"maxGraphemes": 140
},
"source": {
"refs": [
"place.stream.media.defs#sourceTracks",
"place.stream.media.defs#sourceClip"
],
"type": "union",
"description": "Source tracks. Filled by the server when processing completes (status 'ready')."
},
"status": {
"type": "string",
"description": "Processing state: 'processing' while the job runs, 'ready' when publishable, 'error' if processing failed.",
"knownValues": [
"processing",
"ready",
"error"
]
},
"activity": {
"refs": [
"place.stream.defs#activityGame",
"place.stream.defs#activityLabel"
],
"type": "union",
"description": "The game or activity in the video."
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"durationMs": {
"type": "integer",
"description": "Duration in milliseconds. Filled when status is 'ready'."
},
"connections": {
"type": "array",
"items": {
"refs": [
"place.stream.video#connection"
],
"type": "union"
},
"description": "Related records (e.g. the source livestream for a finalized VOD)."
},
"description": {
"type": "string",
"maxLength": 50000,
"description": "Description of the video.",
"maxGraphemes": 5000
},
"contentRights": {
"ref": "place.stream.metadata.contentRights",
"type": "ref"
},
"contentWarnings": {
"ref": "place.stream.metadata.contentWarnings",
"type": "ref"
},
"descriptionFacets": {
"type": "array",
"items": {
"ref": "place.stream.richtext.videoFacet",
"type": "ref"
},
"description": "Annotations of text (mentions, URLs, etc)."
}
}
},
"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."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}