Photo Mechanic Shortcodes for Sports Photography: A Working Setup Guide
Last fall I walked into a college football game with Photo Mechanic shortcodes I'd built six months earlier. First quarter, I typed my code for the starting quarterback. PM filled in a name that belonged to a player who'd transferred to another school over the summer. The editor caught it before publish, barely. That one outdated roster entry nearly cost me a relationship I'd spent two years building.
Photo Mechanic shortcodes are supposed to save you time. And they do, when your files are current and your structure makes sense. But most photographers set up their roster files once, maybe twice a season, then wonder why their captions keep breaking. The shortcode system in PM is powerful. It's also unforgiving if your underlying data is stale or your column mapping is off.
This guide walks through how to set up Photo Mechanic shortcodes that actually hold up across a full season of sports coverage. We'll cover file structure, shortcode naming conventions, and the roster update problem that trips up experienced photographers.
How Photo Mechanic Shortcodes Actually Work
The concept is simple. You type a short code in PM's IPTC Stationary Pad or caption field, and Photo Mechanic swaps it for full text from a roster file. Type hw10 and it fills in "Marcus Rivera, Quarterback, Home Team." The roster file is just a tab-separated text file (TSV) sitting on your hard drive.
Each row in the TSV represents one shortcode. Column one holds the code you'll type. Columns two through six hold the replacement text that maps to specific IPTC photo metadata fields. Most photographers use at least three columns: the shortcode itself, the player's full name, and a longer caption string with team and position info. You load the file in PM under Edit > Settings > Code Replacements, point it at your TSV, and you're set.
Where it gets tricky is naming conventions. If you're covering a tournament with multiple teams, shortcode collisions are a real problem. Two players on different teams wearing number 15 will share the same code unless your naming structure accounts for team identity. That's where prefix and suffix patterns matter.
A solid approach: use a two or three-letter team abbreviation as a prefix, then the jersey number. So hw10 is the home team's number 10, aw5 is the away team's number 5. Some photographers prefer suffixes (10hw), which works fine as long as you're consistent. Pick one structure and stick with it across the files you build. Consistency matters more than which pattern you choose. The same prefix system handles the away side cleanly when you don't cover the opposing roster weekly.
Building a TSV File That Holds Up All Season
Your TSV file is only as good as the data inside it. Here's what a clean roster file looks like for a football game:
Column 1: Shortcode (e.g., hw10). Column 2: First and last name. Column 3: Position. Column 4: Team name. Column 5: A long-form string like "Marcus Rivera, QB, Central State (#10)." Column 6: Optional, maybe a secondary caption format for different submission requirements.
The file itself is plain text. You can build it in Excel, Google Sheets, or any text editor. Save as tab-delimited, use the .txt extension (PM expects .txt for roster files), and avoid any special characters in your shortcodes. Letters and numbers only.
For football specifically, duplicate jersey numbers between offense and defense create a headache. Two players wearing number 44, one a running back, the other a linebacker. You need a way to differentiate. Adding a position-based suffix works: hw44o for offense, hw44d for defense, hw44s for special teams. It adds a character to your typing, but it beats filing a correction at 11 PM.
When rosters change mid-season, keeping your caption files current matters as much as your file naming. Name your files by date and matchup: 2026-09-12_HOME-vs-AWAY.txt. When you're juggling files for multiple games during football season, you'll thank yourself for the clear naming.
The Roster Update Problem (And How to Fix It)
Here's the part nobody talks about enough. Player names on a roster rarely change during the season. That's actually what makes the problem so sneaky. You build your file at the start of the season, it works perfectly for weeks, and you stop thinking about it. Then a mid-season transfer happens, or a player gets called up from the practice squad, and your file has the wrong name for a jersey number. Because it happens so rarely, you don't catch it until the caption is already filed.
The photographers who stay accurate check their roster files before each game, even when nothing has changed for weeks. Some rebuild files manually when they hear about a roster move. Others maintain shared spreadsheets with other photographers in their market to flag changes.
This is actually the problem that led to SnapCaption existing. The tool pulls current roster data for college and professional sports, updated weekly. You pick your teams, configure your columns and shortcode structure, and download a ready-to-use TSV in under a minute. No spreadsheet wrangling, no manual lookups, no wondering if that rare mid-season roster change slipped past you.
Whether you use an automated tool or build files by hand, the principle stays the same: your Photo Mechanic shortcodes are only as reliable as the roster data behind them. Update weekly. Check before each game. Your captions depend on it.
When jersey numbers are obscured in your best action frames, the reference shot habit pairs perfectly with current roster files to catch identification mistakes before they hit the caption.
Making Photo Mechanic Shortcodes Part of Your Pre-Game Routine
The best workflow habit I've picked up: treat your roster file like checking your gear bag. Before you leave for an event, confirm the file is loaded in PM, the roster data is current, and your shortcode structure matches the teams you're covering that day.
Takes two minutes. Saves you from filing corrections at midnight.
If you're working with a Canon R3 or Sony A9 III firing 30 fps, you're going to have hundreds of frames to caption after the game. Photo Mechanic shortcodes turn that captioning job from a 90-minute grind into a 15-minute task. But only if the file behind the shortcodes is solid. Build it right, keep it current, and your post-game workflow gets a lot less painful.
From roster to file in under a minute.
Frequently Asked Questions
What file format does Photo Mechanic use for code replacements?
Photo Mechanic uses tab-separated text files (.txt) for code replacements. Each row contains a shortcode in the first column and replacement values in subsequent columns, separated by tabs. You can create these in any spreadsheet application and export as tab-delimited text.
How many columns can a Photo Mechanic roster file have?
You can use up to six columns in a roster file. The first column is always the shortcode. Columns two through six map to different IPTC fields or caption formats. Most sports photographers use three to five columns covering player name, position, team, and a long-form caption string.
How do I handle duplicate jersey numbers in Photo Mechanic shortcodes?
For football, add a position-based suffix: "o" for offense, "d" for defense, "s" for special teams. So two players wearing number 44 on the same team become hw44o and hw44d. For other sports, sequential letter suffixes (a, b, c) work well to separate players sharing a number.
How often should I update my roster files?
Check before each game during active seasons. Roster changes are rare during a season, but when they happen, your file will have the wrong name for a jersey number until you catch it. The infrequency is what makes it dangerous. You stop checking because nothing has changed for weeks, then a mid-season transfer slips through.
Can I use the same shortcode structure for different sports?
Yes, and you should. Using a consistent prefix-plus-number structure (like hw10 for home team #10 or aw5 for away team #5) across all sports means you don't have to remember different systems for different teams. Consistency cuts down on typing errors under deadline pressure.


