Skip to content

place.stream.media.publishVideo

Lexicon Version: 1

Type: procedure

Publish a place.stream.video record for a finished upload, server-side. The caller supplies the record it would otherwise putRecord itself; the server overrides the fields it is authoritative about (source tracks and durationMs, taken from the processed upload) and, if the record carries no thumb, generates one from the video and attaches it. The record is written to the authenticated user’s repo. The caller must own the upload, or hold livestream.manage from its owner; the record is written with the owner’s session. Without a record, one is built from the upload’s livestream(s) (title, tags, activity, connections) and the given title and description.

Parameters: (None defined)

Input:

  • Encoding: application/json
  • Schema:

Schema Type: object

NameTypeReq’dDescriptionConstraints
uploadIdstring✅The upload ID returned by place.stream.media.createUpload. Its processing must be complete (status ‘done’).
recordplace.stream.video❌A place.stream.video record. The server overrides source and durationMs from the processed upload, and fills in thumb with a generated thumbnail when the supplied record has none.
livestreamsArray of string❌Livestream records the video came from, used to build the record when none is given; defaults to the upload’s own livestream for a finalized recording.
titlestring❌Title for a record built by the server; the first livestream’s title when empty.Max Length: 1000
descriptionstring❌Description for a record built by the server.Max Length: 10000

Output:

  • Encoding: application/json
  • Schema:

Schema Type: object

NameTypeReq’dDescriptionConstraints
uristring✅AT-URI of the created place.stream.video record.Format: at-uri
cidstring✅CID of the created place.stream.video record.Format: cid

Possible Errors:

  • UploadNotFound: No upload with the given ID belongs to the authenticated user.
  • UploadNotReady: The upload has not finished processing, so its tracks aren’t available yet.

{
"lexicon": 1,
"id": "place.stream.media.publishVideo",
"defs": {
"main": {
"type": "procedure",
"description": "Publish a place.stream.video record for a finished upload, server-side. The caller supplies the record it would otherwise putRecord itself; the server overrides the fields it is authoritative about (source tracks and durationMs, taken from the processed upload) and, if the record carries no thumb, generates one from the video and attaches it. The record is written to the authenticated user's repo. The caller must own the upload, or hold livestream.manage from its owner; the record is written with the owner's session. Without a record, one is built from the upload's livestream(s) (title, tags, activity, connections) and the given title and description.",
"input": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["uploadId"],
"properties": {
"uploadId": {
"type": "string",
"description": "The upload ID returned by place.stream.media.createUpload. Its processing must be complete (status 'done')."
},
"record": {
"type": "ref",
"ref": "place.stream.video",
"description": "A place.stream.video record. The server overrides `source` and `durationMs` from the processed upload, and fills in `thumb` with a generated thumbnail when the supplied record has none."
},
"livestreams": {
"type": "array",
"items": {
"type": "string",
"format": "at-uri"
},
"description": "Livestream records the video came from, used to build the record when none is given; defaults to the upload's own livestream for a finalized recording."
},
"title": {
"type": "string",
"maxLength": 1000,
"description": "Title for a record built by the server; the first livestream's title when empty."
},
"description": {
"type": "string",
"maxLength": 10000,
"description": "Description for a record built by the server."
}
}
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["uri", "cid"],
"properties": {
"uri": {
"type": "string",
"format": "at-uri",
"description": "AT-URI of the created place.stream.video record."
},
"cid": {
"type": "string",
"format": "cid",
"description": "CID of the created place.stream.video record."
}
}
}
},
"errors": [
{
"name": "UploadNotFound",
"description": "No upload with the given ID belongs to the authenticated user."
},
{
"name": "UploadNotReady",
"description": "The upload has not finished processing, so its tracks aren't available yet."
}
]
}
}
}