org.consentvid.consent

A consent receipt declaring permissions for AI training use of a referenced video record. Cryptographically signed by the user's repo key (inherent to ATproto records). The record key MUST equal the record key of the referenced org.consentvid.video record (a sidecar record, like app.bsky.feed.threadgate); consents with any other key are ignored. There is therefore at most one consent per video; replacing terms rewrites this record, and deleting it withdraws consent. Readers treat a consent as invalid unless videoCid is present, revocable, authorshipAttested and adultAttested are all true and peoplePresent is one of its knownValues (readers reject other values). Vocabulary values (modalities, purposes, modelClasses, compensation, rightsBasis, captureProvenance, peoplePresent) must not contain control or format characters.

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

Record

record · key tid

Properties

The contributor affirms, under their signing key, that they are an adult (18 or older, or the age of majority where they live, if higher) and legally capable of giving this consent. Self-declared, not verified. Optional in the schema for evolution compatibility, but ConsentVid treats a consent without adultAttested=true as invalid.

authorshipAttested

requiredboolean

The contributor affirms, under their signing key, that they recorded this video themselves (or are otherwise its rightful author) and are authorized to grant this consent. A consent receipt is invalid unless this is true; uploading someone else's video and consenting to its use would be unlawful.

Strength of the capture-provenance guarantee. 'attested' = capture-time cryptographic provenance (e.g. C2PA/CAWG) binds the recording to the contributor's DID; 'selfAttested' = signed authorship attestation only; 'unverified' = neither.

  • knownValues: attested | selfAttested | unverified

compensation

requiredstring

What compensation the contributor declares they expect. Informational only: ConsentVid does not broker or enforce payment. Researchers may filter on it.

  • knownValues: none | creditOnly | monetary

createdAt

requiredstring · datetime

Record write time. Informational: there is only ever one consent per video.

expiresAt

string · datetime

Optional expiry; after this time the consent is no longer valid. Must be later than createdAt.

modalities

requiredarray

What may be used: 'video' = the picture; 'audio' = the soundtrack; 'transcript' = text derived from the speech; 'face' = identifiable faces (e.g. for face recognition or synthesis); 'voice' = identifiable voices (e.g. for speaker recognition or voice cloning). 'face' and 'voice' are incompatible with peoplePresent 'noIdentifiablePeople'. No duplicate values.

  • minLength: 1
itemsstring
  • knownValues: video | audio | transcript | face | voice

modelClasses

requiredarray

WHO may use the data, and under what release model. 'foundationModel' is DEPRECATED: it describes a kind of model, not a user; new clients don't offer it, but it remains valid in existing records. No duplicate values.

  • minLength: 1
itemsstring
  • knownValues: academic | openWeights | commercial | foundationModel

Who identifiably appears or is heard in the video: 'onlyMe' = only the contributor; 'allConsented' = every identifiable person gave the contributor permission for this use; 'noIdentifiablePeople' = no identifiable face or voice (e.g. hands-only footage), which is incompatible with the 'face' and 'voice' modalities. Optional in the schema for evolution compatibility, but ConsentVid treats a consent without one of these values as invalid.

  • knownValues: onlyMe | allConsented | noIdentifiablePeople

purposes

requiredarray

What the data may be used FOR. 'researchOnly' is DEPRECATED: it overlaps the 'academic' model class (who may use it); new clients don't offer it, but it remains valid in existing records. No duplicate values.

  • minLength: 1
itemsstring
  • knownValues: training | evaluation | benchmarking | researchOnly

revocable

requiredboolean

Whether the contributor may withdraw consent. Consent to processing personal data (faces, voices) must be withdrawable (GDPR Art. 7(3)); ConsentVid clients always write true. Withdrawal is performed by deleting this record.

Basis on which the contributor holds the right to grant consent: 'ownRecording' = they captured it, 'licensed' = licensed from the creator, 'otherRightsHolder' = other documented basis.

  • knownValues: ownRecording | licensed | otherRightsHolder

videoCid

string · cid

CID of the exact org.consentvid.video record version this consent applies to (together with videoUri, a strong reference): CIDv1 (dag-cbor, sha-256) in base32, exactly as returned by the PDS. If the video record is later rewritten, this consent no longer applies to it. Optional in the schema for evolution compatibility, but readers treat a consent without it as invalid.

videoUri

requiredstring · at-uri

AT-URI of the org.consentvid.video record this consent applies to. Must be the DID-form at://<did>/org.consentvid.video/<rkey> in the same repo as this consent, with the same record key; handle-form URIs are invalid.

Similar lexicons

semantic match

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

  • A consent receipt (version 2 of org.consentvid.consent) declaring permissions for AI use of an org.consentvid.videoV2 record, signed by the contributor's repo key. The record key MUST equal the record key of the referenced video (a sidecar record, like app.bsky.feed.threadgate); consents with any other key are ignored. So there is at most one consent per video: replacing terms rewrites this record, and deleting it withdraws consent (consent must always be withdrawable, GDPR Art. 7(3)). Vocabular

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

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