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.

Repository @stream.place did:plc:rbvrr34edl5ddpuwcubjiost not from the namespace authority
Details · procedure
Kindprocedure
Authoritymedia.stream.place
Indexed

Procedure

procedure · POST

Input

application/json

Description for a record built by the server.

  • maxLength: 10000

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.

itemsstring · at-uri

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.

Reference

title

string

Title for a record built by the server; the first livestream's title when empty.

  • maxLength: 1000

uploadId

requiredstring

The upload ID returned by place.stream.media.createUpload. Its processing must be complete (status 'done').

Output

application/json

cid

requiredstring · cid

CID of the created place.stream.video record.

uri

requiredstring · at-uri

AT-URI of the created place.stream.video record.

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.

Similar lexicons

semantic match

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • place.stream.media.updateVideo

    procedure not from the namespace authority

    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.

  • place.stream.vod.publishDraft

    procedure not from the namespace authority

    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.

  • place.stream.media.finalizeLivestream

    procedure not from the namespace authority

    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;

  • place.stream.media.listVideos

    query not from the namespace authority

    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.

  • Create 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.