Skip to content

Captioning and Delivery

Niels Franke edited this page Jul 3, 2026 · 2 revisions

Captioning & delivery

Built for photojournalists and sports shooters: caption, credit and transmit a full card in seconds with a template + variables + code-replacements workflow — in one panel, with a live preview, instead of split across external tab-separated files.

The IPTC editor (M)

M opens the IPTC Core editor for the focused photo, or the whole selection as a batch (a shared value is prefilled; fields that disagree across the selection show Mixed instead of guessing). Covers caption, headline, creator + byline title, copyright/rights/usage terms, credit, source, instructions, location (city/state/country + code), Subject Code / IPTC Media Topics, job identifier, and the AI-provenance fields (Digital Source Type, AI System Used) added in IPTC 2025.1. Batch edits only write the fields you actually touched.

The inspector's IPTC section is also inline-editable — click a value, or use + Add field, without opening the full editor.

Templates, variables & code replacements

  • Metadata templates (Settings → Metadata templates): a saved set of field values with a per-field caption mode (Replace / Prefix / Append) and keyword mode (Replace / Add, de-duplicated). T stamps the active template onto the current selection; ⋮ → Apply metadata template does the same from the menu; an ingest-time toggle auto-stamps every photo as it's imported. Named snapshots let you keep more than one template (e.g. one per client) and switch the active one from a dropdown.
  • Variables: {year} {month} {day} {date} {time} {filename} {name} {ext} {camera} {lens} {seq} — expand per photo from EXIF, falling back to today's date if there's none.
  • Code replacements: =code= tokens (with #n alternates and a configurable delimiter), edited in-app in the Code table dialog with a live expansion preview — no external file to manage. A compatible tab-separated code-table file can be imported directly.
  • Hot codes (Settings → Hot codes): one code that fills several fields at once — a venue block, a customer's credit line, etc. Type its =code= into any field in the M editor and it strips the token and stamps every mapped field, expanding any variables/codes inside those values too.

Location

Iptc4xmpCore:Location/City/State/Country write and round-trip like the rest of IPTC Core. The From GPS button in the editor's Location section resolves EXIF GPS coordinates to a city, fully offline, against a bundled GeoNames gazetteer (~160k places, CC BY 4.0). ⋮ → Fill location from GPS runs the same resolution across the whole selection in one pass.

Export & interop

Exported JPEGs carry IPTC both ways: as XMP (so Lightroom/Capture One and Bridge read it) and as legacy IIM (8BIM/0x0404) inside APP13, so tools that only read IIM — the traditional wire-transmission path — see it too. Date Created (from EXIF capture time) is always written and is never user-edited.

Wire delivery (FTP / FTPS / SFTP)

The export dialog's destination can be a delivery server, not just a local folder — configure one under Settings → Delivery servers (host, port, protocol, remote directory, credentials — passwords go to the OS secret store: Keychain on macOS, libsecret on Linux) with a live Test connection check. Export then reads "Export & upload N"; a floating job card tracks Exporting → Uploading. Uploads run over one connection (most agencies reject parallel logins), retry each file up to three times, and a failed batch offers Retry failed without re-exporting. SFTP supports key-file auth; FTPS supports a per-server accept-self-signed-cert toggle for internal endpoints.

FTPS servers that require TLS session reuse on the data connection (vsftpd's require_ssl_reuse=YES) will reject uploads — a dart:io limitation with no workaround. Use SFTP against those.

See also

  • Keyboard — M/T and the rest of the map
  • RAW & interop — rating/colour/keyword XMP round-trip
  • Development — regenerating the bundled gazetteer/media-topics assets

Clone this wiki locally