Automating Metadata in Capture One

Learn methods to automate metadata entry in Capture One, ensuring consistency and saving time during post-production.

On a 2,000-image shoot, nobody is sitting there typing metadata into every file. It just doesn’t happen. So either your files leave the cart with no useful metadata at all, or you find a way to automate it. This is how I do it.

Why Bother

A lot of shoots already use structured filenames like Client_Project_001.CR3 or Brand_Season_Shot01_001.NEF. The first chunk of those filenames usually carries the useful information: client, job, event, whatever. That data should live in the metadata too, so files stay searchable after they leave Capture One. Manually copying it over is a waste of time. A short script does it for you.

Where This Helps

  • Save the camera filename before renaming. Push the original filename into metadata before you rename based on shot or naming convention, so it’s still recoverable later.
  • Editorial and e-commerce shoots. Auto-tag files with the project or client name so images stay searchable down the line.
  • Large productions. When there are multiple sets and photographers, embedding the project name in metadata helps prevent mix-ups.
  • Stock and asset libraries. Apply searchable metadata to thousands of images in a few clicks.
  • Renamed files. Even if a retoucher or client renames the file, the original name is still there in metadata.

How It Works

  1. Make sure filenames follow a consistent format like Client_Project_001.CR3.
  2. Run the script on your selected variants. It grabs the part before the first underscore and writes it into the Headline metadata field.
  3. That headline is now searchable inside Capture One and any DAM you push the files into.

The Script

tell application "Capture One"
    repeat with thisVariant in (get selected variants)
        set fileName to name of thisVariant
        set AppleScript's text item delimiters to "_"
        set headlineText to item 1 of (text items of fileName)
        set content headline of thisVariant to headlineText
    end repeat
end tell

If you’d rather grab everything up to the last underscore instead of the first, swap the headline line for this:

set headlineText to text 1 thru ((offset of "_" in fileName as integer) - 1) of fileName

Where to Save It

Save the script as a .scpt file in ~/Library/Scripts/Capture One Scripts/. Capture One picks it up automatically and you can run it from the Scripts menu, or map it to a Stream Deck button if you’ve got one.

Why It’s Worth Doing

Run this at the end of a shoot, or right before renaming on import, and every file ends up properly tagged with no human typing involved. That’s the whole pitch. For more advanced metadata work, Capturebot is worth a look.