Earlier this year we opened our home to a new Mac, and have been very happy with the new addition. We were able to transition over immediately from our Linux computer with no issues for most functionality (e.g., email, web browsing, word processing). I assumed the same would be true with our digital pictures. Not so much.
Years ago we began storing and managing all of our digital pictures in F-Spot on Linux. Being concerned with portability, and not wanting to be locked into a single product, I did enough research to convince myself we’d be able to export all our pics and captions if/when the time came to switch. After all, there’s a preference allowing you to “Write metadata to file,” with a tip stating, “Enable this option to store tags and descriptions inside supported image formats.” Surely that means other standards-compliant photo management tools would be able to parse that data.
Being on a Mac, the natural place to start for photo management was iPhoto. I eagerly began exporting our photos from F-Spot and importing them into iPhoto. As our F-Spot pictures imported with no tags or descriptions, moments of grave disappointment and panic ensued. Therein began my education about the world of metadata (Exif, XMP, IPTC, etc.), taking me down a long road of trial-and-error, yielding numerous discoveries.
Setting the Stage
First, F-Spot was, indeed, storing captions in the image, I believe in the XMP tag space. I was relieved once I was able to confirm their existence. Additionally, I learned iPhoto is able to parse some metadata on import, just not the tags that F-Spot (and many other programs) use.
A Possible Aperture Alternative
If iPhoto wasn’t up to the task, I was willing to purchase a product that could. After significant research, I decided to take an Aperture eval for a spin. I enjoyed Aperture’s interface quite a bit more than iPhoto, and found it more intuitive for the basic image functions we perform regularly (importing, captioning, fixing red-eye, organizing into folders and albums, rotating). It properly parsed the F-Spot metadata, and even clearly showed the different metadata organizational structures in its editing pane.
As a side note, I still find it a bit suspicious that Apple built one photo product to handle most metadata properly, but left that functionality out of iPhoto. I realize they are likely trying to encourage their users to purchase the “upgrade” to Aperture, but if iPhoto is seen as an entry-level photo management tool for ameratures, would not this capability encourage more people to migrate from other platforms?
In the end, however, I opted not to go with Aperture. It doesn’t store movie clips, meaning we’d need a separate solution for movies and pictures. Additionally, it seemed like overkill for the type of photo management we wanted to do.
Exiftool, My Hero
Enter exiftool. It is the only tool I could find that was able to read the XMP metadata written by F-Spot, and rewrite it to the IPTC tags that iPhoto was expecting. Brilliant.
The learning curve for using exiftool was a bit steep, but that was mostly due to my lack of knowledge about the world of digital picture metadata and exiftool’s extensive power and flexibility.
Here’s the process I finally developed for migrating our pictures:
- Export all the pictures from F-Spot, choosing the option to ‘auto-rotate’. Without the auto-rotate option, I discovered that the metadata was somehow stored differently for images I had rotated within F-Spot. I was never able to find a way to capture those captions. Instead, by using auto-rotate, the captions were preserved as expected. One side-effect, however, is that the F-Spot categories/tags were lost. I quickly decided that was an acceptable casualty.
- Use exiftool to copy the XMP tags into the corresponding IPTC tags. This command seemed to do what I needed:
exiftool -overwrite_original -P -F '-IPTC:Caption-Abstract<$UserComment' *.*
- Sort the pictures into dated folders, to aid in creating separate iPhoto Events upon import. Again, exiftool did the trick:
exiftool -r '-FileName<CreateDate' -d %Y-%m/%Y%m%d_%%f.%%e .
- Copy the movie (i.e., MPG) files into the appropriately dated folders, so they are imported alongside the pictures from the same events.
- Import into iPhoto.
Thanks exiftool, and Phil Harvey. My donation’s on the way.
Update (02/22/2009): If you’re interested in capturing F-Spot’s keywords, be sure to check out Derek’s comment below. He’s also got a detailed post with good tips about this process to include keywords. Thanks, Derek.
That process did the trick for our 1,500 captioned photos that were in F-Spot. I’ve since imported 4,000 more of our pics that were not captioned, with an estimated several thousand to go. I realize that’s not a huge photo library, but it is large enough for me to take seriously the concerns many people have voiced about iPhoto’s capabilities and performance for large libraries.
iPhoto Library Manager
So I once again set out to find options for archiving photos from iPhoto while still making them easily accessible. I came across a highly recommended tool that provides that capability perfectly: iPhoto Library Manager. It allows for the creation of multiple iPhoto libraries, all accessible from the same interface. At a glance you can view the albums in each library, the size of the library, and its current status. You can split libraries, or copy ablums and pictures between libraries. It even provides the option to directly import photos into any of your existing libraries. At $20, it’s a steal.
I hope we don’t need to migrate away from iPhoto for quite some time. When the time comes, surely the image metadata standards will have consolidated and solidified, and tools will have followed along in their development, right? Right!?
If not, there’s always exiftool.