Bluebonnet Studios

Lightroom Plugins

Location Caption Assistant

The temple, not the province

Beta Version 0.1.10 · Plugin

City names are rarely the answer. This reads a photograph’s GPS position, asks OpenStreetMap what is actually there, and proposes the specific landmark — the temple, not the province — for you to approve before anything is written.

What it is for

A GPS-tagged photograph knows its coordinates, and reverse geocoding will happily turn those into a city. But “Siem Reap” is not what the picture is of — the picture is of Bayon Temple. The useful name is almost always more specific than the administrative one, and it is exactly the name that is hardest to remember six months later when you are captioning a trip.

This plugin reads a photograph’s position, asks OpenStreetMap what is actually at that spot, and proposes the specific landmark — temple, monument, museum, hotel, archaeological site, park — for you to approve.

How it decides

Photographs are grouped into coordinate clusters first, so a series shot around one site is looked up once rather than once per frame. Everything within the configured radius — 500 m by default — is considered together, then ranked so that a specific landmark outranks the complex containing it, which outranks the surrounding city, when the evidence supports it. That last clause matters: the ranking is evidence-led, so an ambiguous position produces an honest set of candidates rather than a confident wrong answer.

Nothing is written until you approve it

Every suggestion goes through a review dialog. Accept it, pick a different candidate, edit the text yourself, or exclude the photograph entirely. Only then is anything written.

What gets written is deliberately narrow: the approved place goes to Lightroom’s Sublocation field, and you choose whether it replaces the existing value or is appended to it. Caption, City, State/Province, Country, ISO country code, title, keywords, copyright, capture time and GPS are all left alone. Nothing is written to your original files or to XMP sidecars.

What leaves your machine

Before the first lookup, the plugin shows a one-time disclosure. GPS coordinates from the selected photographs are sent to the configured geocoding service to retrieve place names — that is the whole point of the tool and it cannot work otherwise. Image files, thumbnails, filenames, captions and your identity are never sent. Requests are throttled and cached to stay within the public services’ usage policies.

Where it currently stands

Everything testable outside a running Lightroom process is implemented and unit tested — candidate ranking, metadata formatting, caching, provider clients, coordinate grouping — including tests against real captured responses from the live geocoding services. The modules that talk to Lightroom itself are written against the documented, long-stable Lightroom Classic SDK, but have not been fully exercised inside Lightroom.

That is why this is listed as a beta, and why the honest advice is to run it against a disposable test catalog first. The plugin never touches anything beyond your current selection either way, but a plugin that writes metadata deserves to earn trust on a catalog you can throw away.

What it does not do

Instead of

Captioning your library unattended. There is no bulk mode that writes without review. Every photograph is approved individually, because a plausible wrong landmark is worse than no landmark.

Sending your photographs anywhere. Coordinates go out. Images never do.

Tool Version Platform Status Availability
Similars and Photo StatisticsGroups visually similar photos, reports file-type statistics, and repairs wrong capture dates 1.8.1 Plugin · macOS Private release Request
Restore Missing PhotosPuts files that Lightroom reports as missing back where the catalog expects them 1.22.0 Plugin Private release Request
Location Caption AssistantSuggests the landmark a GPS-tagged photo was actually taken at 0.1.10 Plugin Beta Download