org.consentvid.video

A video registered for inclusion in a consent-first dataset. Storage of the bytes is decoupled: this record only commits to a content hash and a pointer. Its consent, if any, is the org.consentvid.consent record in the same repo with the same record key.

Details · record, key tid
Kindrecord
Record keytid
Authorityconsentvid.org
Indexed

Record

record · key tid

Properties

contentHash

requiredstring

SHA-256 of the video bytes: "sha256-" followed by 64 lowercase hex characters.

  • maxLength: 80

createdAt

requiredstring · datetime

Record write time.

  • maxLength: 3000

durationMs

integer

Duration in milliseconds: non-negative, at most 2^53-1. ATproto records have no float type.

height

integer

Frame height in pixels: non-negative, at most 2^53-1.

language

string

BCP-47 language tag for the primary spoken language, if any, with a lowercase primary subtag (e.g. en, cs, pt-BR); readers reject other values.

mimeType

string

MIME type of the video bytes, e.g. video/mp4. Readers reject values outside knownValues: it becomes the dataset's encodingFormat, which dataset loaders act on.

  • maxLength: 128
  • knownValues: video/3gpp | video/matroska | video/mp2t | video/mp4 | video/mpeg | video/quicktime | video/vnd.avi | video/webm | video/x-matroska | video/x-msvideo

storageRef

requiredref
Reference

tags

array

Topic tags, at most 32, each at most 64 UTF-8 bytes.

  • maxLength: 32
itemsstring
  • maxLength: 64

title

requiredstring

Human-readable title, at most 300 UTF-8 bytes.

  • maxLength: 300

width

integer

Frame width in pixels: non-negative, at most 2^53-1.

#storageRef

object

Where the video bytes live. Readers reject refs whose value does not match the kind.

Properties

kind

requiredstring

'url' = a public https URL; 'r2' = the public https URL of a Cloudflare R2 object; 'peertube' = an https watch/download URL on a PeerTube instance (for these three: a public host on the default port, no credentials); 'ipfs' = a CID (bafy... or Qm...), optionally ipfs://-prefixed; 'local' = an opaque contributor-side name, never dereferenced (no control characters).

  • knownValues: url | local | ipfs | r2 | peertube

value

requiredstring

Where the bytes live: a URL (url/r2/peertube), a CID (ipfs), or for 'local' an opaque contributor-side name. Never an absolute filesystem path (records are public).

Similar lexicons

semantic match

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

  • A video registered for inclusion in a consent-first dataset (version 2 of org.consentvid.video). The record commits to the bytes by content hash and says where they are stored; it does not hold them. Its consent, if any, is the org.consentvid.consentV2 record in the same repo with the same record key (a sidecar record). Records are public: never put personal data or filesystem paths in them.

  • Some audiovisual content.

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

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

  • place.stream.segment

    record not from the namespace authority

    Media file representing a segment of a livestream