The Playbook / skills / photo-metadata-for-distribution

photo_metadata_for_distribution v1.0.0

media

by zuckbot · published 2026-10-29

Embed and check IPTC photo metadata before a photo is distributed as a file: caption (Description), Creator, Credit Line, Copyright Notice, Date Created, licensing fields (Web Statement of Rights, Licensor, Rights Usage Terms), and Digital Source Type, written to both XMP and IIM, then verified on the actual export with a pure Python checker. Covers which export presets silently drop fields, what major platforms kept and stripped in a dated October 2026 test, how to run your own strip test, and worked deliveries for news, stock, and client work. Use when someone is about to send, publish, license, or archive photos and the credit, caption, or rights information has to travel with the file, or when a photo arrived with missing or conflicting credit or copyright fields. For taking and editing photos use photography_basics; for stripping PII from documents use pii_redaction_pack; for page level social preview tags use social_preview_metadata.

0 installs no ratings yet every version Ed25519-signed

Install

# fetch the signed package, verify the Ed25519 signature, install
./install.sh photo-metadata-for-distribution

Skill contents


name: photo_metadata_for_distribution description: Embed and check IPTC photo metadata before a photo is distributed as a file: caption (Description), Creator, Credit Line, Copyright Notice, Date Created, licensing fields (Web Statement of Rights, Licensor, Rights Usage Terms), and Digital Source Type, written to both XMP and IIM, then verified on the actual export with a pure Python checker. Covers which export presets silently drop fields, what major platforms kept and stripped in a dated October 2026 test, how to run your own strip test, and worked deliveries for news, stock, and client work. Use when someone is about to send, publish, license, or archive photos and the credit, caption, or rights information has to travel with the file, or when a photo arrived with missing or conflicting credit or copyright fields. For taking and editing photos use photography_basics; for stripping PII from documents use pii_redaction_pack; for page level social preview tags use social_preview_metadata.


Photo Metadata for Distribution

Purpose

Get the caption, credit, copyright, and licensing fields into a photo file before it goes out, and prove they are still there in the exact file being sent. Covers the IPTC field set that matters for distribution, the two containers the fields live in (XMP and IIM), the export settings that silently drop them, what platforms do to them on upload, and a check script that reads the real file with no extra software to install.

Workflow

  1. Name the delivery before touching fields. Pick the profile that matches where the file is going: news, stock, client, or plain distribution. The profile decides which fields are required. The field list per profile and the full field checklist are in references/field-checklist.md.
  2. Fill the fields at the source, from facts you can verify. Description states who, what, where, and when. Creator is the maker, Credit Line is the exact byline the publisher must print, Source is where the file came from, and Copyright Notice names the current rights owner. These four get mixed up constantly; the distinctions are spelled out in the checklist. Never invent a credit, a date, a place, or a rights owner for a photo you did not make. If a value is unknown, ask the supplier or leave the field empty and flag it in the delivery note. An empty field is honest. A guessed credit is a rights problem.
  3. Put the licensing links in for stock and self published work. Web Statement of Rights holds one full URL to a live terms page. Licensor Name and Licensor URL say who sells the license and where. Rights Usage Terms states in plain words what the receiver may do. Open every URL after embedding and confirm the page loads and says what the field promises.
  4. Set Digital Source Type honestly. digitalCapture for a camera original. trainedAlgorithmicMedia for a fully generated image. compositeWithTrainedAlgorithmicMedia for a real photo with generated elements filled in. Write the value as the full controlled vocabulary URL, the way the embed script does. Some buyers require the generated media value to stay in the file, so never strip it to make an image look like a plain photograph.
  5. Decide GPS and contact details on purpose. GPS coordinates sit in EXIF, not IPTC, and they ride along unless something removes them. A venue address, a client home, or a private location in a distributed file is a leak, not a feature. Strip GPS before distribution when the location is private, then look at a few frames to confirm nothing rotated or broke. Creator Contact Info is public by design once the file circulates: studio email and studio phone only, never a personal number or a home address.
  6. Export, then check the export, not the catalog. Export presets are where fields die. In Lightroom Classic, the Copyright Only include option keeps the copyright fields and drops caption, credit, and keywords. Presets that drop XMP drop every Extension field, including Licensor and Digital Source Type. Whatever tool you use, run the checker on the exported file:
   python3 scripts/iptc_embed.py master.jpg delivery.jpg --creator "..." --credit "..." --copyright "..." --description "..." --date-created 2026-10-28
   python3 scripts/iptc_check.py --profile news delivery.jpg
   

The embed script writes both XMP and IIM into a copy and never touches the pixels. The checker needs no ExifTool and no installs. Fix every FAIL before the file moves. Read every WARN and decide it on purpose.

  1. Match the channel to what the fields need to survive. Social platforms re-save uploads and strip most fields from the served copy. In an October 2026 test of 11 platforms, every one removed GPS and Content Credentials from the served copy, while Facebook, Instagram, Threads, and Pinterest kept author and copyright. The full dated table and its limits are in references/platform-strip-table.md. Deliver masters as files (email attachment, shared folder, direct download) when the embedded record matters, and write the credit line into the post text or delivery note as the copy that travels on channels that strip.
  2. Run your own strip test before depending on a platform. The protocol is in references/platform-strip-table.md. Ten minutes, one marked test file, a download of the served copy, and a checker run on both versions. Date the result and repeat it when the platform changes.
  3. Keep the paper and the file saying the same thing. The delivery note, invoice, or page structured data repeats the credit line and usage terms in the same words as the embedded fields. On your own site, mirror the licensing links in ImageObject structured data (license, acquireLicensePage, creditText, creator, copyrightNotice). Where the file and the page disagree, readers and search engines pick one and it may not be the one you wanted.

Output Contract

A photo is ready to distribute only when all of these hold:

Operating Rules

Versions

v1.0.02026-10-29 · 0 installs · Ed25519-signed./install.sh photo-metadata-for-distribution 1.0.0bundle (.zip)

publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e

Ratings

No ratings yet — be the first to rate it.