Photo Management Thoughts
- EXIF is camera oriented data. Burned in by camaera. Probably should not touch.
- IPTC, XMP are user oriented data, like title, etc.
- digikam is the only one I've seen on Linux with good feature and which leaves your photos alone on disk.
- other apps available but most use a DB of some kind.
I need a way to define albums and sub-albums for my photos.
- Can use pure smart albums in digikam. So, for example, my France trip in 2003 would be tagged appropriately with location information. Each photos would have "france" and then maybe the city, like "Blois" as a tag. Then you can write a query like "photos fram 2003, tagged with France and Blois" to create a "2003, France, Blois" album.
- I can tag the album structure explicitly in the photos. So, for example, I can put a keyword like "album:2003-France/Blois" which defines the album (and sub album).
- even easier is to just use dashes, and make sure the album is unique, like this: 2003-09-france-blois
- no subalbums in this scheme, unless I overlay a schema on top. But why? Not every service support sub-albums.
- Or I can do this: 2003-09-france/blois
Using pure smart albums is conceptually simpler, in that I'm not using "special" tags to define albums. Disadvantage is that my albums are now all implicitly defined in digikam - my smart-album query definitions are, in fact, my albums. No easy way to export that. If I want to use some other photo manager, I'd have to recreate the queries, assuming they can even do that.
- alternatively, use exiftool for pure smart albums. This is pretty explicit.
- Advantage of second is that the album structure is embedded directly in the tags and I can use something like exiftool to recreate albums at will. Easy to see what album the photo is in at a glance. Disadvantage is that there is a slightly higher cognitive load - I need to look for special album tags with special meaning in order to glean out my albums.
To find all photos with a keyword
exiftool -ext .JPG -fast -p 'source$directory/$filename;destination$directory/$filename;$Keywords' -qq -r -m ~/media/images/date_organized/2013/10-Oct/eastern_townships/ | grep -i "album:2013_fall_eastern_townships"
Find all photos with a keyword (a bit more compact)
exiftool -qq -m -r -if '$keywords =~ /album:2003_fall_france_blois/i' -p '$directory/$filename' ~/media/images/date_organized/2003/09-Sep/france
Copy all photos with a keyword
exiftool -qq -m -r -o . -if '$keywords =~ /album:2003_fall_france_blois/i' ~/media/images/date_organized/2003/09-Sep/france
Copy all photos with a rating greater than 5
exiftool -qq -m -r -o . -if '$Rating eq 2||$Rating eq 3||$Rating eq 4||$Rating eq 5' ~/media/images/date_organized/2007/11-Nov/domincan_republic
To tag all photos in a folder with a keyword
exiftool -keywords+=album:2013_fall_france_vienne *.JPG