place.stream.media.publishVideo
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.
Details · procedure
| Kind | procedure |
|---|---|
| Authority | media.stream.place |
| Indexed |
Procedure
procedure · POSTInput
application/jsondescription
stringDescription for a record built by the server.
maxLength: 10000
livestreams
arrayLivestream 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.
record
refA 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.
title
stringTitle for a record built by the server; the first livestream's title when empty.
maxLength: 1000
The upload ID returned by place.stream.media.createUpload. Its processing must be complete (status 'done').
Output
application/jsonErrors
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.
Similar lexicons
semantic matchLexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
Rewrite a place.stream.video record in place: retitle, redescribe or retag it, or point it at a finished upload's tracks (publishing them if the upload has none yet: the repair for a record published without tracks, or the way to point a record at a re-finalized VOD). Fields left out are kept; an empty description or tag list clears it. The caller must be the record's owner or hold livestream.manage from them; the record is written with the owner's session.
-
Promote a ready draft VOD to a public place.stream.video record. The server carries over source and durationMs from the draft, backfills a generated thumbnail if the draft has none, writes the video record via putRecord, then deletes the draft.
-
Turn a finished livestream into a VOD. The server concatenates the MUXL segments it recorded for the livestream(s) into a single content blob, derives the playback sidecars, and publishes the place.stream.media.track records. By default it leaves a draft VOD the streamer publishes later via place.stream.vod.publishDraft; with publish set it publishes the place.stream.video record as soon as the VOD is finalized. The caller must be the streamer, or a moderator they have granted livestream.manage;
-
A streamer's place.stream.video records (read from their PDS) and this node's uploads for them: everything updateVideo, deleteVideo and publishVideo take. The caller must be the streamer or hold livestream.manage from them.
-
place.stream.live.startLivestream
procedureCreate a new place.stream.livestream record, automatically populating a thumbnail and creating a Bluesky post and whatnot. You can do this manually by creating a record but this method can work better for mobile livestreaming and such.