iPhoto Shared Libraries

Posted: September 21, 2009 in Computing, General

I have to express some disappointment in Apple in regard to iPhoto. iPhoto does not have any functionality for users who might want to have a unified library of photos. It’s a little bit of an all-or-nothing situation. I would have even be willing to move up to Aperture (Apple’s high end photo management app), if it handled the two machine/one library issue… but alas it doesn’t either.

Without a built-in solution you’re left with three unappetizing solutions:
1. Put all of your photos on one network drive and everyone shares that library.
2. Put all of your photos on one computer, and everyone else has to use that computer whenever they want to do anything with photos.
3. Each person keeps their own library and everyone just accepts that the libraries are never going to match.

Of all options, the first, putting the library on a network drive, would seem to be the best solution. The issue is that, unlike music (which works well when served up from a network drive), iPhoto requires a lot of bandwidth to work well (it has to pull a lot of photo information from the drive to your computer in a short time). It is obvious iPhoto is not tuned to work this way, and it becomes practically useless via the network. I got very frustrated, very quickly using this method. A secondary issue is that iPhoto locks the library it’s working with so even if speed wasn’t an issue the fact that only one copy of iPhoto can access a library at a time.

A variation might be to use one person’s computer for the library, and share that drive (so only the secondary people have issues accessing the information). However this isn’t good either, it depends on the primary computer being available to the network which just isn’t always possible (and not very reliable), and you’ll still run into the one-at-a-time issue.

My ultimate solution would be local libraries that are synchronized to a central “master” library. I even looked into the possibilities of using rsync (the command line backup utility built into OS X), and diff3 (a utility that allows a merge of two similar, but different files). I got my hopes up when I saw that iPhoto creates an XML file in its library that could theoretically be merged. All was not as it seems though, as the XML file appears to be a one-way dump of the iPhoto library, and is not used by iPhoto to control its layout… back to square one (as a note, I believe this file is available so that 3rd party apps can parse the XML to get information from iPhoto without touching the “real” library files).

So, in the end, I decided to take iPhoto out of the loop and come up with an alternate solution. It’s not perfect, but it will do… for now. I set up a “drop box” on a centralized server and I set Image Capture to save to that folder. Attached to that folder is an action that automatically imports any contents of that folder into iPhoto. On each machine I set up an action on that folder so that all machines get a copy of that image when it is placed in the folder.

Interestingly, now the folder is a bit of a “master” for new photos. It also means that each user can configure their library any way they like without regard for others using the same photo (very similar to how I would expect iTunes to work for most users). The galleries may not match, but the library of photos will.

I wouldn’t say that this is the best solution, but considering the limited options, this is the best for now.

As a postscript I suppose I could go in-depth with this a bit further and use the aforementioned XML files to compare differences between machines, then use AppleScript to replicate whatever changes have been made on all the machines across the network, but I honestly don’t know if that’s necessary… I’ll have to think about that a bit more, certainly not a job for the feint hearted.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s