Tag from your roster with one press, or let MatchID do it — included in all plans. Start your 14-day free trial.Get Started →
Sports photo captioning software

Fast ingest. Fast caption.
Captioned your way.

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 into the same metadata fields, on your own machine. Ingest at card speed, filter out the soft frames, caption, deliver. macOS and Windows.

The short version

There are two ways to caption fast

One is code replacement: you type a short code and it expands into a name. It’s genuinely quick once the code file exists, and the cost is the file itself, because somebody builds it and somebody rebuilds it every time a roster turns over.

The other is roster binding, which is what GalleryID Desktop does. The roster is already attached to the folder, so there’s no code file and nothing to keep current. If you have Photo Mechanic code replacement values already, they still work here.

Caption your way

Three ways to name an athlete. Use whichever suits the game.

Most tools pick one of these and make you live with it. All three are here, they write into the same fields, and you can switch between them inside the same folder without changing anything.

Type it

Shortcodes (CaptionID)

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.

  • When: You already think in codes and you are fast at it.
Click it

The roster, on screen (CaptionID)

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.

  • When: The roster changed this week, or you are covering a team you do not know by heart.
Let it run

MatchID finds them

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.

  • When: Hundreds of frames from one game and a deadline that is already close.
No headshots needed

Two of the three work with nothing indexed

Shortcodes and the on-screen roster need a roster and nothing else. Headshots are what switch MatchID on, and that’s a choice you make later rather than a setup cost you pay first.

Confirmed, never guessed

A review queue, not a shrug

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.

Who Is This

Ask about a single frame

Run identification against one photo on demand, for when a number is hidden or two athletes look alike at distance.

Fast ingest

4,664 files in 1:19, card already ejected

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’re free to review and edit. Nothing adds to the wait.

1:19

4,664 files off the card in 1 minute 19

52 GB of Canon R3 JPEGs, measured from the ingest click to the card ejecting, on a MacBook Air M4 through a CFexpress reader. Token rename, folder patterns and per-folder numbering all happened inside that number, and so did the metadata, because it is written into each file as the file is written rather than in a second pass afterwards.

Focus check

Blur detection runs after, and never in the way

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

Facial recognition fires when you say so

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.

Culling

Previews are already built, so paging is instant

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

Written during the copy

Metadata is spliced into the file as it 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.

Wire-safe

XMP primary, IIM mirror

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 go into Persons Shown and Personality, so they stay readable in Lightroom, Capture One and Photo Mechanic once the file leaves.

Deliver

Out of the app without a detour

Crop and tone, IPTC and XMP templates, FTP and FTPS delivery with watermarking, and ZIP export with sidecars.

Catalog

Search drives that are unplugged

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.

Where the names come from

The roster is already at your fingertips

Bind a folder and start captioning. GalleryID ships with 1,042 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. 348,656 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.

Beyond sports

Built for sports. Works on anything you can put in a list.

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.

Subject-agnostic

Conferences, graduations, races, press calls

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.

Sports-only extras

Two features, clearly labelled

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.

Any list

.xlsx, .xls, .csv, .tsv or .txt

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.

Straight answer

What it doesn’t do

Worth knowing before a trial rather than after.

It isn’t a raw editor

There’s crop and tone, and that’s the limit. Colour work still happens in Lightroom or Capture One, and the names travel with the file when it gets there.

Automatic matching needs headshots

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.

The sports parts are the extras

Jersey number reading and sports-trained recognition don’t 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 doesn’t care what the event was.

Stop typing. Start delivering.

GalleryID Desktop runs on macOS 12+ and Windows 10/11. $20/mo or $200/yr for the first computer, $10/mo for each one after. 14-day trial, card required.

Weighing up the AI captioning apps instead? GalleryID Desktop vs Sideline Captions.