How bdrop.studio marks AI-generated content

Why this page exists

Every Drop bdrop.studio produces — the cover art, the track, and, where your Drop includes them, the video and the Studio Analysis Report — carries a machine-readable marker embedded directly in the file. Nothing changes in what you see or hear: no watermark, no visible tag, no logo. The marker lives in the file's own metadata, the same place a photo stores its camera model or a PDF stores its author.

Article 50(2) of the EU AI Act requires this: an AI provider must mark generated content in a machine-readable way, and must make it possible for anyone to check that marking. This page is the second half of that duty — it states exactly what we embed, in which file, and the exact command any recipient, journalist, or authority can run to read it out themselves. The tools are free and standard: exiftool (exiftool.org), ffprobe (part of FFmpeg), and pdfinfo. For the drop page's text, no tool is needed at all — the marking sits in the page's HTML source, one view-source away.

The five artefact types

Cover art (PNG / JPEG)

An XMP metadata packet, inserted into the image file without touching a single pixel:

  • Iptc4xmpExt:DigitalSourceType = http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia (the IPTC-standard value for "generated by a trained algorithm")
  • photoshop:Credit = AI-generated | bdrop.studio

Verify it

exiftool -XMP-iptcExt:DigitalSourceType -XMP-photoshop:Credit your-cover.png

What you'll see

A "Digital Source Type" field carrying the trainedAlgorithmicMedia URL above, and a "Credit" field reading "AI-generated | bdrop.studio".

The track (MP3)

Two ID3v2.3 frames, written directly into the audio file:

  • A TXXX (custom text) frame — description "AI-GENERATED", value "true; system=bdrop.studio"
  • A COMM (comment) frame — text "AI-generated content (EU AI Act Art. 50(2) marking)"

Verify it

exiftool -a -u -g1 your-track.mp3

What you'll see

A comment field reading "AI-generated content (EU AI Act Art. 50(2) marking)", and a user-defined text field carrying the description "AI-GENERATED" and the value "true; system=bdrop.studio". (Exact field labels vary slightly by reader — the frame content itself is exact.)

The video (MP4)

A container-level comment tag, written as an unconditional final step on every render. No video or audio stream is touched — only the container metadata:

  • comment = AI-generated content — bdrop.studio

Verify it

ffprobe -v quiet -show_entries format_tags=comment -of default=noprint_wrappers=1 your-video.mp4

What you'll see

TAG:comment=AI-generated content — bdrop.studio

The Studio Analysis Report (PDF)

Four fields in the PDF's own Document Info dictionary:

  • Subject = AI-generated content — bdrop.studio
  • Keywords = AI-generated content — bdrop.studio
  • Creator = bdrop.studio
  • Producer = bdrop.studio

Verify it

pdfinfo your-report.pdf

What you'll see

Subject, Keywords, Creator, and Producer lines carrying the values above. (exiftool your-report.pdf shows the same fields.)

The drop page text

A <script type="application/ld+json"> block, rendered in the page body of every Drop page — private gift Drops included — whenever that page shows song lyrics or agent feedback:

  • @type = CreativeWork
  • digitalSourceType = http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia (the IPTC-standard value for "generated by a trained algorithm")
  • description = "The song lyrics and AI agent feedback (verdict quotes, full analysis, and calls to action) on this page are generated by AI (EU AI Act Art. 50(2) marking)."

Verify it

curl -s https://bdrop.studio/drop/your-slug | grep -A5 'application/ld+json'

What you'll see

A <script type="application/ld+json"> block containing "@type":"CreativeWork" and "digitalSourceType":"http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia". You can also find it by viewing the page source (or your browser’s devtools) and searching for "application/ld+json" — the block is not rendered visibly, but it is present in the HTML your browser receives. On a private Drop that's out of rotation, this command returns nothing — the block only ships where the page's own content does.

The Crate’s structured data

A <script type="application/ld+json"> block on The Crate (bdrop.studio/crate), listing every drop shown there as a schema.org MusicRecording:

  • digitalSourceType = http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia (the IPTC-standard value for "generated by a trained algorithm") — on every listed MusicRecording, unconditionally

Verify it

curl -s https://bdrop.studio/crate | grep -o '"digitalSourceType":"http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia"' | wc -l

What you'll see

A count equal to the number of drops listed on the page at the time you run it — one occurrence per listed track. We have not signed the EU Transparency Code of Practice; this is a documented best-effort marking, not a conformity claim.

The “what AI weighs” research log

The two pages of the “what AI weighs” research log (bdrop.studio/what-ai-weighs and /what-ai-weighs/what-a-tonne-costs) were drafted and designed with AI. Their schema.org Article block carries the same mark as every other artefact type:

  • digitalSourceType = http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia (the IPTC-standard value for "generated by a trained algorithm") — on both pages, unconditionally

Verify it

curl -s https://bdrop.studio/what-ai-weighs | grep -o '"digitalSourceType":"http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia"'

What you'll see

One occurrence, from the Article block in the page source. The same command works on /what-ai-weighs/what-a-tonne-costs. The pages are AI-drafted and editorially reviewed; every figure on them is either sourced to a named study or explicitly marked as editorial judgement.

The studio games

The studio games (studio-rules.vercel.app — the hub and every game on it) were coded, written and designed with AI. Each page's schema.org WebPage block carries the same mark as every other artefact type:

  • digitalSourceType = http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia (the IPTC-standard value for "generated by a trained algorithm") — on the hub and on every game page, unconditionally

Verify it

curl -s https://studio-rules.vercel.app/allow-invaders | grep -o '"digitalSourceType":"http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia"'

What you'll see

One occurrence, from the WebPage block in the page source. The same command works on the hub itself and on /nobody-clears, the second game. Each page also states in plain sight that it was built by the studio's agents.

A note on Anna

Anna is an AI persona by bdrop.studio. Posts are AI-generated and editorially reviewed.

A note on scope

This page documents our current marking-and-detection implementation under Article 50(2) of the EU AI Act. It is a factual disclosure, not a declaration of full legal conformity — bdrop.studio has not signed the EU Transparency Code of Practice, and this page is not a certification. Last updated: 31 August 2026.

Questions about this page or about a specific file: see the contact details in our Impressum.