For programmatic reasons I'd like to be able to group photos taken by a photographer using multiple cameras on a given day by the camera.

I'm thinking make, model, & software.

Though it's very possible someone would be using two Canon 1Ds, both updated to the same software version, just with different lenses for example. Or the same lenses even!

Any suggestions welcomed, thank you!

  • 1
    The only thing I can think of is serial number of the camera. But I doubt that it is saved in EXIF. – Zenit Jun 20 '17 at 10:06
  • 2
    @Alex.S: it is, at least by my Canon DSLR's. – ths Jun 20 '17 at 10:24
  • 1
    I acutally only need stuff that doesn't vary in a single burst of photos, so this is what I've settled on so far: identify -ping -format "%[EXIF:Model] %[EXIF:Software] %g %[EXIF:MeteringMode] %[EXIF:ExposureMode] %[EXIF:WhiteBalance] %[EXIF:Artist] %[EXIF:Copyright] %[EXIF:ExifVersion]" filename.jpg It's maybe not perfect but I think it should suffice for my needs. – Codemonkey Jun 20 '17 at 11:43
  • 1
    Possible duplicate of Exif Data - identifiable fields – scottbb Jun 21 '17 at 15:00
  • The proposed duplicate has a different goal (identifying fraudulently attributed images), but the question of using EXIF data to "uniquely" identify shooter and/or camera is the same. – scottbb Jun 21 '17 at 15:01

Tags that should be stable across images taken with the same camera and lens combination include: Artist, Copyright, Make, Model, SerialNumber, LensMake, LensModel, LensSerialNumber.

You can use ExifTool to attempt to identify tags of interest: exiftool -a -G image.jpg

After identifying the tags you wish to use, you can use ExifTool to move files. However, files that do not contain all of the required tags will not be moved. In a bash shell (on Mac or Linux; Windows is different), the command would look like:

exiftool '-Directory<${Make;} ${Model;} ${LensMake;} ${LensModel;} ${SerialNumber;} ${LensSerialNumber;}' -ext jpg .
  • Could you further elaborate what your code would do, and also explain the syntax? I presume that `-Directory<${Artist;} moves the image to a directory with the artist’s name, but what is the purpose of the other tags? Why are you including the dollar sign, braces, and semicolon? – EJ Mak Sep 9 '18 at 0:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.