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.
tid
Timestamp-based ID
Properties
activity
union
Optional
The game or activity in the video.
connections
array
of
union
Optional
Related records (e.g. the source livestream for a finalized VOD).
contentRights
ref
place.stream.metadata.contentRights
Optional
No description available.
contentWarnings
ref
place.stream.metadata.contentWarnings
Optional
No description available.
createdAt
string
datetime
Required
An RFC 3339 formatted timestamp.
description
string
Optional
Description of the video.
maxLength: 50000 bytesmaxGraphemes: 5000 graphemesdescriptionFacets
array
of
ref
place.stream.richtext.videoFacet
Optional
Annotations of text (mentions, URLs, etc).
durationMs
integer
Optional
Duration in milliseconds. Filled when status is 'ready'.
error
string
Optional
Error message when status is 'error'.
source
union
Optional
Source tracks. Filled by the server when processing completes (status 'ready').
status
string
Required
Processing state: 'processing' while the job runs, 'ready' when publishable, 'error' if processing failed.
processing, ready, errortags
array
of
string
Optional
Freeform tags (same rules as place.stream.video).
maxLength: 10 itemsthumb
blob
Optional
Thumbnail image. Generated by the server at publish time if absent.
maxSize: 1.0 MBtitle
string
Required
Title of the video. May be a placeholder while processing; the user edits before publishing.
maxLength: 1400 bytesmaxGraphemes: 140 graphemesView raw schema
{
"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."
}