Capture One Background Scripts

07 Jan 2020 ∞

Capture One has a very robust AppleScript integration and nearly anything that can't be done in Capture One can be done in a script. Unfortunately, not all of it is well documented or easy to access. Part of that is why I wrote a plugin for setting all of the available application scripts, which can at least be found by looking in Capture One's scripting dictionary.

However, there's another set of background scripts, only referenced occasionally in old forum posts, some of which don't even have search results on Google1. The only way to find them is to dump all of the strings in the Capture One binary, and know what you're looking for:

strings /Applications/Capture\ One\\ One\ 12

Script Handlers

Each of the background scripts is a method, or handler in AppleScript parlance, and is called directly by Capture One.

App Handlers


These handlers are called when Capture One launches or quits and take no parameters.

Batch Handler

CO_BatchJobFinished(jobUUID, rawFilePath, outputPathList)

This handler is called for each raw file processed. It's passed the job ID, the path to the raw file, and the paths of each output image.

Capture Handlers


The Capture Started handler is a mystery. I'm not sure what it's method signature is.

Capture Done is called for each captured image, and is passed the path to the new file.

Barcode Handler


The Barcode Scanned handler is called whenever a barcode is scanned. However instead of passing in the barcode you'll need to retrieve it from the barcode property of a document.


on CO_CaptureDone(rawFilePath)
    -- Do something with the file
end CO_CaptureDone

In order for Capture One to call any of these handlers they must be in a script saved to the Background Scripts folder. To disable the script, remove it from the Background Scripts folder, Disabled Scripts is a good holding place.

After any changes have been made you'll need to update the scripts from Scripts > Update Scripts Menu.

  1. Or worse yet: the only result is a forum post I wrote asking about it