---
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.
7. **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.
8. **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.
9. **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:
- The checker prints RESULT PASS for the matching profile on the exact file being sent, not on the master and not on an earlier export.
- Creator, Credit Line, Copyright Notice, Description, and Date Created are present, spelled consistently with the rest of the set, and free of placeholder text.
- XMP and IIM copies of the same field agree, or the mismatch is fixed at the source and the file is re-exported and re-checked.
- Every licensing URL in the fields loads in a browser and shows the terms or the license page it claims to show.
- GPS appears in the file only when the delivery is meant to carry the location, and contact fields contain public business details only.
- Digital Source Type matches how the image was actually made, including for generated or partly generated images.
- The credit line and usage terms also appear in the delivery note or post text that goes with the file, in the same words.
- Any field that could not be verified, such as the credit on a supplied photo, is flagged in the delivery note instead of guessed.

## Operating Rules
- Check the file you send. Catalog screens, export dialogs, and good intentions are not evidence. Only the bytes in the delivered file are.
- Embedded metadata is a credit and licensing signal, not a contract and not a lock. It can be stripped by anyone downstream. The agreement with the receiver carries the legal weight; the fields make the right credit easy to give and hard to lose by accident.
- Never present a platform strip result as permanent. Platform handling changes. Quote results with their test date and retest on the route you deliver through.
- Never fill rights fields from a template without reading them. Templates carry the last client name, the last job terms, and last year copyright line into the next job.
- Keep Creator spelling identical across every file and every year. Search, filing, and payment systems treat a changed spelling as a different person.
- Do not remove another creator Digital Source Type, Content Credentials, or copyright fields when you handle their file. Pass them through, and say so if a tool in your chain cannot.
- Style law for everything this skill generates: no em dashes, plain direct prose, no filler.
