org.consentvid.videoV2
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.
Details · record, key tid
| Kind | record |
|---|---|
| Record key | tid |
| Authority | consentvid.org |
| Indexed |
Showing version bafyreie5642ufwmodi53t5sysz26nlkgzjijzfcyv7uyp464dmlxuitxpi. Show the latest
Checks
Validlarge-stringdefs.main.record.properties.descriptionmaxLength is over 20 KB. Use a blob for content that large.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"bskyPostRef": {
"description": "The video of one of the contributor's own Bluesky posts: the bytes are the video blob that post embeds (app.bsky.embed.video, directly or as the media of app.bsky.embed.recordWithMedia), served by the contributor's PDS through com.atproto.sync.getBlob. Deliberately not a blob reference: the bytes stay tied to the post, so deleting the post deletes them and readers then treat the clip as unavailable. Readers require post.uri to be an app.bsky.feed.post in the same repo as this record, blob to equal contentHash, and the post (at post.cid) to embed exactly that blob.",
"properties": {
"blob": {
"description": "CID of the video blob as the post's embed carries it (raw codec, sha-256): equal to contentHash.",
"format": "cid",
"type": "string"
},
"post": {
"description": "The app.bsky.feed.post (DID-form at:// URI and CID) that embeds the video.",
"ref": "com.atproto.repo.strongRef",
"type": "ref"
}
},
"required": [
"post",
"blob"
],
"type": "object"
},
"ipfsRef": {
"description": "Bytes on IPFS.",
"properties": {
"cid": {
"description": "The IPFS CID: CIDv1 in lowercase base32 (b...) or CIDv0 (Qm...); IPFS commonly uses codecs other than atproto's, so this is not format 'cid'.",
"maxLength": 128,
"type": "string"
}
},
"required": [
"cid"
],
"type": "object"
},
"localRef": {
"description": "Bytes kept by the contributor, not published. Never dereferenced.",
"properties": {
"name": {
"description": "An opaque name (no control characters). Never a filesystem path: records are public.",
"maxLength": 256,
"minLength": 1,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"main": {
"description": "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.",
"key": "tid",
"record": {
"properties": {
"contentHash": {
"description": "The video bytes' CIDv1 with the raw codec and a sha-256 multihash, in base32 (bafkrei...): the same value a PDS blob ref carries for these bytes. Readers reject any other codec or hash.",
"format": "cid",
"type": "string"
},
"createdAt": {
"description": "Record write time.",
"format": "datetime",
"type": "string"
},
"description": {
"maxGraphemes": 3000,
"maxLength": 30000,
"type": "string"
},
"durationMs": {
"description": "Duration in milliseconds.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"height": {
"description": "Frame height in pixels.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"labels": {
"description": "Self-labels the contributor applies to the video (e.g. 'nudity', 'sexual', 'porn', 'graphic-media'). Dataset tools leave labeled clips out unless asked to include them.",
"refs": [
"com.atproto.label.defs#selfLabels"
],
"type": "union"
},
"langs": {
"description": "Spoken languages, primary first (BCP-47, lowercase primary subtag, e.g. en, cs, pt-BR).",
"items": {
"format": "language",
"type": "string"
},
"maxLength": 3,
"type": "array"
},
"mimeType": {
"description": "MIME type of the video bytes. Readers reject values outside knownValues: it becomes the dataset's encodingFormat, which dataset loaders act on.",
"knownValues": [
"video/3gpp",
"video/matroska",
"video/mp2t",
"video/mp4",
"video/mpeg",
"video/quicktime",
"video/vnd.avi",
"video/webm",
"video/x-matroska",
"video/x-msvideo"
],
"maxLength": 128,
"type": "string"
},
"size": {
"description": "Size of the video bytes, in bytes.",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"storage": {
"description": "Where the bytes live. Readers that don't know a storage type treat the bytes as unreachable.",
"refs": [
"#r2Ref",
"#ipfsRef",
"#peertubeRef",
"#urlRef",
"#localRef",
"#bskyPostRef",
"#pdsBlobRef"
],
"type": "union"
},
"tags": {
"description": "Topic tags.",
"items": {
"maxGraphemes": 64,
"maxLength": 640,
"minLength": 1,
"type": "string"
},
"maxLength": 8,
"type": "array"
},
"title": {
"description": "Human-readable title.",
"maxGraphemes": 300,
"maxLength": 3000,
"minLength": 1,
"type": "string"
},
"width": {
"description": "Frame width in pixels.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"title",
"contentHash",
"storage",
"createdAt"
],
"type": "object"
},
"type": "record"
},
"pdsBlobRef": {
"description": "The bytes are a blob in the contributor's own PDS, uploaded with com.atproto.repo.uploadBlob and referenced by this record only (no post). The PDS keeps a blob while any record in the repo references it and deletes it once none does, so withdrawing (deleting this record) frees the bytes; they are also unavailable while the account is deactivated and deleted with it. Served by the contributor's PDS through com.atproto.sync.getBlob. Readers require blob.ref to equal contentHash, blob.size to equal size when size is given, and blob.mimeType to name the same container as mimeType (the PDS stores the type its own sniffing reports, e.g. video/matroska for video/x-matroska).",
"properties": {
"blob": {
"accept": [
"video/*"
],
"description": "The video bytes. Its ref is their raw-codec sha-256 CID, equal to contentHash. maxSize is Bluesky's video limit (300 MB); a PDS may accept less (the reference PDS defaults to 5 MiB, its installer sets 300 MiB), and the PDS does not enforce accept or maxSize for lexicons it doesn't know, so readers do.",
"maxSize": 300000000,
"type": "blob"
}
},
"required": [
"blob"
],
"type": "object"
},
"peertubeRef": {
"description": "A video on a PeerTube instance.",
"properties": {
"url": {
"description": "https watch or download URL on a public host and the default port, without credentials.",
"format": "uri",
"maxLength": 2048,
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"r2Ref": {
"description": "The public https URL of a Cloudflare R2 object.",
"properties": {
"url": {
"description": "https URL on a public host and the default port, without credentials.",
"format": "uri",
"maxLength": 2048,
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"urlRef": {
"description": "Bytes at a public https URL.",
"properties": {
"url": {
"description": "https URL on a public host and the default port, without credentials.",
"format": "uri",
"maxLength": 2048,
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
}
},
"id": "org.consentvid.videoV2",
"lexicon": 1
}