Sports photo captioning software
Type a shortcode, pick from the roster on screen, or let MatchID find the athletes for you. Three ways to put a name in a file, all writing to the same metadata fields, on your own machine. Ingest at card speed, filter out the soft frames, caption, deliver. macOS and Windows.
You type a short code and it expands into a name. It is genuinely quick once the code file exists, and the cost is the file itself, because somebody builds it and somebody rebuilds it each time a roster turns over.
This is what GalleryID Desktop does. The roster is already bound to the folder, so there is no code file and nothing to keep current. If you have Photo Mechanic code replacement values already, they still work here.
Most tools pick one of these and make you live with it. All three are here, they write to the same fields, and you can switch between them inside the same folder without changing anything.
Type a short code and it expands into the athlete and the full caption line. If you already keep Photo Mechanic code replacement values, they work here as they are, so the muscle memory transfers on day one.
The roster bound to the folder is right there. Pick the athlete, or hit the key assigned to them, and the name and caption line land in each field you mapped at once. Nothing to memorise and no file to maintain.
Index reference headshots and facial recognition starts naming athletes on its own, reading jersey numbers when a face is not legible. Anything under your confidence threshold waits in a review queue for one click rather than being guessed at.
Shortcodes and the on-screen roster need a roster and nothing else. Headshots are what switch MatchID on, and that is a choice you make later rather than a setup cost you pay first.
A name reaches a file one of two ways: you confirmed it, or it cleared a confidence threshold you set. Both trace back to a decision you made.
Run identification against one photo on demand, for when a number is hidden or two athletes look alike at distance.
Ingest time is copy time. Nothing analyses pictures while the card is captive, so the card frees up the moment the copy ends. Blur scoring and preview building happen after that, on files already safe on your drive, while you are free to review and edit. Nothing adds to the wait.
Four runs on two Macs, the largest 9,662 files and 101.92 GB from a CFexpress card, copied in 2:24 and fully captioned in 3:23 to 4:20. Token rename, folder patterns and per-folder numbering all happened inside that number, and so did the metadata, because it is written to each file as the file is written rather than in a second pass afterwards. Desktop 1.0.131, figures from the application log.
Focus check is a switch you can leave on. It starts once the card is already out, scoring blur per frame and focus per face, on the athletes who are actually the subject rather than a spectator in row four, and the photos are yours to review and edit the whole time it runs. When it finishes, filter the soft and blurred frames out and cull from what’s left. Sensitivity runs Off, Lenient, Moderate or Strict, and a keeper is never hidden, only marked.
MatchID is a step you trigger, on a folder or a selection, usually after the cull so it only works the keepers. It never runs during a copy, so it has no way to slow an ingest down. Anything it isn’t sure about waits in a review queue rather than being guessed at.
Full-size loads come off previews written during the run rather than decoding a 50 MB file each time you press the arrow key, so you can move through a card at the speed you actually cull. Ratings, colour labels and filters are where you would expect them.
Metadata is written to the file as the file is written, with no second pass that re-reads and rebuilds the photo. A file that already carries its own metadata block takes the safe path, and anything the fast writer will not handle falls back rather than guessing.
XMP is written as the primary with the legacy IPTC-IIM mirror alongside, because agency tooling and wire services still read IIM on JPEGs. Names are written to Persons Shown and Personality, so they stay readable in Lightroom, Capture One and Photo Mechanic once the file leaves.
Crop, tone, curves, clarity and texture, IPTC and XMP templates, FTP and FTPS delivery with watermarking and output sharpening, and ZIP export with sidecars.
Point it at an external drive and it builds an offline index with cached previews, so the archive stays searchable by name after the drive goes back in the drawer.
Bind a folder and start captioning. GalleryID ships with over 18,000 team rosters: more than a thousand NCAA Division I, II and III schools, and 205 professional teams across the NFL, NBA, WNBA, MLB, NHL, MLS, NWSL, Liga MX, PGA and LPGA. Over 470,000 athletes, already loaded. No copying names off a team site or a PDF, no paying a roster service for downloads, and no building a spreadsheet before you can start.
Nothing there? Load your own as .xlsx, .xls, .csv, .tsv or .txt and any sport works, because binding drives the captioning rather than a fixed list of leagues.
A roster is a spreadsheet of names. Swap it for a start list, a delegate list, a cast sheet or a class list and the captioning behaves exactly the same: pick the person or type the code, and the name plus the whole caption line lands in each IPTC and XMP field you mapped.
Batch IPTC editing, templates, token rename, culling and delivery are the same tools whatever the event was. Nothing in the captioning path checks whether the person is an athlete.
Jersey number reading, and recognition trained on sports frames rather than portraits. Both sit inside MatchID. Leave MatchID off and you have a fast ingest, culling and captioning app for any subject.
Load your own file and bind it to the folder. The bundled Roster Library is a head start for college sports rather than the boundary of what the app will caption.
Worth knowing before a trial rather than after.
There is crop, tone, a curve, clarity and texture, and that is the limit. Colour work still happens in Lightroom or Capture One, and the names are already written to the file when it gets there.
MatchID has to be shown who people are before it can find them. No headshots means no automatic identification, though CaptionID still captions from the bound roster at one press.
Jersey number reading and sports-trained recognition do not help at a conference or a graduation. The captioning underneath them is subject-agnostic, so a list of names is a list of names and the rest of the app does not care what the event was.
Yes. Two of the three methods in GalleryID Desktop use no automatic identification at all. Type a shortcode and it expands into the athlete and the full caption line, or pick the athlete from the roster bound to the folder. Both need a roster and nothing else, with no reference headshots indexed. MatchID, the automatic facial recognition and jersey number reading, is the third option rather than a prerequisite.
GalleryID Desktop copies about 15 seconds per 1,000 photos, and 21 to 27 seconds per 1,000 with the metadata written to all of them. Measured at 14.9, 14.9, 15.6 and 16.9 seconds per 1,000 across four runs on two Macs. Largest run: 9,662 files, 101.92 GB, from a SanDisk Extreme PRO CFexpress Type B in a ProGrade PG05.5 reader, copied in 2:24 and fully captioned in 3:23 to 4:20 across three runs, with no file failing to take its metadata. Desktop 1.0.131, figures from the application log. Token rename, folder patterns and the metadata write are all inside those numbers, because metadata is written to each file as the file is written rather than added in a second pass. MatchID cannot slow it down, because it only runs when you trigger it and never during a copy. The optional Focus check, which scores frames and faces for blur and builds previews, starts after the card has already ejected, and the photos stay available to review and edit the whole time it runs. Turning it on does not change the ingest time. Results vary with hardware, card, reader and file type.
It is designed for sports and it captions anything. The captioning path is subject-agnostic: a roster is a spreadsheet of names, so a start list, delegate list, cast sheet or class list binds to a folder exactly the same way and one keypress writes the name and the full caption line to the IPTC and XMP fields you mapped. Ingest, culling, blur detection, templates, token rename, FTP delivery and the offline catalog do not care what the event was. Only two features are sports-specific, both inside MatchID: jersey number reading, and facial recognition trained on sports frames rather than portraits.
Yes. Previews are built during the ingest run, so paging through a card loads from those rather than decoding a full-size file on each keypress. Focus check scores each frame for blur and each subject face for softness, then flags the soft ones. Sensitivity runs Off, Lenient, Moderate or Strict, and flagged frames are marked rather than hidden, so nothing is culled on your behalf. Star ratings, colour labels and filters work the way they do in any browser.
Start from a roster rather than from typing. Bind a roster to the folder and one keypress writes the athlete name and the full caption line into each metadata field you mapped, together, rather than field by field. That is what GalleryID Desktop does. The alternative in wide use is code replacement, where you type a short code that expands into a name; it is quick once the code file exists, and the cost is building and maintaining that file each time a roster turns over. GalleryID Desktop also reads existing Photo Mechanic code replacement values, so code sets you already have keep working.
Not for captioning. In GalleryID Desktop a bound roster is enough on its own: CaptionID writes the name and the caption line at one press with no headshots indexed at all. Indexing headshots is what switches on MatchID, the automatic facial recognition, and that is optional rather than a prerequisite.
By reading the jersey number instead, which is what makes helmeted sports workable. Faces and numbers are two signals pointed at the same bound roster. Anything below the confidence threshold you set waits in a review queue for a one-click confirmation rather than being written on a guess.
No. GalleryID Desktop runs identification on your own machine. Photos, indexed headshots and face data stay on your computer and nothing is stored on GalleryID servers. GalleryID Cloud is a separate product for when the goal is a hosted archive you search by athlete name.
Yes. GalleryID Desktop runs on macOS 12 and later and on Windows 10 and 11, with the same identification running locally on both.
IPTC and XMP fields including Persons Shown and Personality. XMP is written as the primary with the legacy IPTC-IIM mirror alongside, because agency tooling and wire services still read IIM on JPEGs. Those fields travel with the file, so the name stays readable in Lightroom, Capture One, Photo Mechanic or any program that reads photo metadata after the file leaves.
It is not a raw editor. There is crop and tone and that is the limit, so colour work still happens in Lightroom or Capture One. Automatic facial matching needs reference headshots indexed first, though captioning from a bound list needs none. And two features are sports-specific, jersey number reading and sports-trained recognition, so they add nothing at a conference or a graduation even though the captioning, ingest and culling all still apply.
Stop typing.
Start delivering.
GalleryID Desktop runs on macOS 12+ and Windows 10/11. $20/mo or $200/yr, two computers included.
14-day trial, card required · Weighing up the AI captioning apps instead? GalleryID Desktop vs Sideline Captions