app.bluvy.tube.video.metadata

Bluvy Tube-specific metadata for a published video, written to the creator's own repo alongside the app.bsky.feed.post record that actually carries the video (via app.bsky.embed.video). Not required or validated by the PDS or any other AT Protocol app — Bluvy Tube reads this back itself to render an owner-editable title/description/language overlay on top of the plain post text. Written by App\Service\VideoPublicationProcessor (native uploads) and rewritten by App\Service\PdsMetadataSyncService on every owner edit, in the Bluvy Tube source.

Repository @tube.bluvy.app did:plc:dgqudubx2plnmynqu5wtsoan namespace authority
Details · record, key tid
Kindrecord
Record keytid
Authorityvideo.tube.bluvy.app
Indexed

Record

record · key tid

Properties

Owner-uploaded WebVTT subtitle/caption tracks, one per language.

  • maxLength: 20
itemsobject

category

string

Primary category slug (e.g. 'gaming', 'tech', 'music', etc.).

Owner-editable chapter markers shown on Bluvy Tube's scrubber.

  • maxLength: 50
itemsobject

createdAt

requiredstring · datetime

Client-declared timestamp when this record was created.

  • maxLength: 30000
  • maxGraphemes: 3000

duration

integer

Duration of the video in seconds.

Optional end screen: tiles Bluvy Tube shows over the last seconds of the video.

Reference

Whether the video content was generated by AI.

language

string

BCP-47 language tag for the video's primary spoken/subtitle language.

postCid

string · cid

The CID of the companion app.bsky.feed.post record as of the last write of this record; together with postUri, a strong reference to it. Set together with postUri.

postUri

string · at-uri

The at-uri of the companion app.bsky.feed.post record, set once that record has been created (this metadata record is written first, in a two-step publish).

Optional secondary category slugs.

itemsstring

A thumbnail the owner chose for this video (at most 1280 px on each side). Bluvy Tube shows it instead of the frame generated by the video service; the companion post keeps the generated one.

  • maxSize: 2000000
  • accept: image/jpeg

title

string

Owner-editable title, shown on Bluvy Tube in place of the raw post text.

  • maxLength: 3000
  • maxGraphemes: 300

The creator's own translations of title and description; Bluvy Tube shows the one matching the viewer's language.

  • maxLength: 10
itemsref
Reference

url

string · uri

The Bluvy Tube web page that renders this video (a stable https://{host}/at/{did}/app.bsky.feed.post/{rkey} address). Attests the page in the record-to-page direction; the page links back via an at:canonical meta tag. Set together with postUri.

video

requiredblob

The same video blob referenced by the companion app.bsky.feed.post's app.bsky.embed.video#video.

  • accept: video/*

#endScreen

object

Properties

items

requiredarray
  • minLength: 1
  • maxLength: 2
itemsref
Reference

startOffset

requiredinteger

How many seconds before the end the tiles appear.

  • minimum: 5
  • maximum: 20

#endScreenItem

object

Properties

kind

requiredstring

'video': another of the creator's videos (subject: its app.bsky.feed.post); 'playlist': one of their app.bluvy.tube.playlist records; 'subscribe': a follow button for the creator (no subject).

  • knownValues: video | playlist | subscribe

#translation

object

Properties

  • maxLength: 30000
  • maxGraphemes: 3000

lang

requiredstring · language

BCP-47 language tag of this translation.

title

string
  • maxLength: 3000
  • maxGraphemes: 300

Similar lexicons

semantic match

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

  • Mutable metadata sidecar for a video. Record key MUST match the rkey of the social.skyphone.video.post record in the same repo, so a reader that holds a video record can fetch its metadata with one getRecord. Editing metadata is a put on this record; the canonical video record stays untouched.

  • Canonical video record. The video blob and durationMs MUST NOT change after creation; replacing the video requires a new record. This record intentionally carries no human-readable metadata: title, description, thumbnail and the announcement post live in a social.skyphone.video.meta record with the same record key in the same repo.

  • A video post.

  • Some audiovisual content.

  • place.stream.media.track

    record not from the namespace authority

    A track for a video stream, either part of the source or a custom additional track. One of: video, audio, subtitles.