full diff

place.stream.vod.draftVideo

stream.place +0 −0
From
bafyreidqwxjjoty3rmbtxindsug3aumzljuyfki4olcptbuz4j3ynjjluu indexed 2026-11-04 01:29 UTC View this version
To
bafyreidqwxjjoty3rmbtxindsug3aumzljuyfki4olcptbuz4j3ynjjluu indexed 2026-11-04 01:29 UTC View this version

Compatibility

backward compatible No changes detected.

Changes

11{
22 "$type": "com.atproto.lexicon.schema",
33 "defs": {
44 "main": {
55 "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.",
66 "key": "tid",
77 "record": {
88 "properties": {
99 "activity": {
1010 "description": "The game or activity in the video.",
1111 "refs": [
1212 "place.stream.defs#activityGame",
1313 "place.stream.defs#activityLabel"
1414 ],
1515 "type": "union"
1616 },
1717 "connections": {
1818 "description": "Related records (e.g. the source livestream for a finalized VOD).",
1919 "items": {
2020 "refs": [
2121 "place.stream.video#connection"
2222 ],
2323 "type": "union"
2424 },
2525 "type": "array"
2626 },
2727 "contentRights": {
2828 "ref": "place.stream.metadata.contentRights",
2929 "type": "ref"
3030 },
3131 "contentWarnings": {
3232 "ref": "place.stream.metadata.contentWarnings",
3333 "type": "ref"
3434 },
3535 "createdAt": {
3636 "format": "datetime",
3737 "type": "string"
3838 },
3939 "description": {
4040 "description": "Description of the video.",
4141 "maxGraphemes": 5000,
4242 "maxLength": 50000,
4343 "type": "string"
4444 },
4545 "descriptionFacets": {
4646 "description": "Annotations of text (mentions, URLs, etc).",
4747 "items": {
4848 "ref": "place.stream.richtext.videoFacet",
4949 "type": "ref"
5050 },
5151 "type": "array"
5252 },
5353 "durationMs": {
5454 "description": "Duration in milliseconds. Filled when status is 'ready'.",
5555 "type": "integer"
5656 },
5757 "error": {
5858 "description": "Error message when status is 'error'.",
5959 "type": "string"
6060 },
6161 "source": {
6262 "description": "Source tracks. Filled by the server when processing completes (status 'ready').",
6363 "refs": [
6464 "place.stream.media.defs#sourceTracks",
6565 "place.stream.media.defs#sourceClip"
6666 ],
6767 "type": "union"
6868 },
6969 "status": {
7070 "description": "Processing state: 'processing' while the job runs, 'ready' when publishable, 'error' if processing failed.",
7171 "knownValues": [
7272 "processing",
7373 "ready",
7474 "error"
7575 ],
7676 "type": "string"
7777 },
7878 "tags": {
7979 "description": "Freeform tags (same rules as place.stream.video).",
8080 "items": {
8181 "maxGraphemes": 64,
8282 "maxLength": 640,
8383 "type": "string"
8484 },
8585 "maxLength": 10,
8686 "type": "array"
8787 },
8888 "thumb": {
8989 "accept": [
9090 "image/*"
9191 ],
9292 "description": "Thumbnail image. Generated by the server at publish time if absent.",
9393 "maxSize": 1000000,
9494 "type": "blob"
9595 },
9696 "title": {
9797 "description": "Title of the video. May be a placeholder while processing; the user edits before publishing.",
9898 "maxGraphemes": 140,
9999 "maxLength": 1400,
100100 "type": "string"
101101 }
102102 },
103103 "required": [
104104 "title",
105105 "status",
106106 "createdAt"
107107 ],
108108 "type": "object"
109109 },
110110 "type": "record"
111111 }
112112 },
113113 "id": "place.stream.vod.draftVideo",
114114 "lexicon": 1
115115}