Browser not supported

TagMyPhoto Express needs the File System Access API to read and save photos on your device. Please open this page in Chrome or Edge on desktop.

TagMyPhoto Express

Open a folder of photos to get started. Tags are saved directly into each JPEG's IPTC keywords — nothing leaves your browser.

    Tags shown here won't be saved to the file — JPEG only for now.

    Roster

    Also tagged

    Metadata Templates

    File Renaming

    Help

    Getting started

    Click Open Folder and choose a folder of photos. Everything happens on your device — tags and metadata are saved directly into each JPEG's IPTC/XMP data, and nothing is ever uploaded anywhere. Use Reopen recent to jump back into a folder you used before.

    Tagging photos

    Select a photo (click a thumbnail, or use ← / →), then type a name or number into the box and press Enter (or click Add) to tag it. Roster buttons let you tag someone with a single click. Check the box on one or more thumbnails to limit Apply Template / Rename Files to just those photos — with nothing checked, they apply to every photo in the folder. Show untagged filters the thumbnail strip down to photos with no tags yet.

    Roster

    Your roster is the list of names/numbers you tag most often. Use the gear icon to manage rosters — the Manual, CSV / TSV, and Presto tabs each add people a different way, the dropdown switches between multiple rosters, and the JSON tab exports/imports them as a backup or to move between devices.

    Importing a roster from your team's website

    The Presto tab fetches a team roster page directly, but it only works when this app is running on the same site as that roster page — a browser won't let it read another site's pages otherwise. To make that possible, add this tag to a page on your team's website (ask whoever manages the site if you don't have access):

    <script src="https://express.tagmy.photo/embed.js"></script>

    That adds a small Launch button wherever the tag is placed. Clicking it opens the full app as an overlay on top of that page, so Manage Roster → Presto can pull a roster from any page on that same site.

    Metadata Templates

    Build a reusable set of IPTC/XMP fields (Description, Headline, Credit, etc.) under the gear icon. Any field can include variables like {photographer}, {org_name}, {iptcyear4}/{iptcmonth}/{iptcday}, {persons}, or your own {CUSTOM:Label} — you'll be prompted for custom values when you apply. Apply Template writes the filled-in fields into every targeted photo at once.

    File Renaming

    Build a filename pattern under the gear icon using the same kind of variables (dates, {persons}, {CUSTOM:Label}) plus {SEQ:001} for an auto-incrementing number — the digits set both the starting value and the zero-padded width, e.g. {SEQ:001} gives 001, 002…, and {SEQ:0100} starts at 100 with 4 digits. Every pattern needs a {SEQ:...} so renamed files don't collide. The original file extension is kept automatically.

    Settings

    Save your Photographer and Organization name once (top-right gear icon) and they'll auto-fill whenever you open Apply Template — no need to retype them each time.

    Keyboard shortcuts

    ← / → — previous/next photo  ·  Enter — add the typed tag  ·  ↑ / ↓ — move through tag suggestions  ·  Esc — clear the tag box

    Settings

    Used to auto-fill the Photographer/Organization fields when applying a metadata template. Saved on this device.

    Always shown in the "Also tagged" section so you can tag one with a single click, even before it's used on any photo. Saved on this device.

    Manage Roster

      Manage Metadata Templates

      Click a variable to insert it into the focused field

      Custom variables used

      Preview (sample data)

      Apply Template

      Custom variables

      Loading Photos…

      Starting…

      Applying Template…

      Starting…

      Manage Rename Templates

      Click a variable to insert it into the pattern

      This pattern has no {SEQ:...} — add one (e.g. {SEQ:001}) so every photo gets a unique filename.

      The original file extension is kept automatically — no need to include it in the pattern.

      Add your own fill-in fields with {CUSTOM:Label} — e.g. {CUSTOM:Sport} or {CUSTOM:Opponent/Event}. You'll be prompted for a value when you rename.

      Use {SEQ:001} for an auto-incrementing sequence — the digits set both the start and the padding, e.g. {SEQ:001} gives 001, 002…, and {SEQ:0100} gives 0100, 0101… starting at 100.

      Custom variables used

      Preview (sample data)

      Rename Files

      Custom variables

      Renaming Files…

      Starting…

      Removing All Keywords…

      Starting…