A digital camera will write all kinds of handy metadata to every photo. This includes things like shutter speed, aperture, date and time the photo was taken, make and model of the camera, the lens, and a shitton more useful info. Even GPS data goes in there, so you know where the photo was taken. This info actually does get used in apps like Lightroom. It is super duper useful for organizing and searching photos. The date is really the most useful.
So you go out and get yourself a film camera. Then you scan in all the negatives. No data. Now what? You gotta type all that shit in, that’s what. It sucks ass.
There’s a really basic iOS app called Film Rolls.
It’s just a simple database. It lets you record this meta data in the field. You just have to develop the habit of opening the app and adding a frame every time you take a photo. You still have to enter things manually, but it’s very easy. Even uses your phone to get the GPS coordinates.
Ok, so now I want to get this meta data from the app and apply it to the actual scanned jpgs. They do not provide a tool for this. What they do provide is the ability to use iTunes to extra an xml file with the data in it. That’s it. To make matters worse, the data is in a format that is very very far away from the Exif spec.
By the way, the Exif spec is very archaic. For example, you can’t store GPS coordinates as a pair of signed floats. You have to store them as two unsigned sets of degrees minutes and seconds, plus N/S E/W indicators for hemisphere. For example.
The Empire State Building is at 40.748428399999995, -73.98565461987332.
In Exif you have to specify in four separate fields
N
((40, 1), (44 , 1), (543402, 10000))
W
((73,1), (59, 1), (83574, 10000))
Oh yeah, did I mention you can’t put any decimals or floats. All those tuples are (numerator, denominator).
(40, 1) = 40
(83574, 10000) = 8.3574
Anyway, I threw together a hasty Python CLI program to take the XML file and apply it as exif to all the jpgs in a specified directory.
I didn’t put the effort in to make the code good. I just made it fast and made it work. I think I even lazily hardcoded the location of the xml file, and didn’t undo that.