Automatically Sync Photos between iPhone & Picasa Using Photo Stream (or Dropbox)

syncThe Problem

If you are like me, then you wish to use technology on your own terms.  I don’t want to be forced into any particular ecosystem.  Mac vs Windows, iPhone vs Android, etc… I see value in all of them.  I like Mac hardware, but need MS office, so I run VMWare Fusion on all my computers and seamlessly shift between OSX and Windows for whatever I am doing.  But I am not here to talk about that.  Today, I will be discussing my own personal photo ecosystem and how I have managed to make it work for me as of today.  My goal – to create an ecosystem where my photos are aggregated into a single place where they can be viewed and managed, backed up and shared.

It starts with the components:

My iPhone – I have used an iPhone since the 3G version, and thus have 4 iPhones that are now distributed across my family.  I also have a Nexus, but I like my iPhone better, so the Nexus is used for backup purposes only.

My photo library – I have been an avid photo taker (not to be confused with a photographer) since the early 2000’s, now having a photo library of more than 30k photos/videos using more than 100GB of space.  I have painstakingly worked to keep them organized (mostly) and they remain mainly organized with a file structure, not having love for any proprietary database or library.  

Screen Shot 2013-01-01 at 7.22.31 PM

For many years I have settled on Picasa as my photo organization application of choice with my favorite features including the ability to order prints from any service of my choice, they make it very easy to create and share an album online and it is decently tied to my Google+ account which is somewhat important to me depending on the day, plus a ton of other management tools that I have gotten used to over the years.  Picasa monitors my photo folders and automatically updates its library.

Screen Shot 2013-01-01 at 7.21.19 PM

I really don’t like iPhoto.

Carbonite – I use Carbonite for online backup which keeps my photo library backed up just in case.

From the beginning, one of the hardest things with the iPhone has been getting the photos off of all my phones into my photo library which sits on my main system (Mac Pro).  Scratch-your-head interesting, iTunes has never allowed you to sync your photos as part of its sync process.  In the past if you had iPhoto, that would work or you had to use an obscure application called ImageCapture on OSX.  On the third-party side, I was also able to use Picasa import, but in all cases it required a physical connect-to-my-computer type of sync process to extract the photos.  Then Apple introduced Photo Stream which magically synced your photos from your iPhone to your other devices and your iPhoto library.  It took Apple a couple versions before it actually made sense, but eventually Photo Stream seemed to be the ideal syncing solution I was looking for.  Except for two things – First, I wasn’t about to switch to iPhoto.  Second, Photo Stream photos are deleted after 30 days.  Apple assumes you will deal with them in this timeframe.  Now what?  I really want to use the Photo Stream technology BUT I want to use it with my Google Picasa setup.  

The Solution

Photo Stream Method

I started to research how Photo Stream worked behind the scenes and eventually saw threads from many people attempting to do something similar.  I wanted to get my photos to sync over the cloud to my computer, grab the photos and do whatever I wanted with them.  I learned about a process called PhotoStreamAgent, which runs locally regardless if iPhoto is installed or running.  You need to have Photo Stream switched on for this process to run.  The PhotoStreamAgent is responsible for synching the photos from the cloud down to my Mac. The photos are stored in a hidden folder with this general path /Users/xxxxxx/Library/Application Support/iLifeAssetManagement/assets/sub.  The photos are distributed in a folder structure with a cryptic naming convention with a single file in each.  

Dropbox Method

Thanks to my wonderful network of friends and colleagues, I recently learned about the Camera Upload feature on the iOS Dropbox app.  This is better than my Photo Stream method in a couple ways.  First it offers the option to sync on wifi or wifi/3G.  This is very nice option due to the second reason – it also syncs videos.  One drawback of the Dropbox solution is that it is only free to a point.  Depending on your account, once you reach the free threshold, you have to start paying.  My approach would be to copy those photos out of the Dropbox folder keeping my actual space usage to a minimum thus keeping my account free.

Have Files…Now What?

So now I know where the photos are, but I need to get them out of this structure and into my preferred year/date structure within my file-based library.  Enter Noodlesoft’s Hazel application ($25 at http://www.noodlesoft.com/hazel.php).   I am sure there are many different ways to solve this problem, but I had heard good things about Hazel so I tried it out.  It took me a couple tries to get my script correct, but eventually I was able to configure Hazel to watch the assets/sub folder for new photos, and then copy them into my distributed folder hierarchy with the proper year/date naming convention.

Here is the rundown of my Hazel setup:

Step 1: Setup Hazel on the main /Users/xxxxxx/Library/Application Support/iLifeAssetManagement/assets/sub folder and add 2 rules.  

Screen Shot 2013-01-01 at 7.18.39 PM

 

First rule on “sub” I called “Go into subfolders” which tells Hazel to act on contents of the entire folder hierarchy.  This is important with Hazel so that it doesn’t also include the actual folder.

Screen Shot 2013-01-01 at 7.18.55 PM

Second rule on “sub” I called “Copy” which tells Hazel to copy any new images or movies (I know, no movies yet) to the root of my Photo folder hierarchy.  This is my actual photo library.  This is a temporary home for the photo.

Screen Shot 2013-01-01 at 7.19.08 PM

Third rule on Photos I named “Sort” which distributes the photos we just copied to the root, to my date based folder hierarchy.  Hazel is very flexible with this naming.

Screen Shot 2013-01-01 at 7.19.49 PM

The whole process looks like this:

  1. Take photo with any of my iPhones (with Photo Stream capabilities, my iPhone 3G doesn’t support this)
  2. Get from iPhone to Desktop; either
    1. iPhone syncs through iCloud using Photo Stream to iCloud and then back down to my local desktop into the Library/Application Support/iLifeAssetManagement/assets/sub folder
    2. iPhone syncs through Dropbox Camera Upload feature and then back down to my local desktop to my Dropbox folder.
  3. Hazel kicks in and copies the photo to my photo library
  4. Picasa which is monitoring my folder hierarchy adds the photo to the Picasa library.  I optionally can sync the Picasa folder with Picasaweb for an online photo album.  (Note that Apple removed this from their solution, though you can now share a Photo Stream online, but it is very limited)
  5. Carbonite backs up my folder hierarchy automatically to my online backup.

 When on Wifi the whole process is completed within a couple minutes normally.  

The Outcome

  • I don’t have to worry about physically moving or backing up the pictures I have on my phone or even worse my wife’s phone.  
  • I don’t have to worry about manually configuring my Picasa library with my photos.  
  • I don’t have to worry about having a consistent way of sharing my photos with friends and family.  
  • I don’t have to worry about my photo library backup.

 

The Caveats

I am sure this list will grow over time.

  • All pictures I take, good, bad, accidental, etc are run through this process.  This can easily clutter my photo library.  Occasionally, I have to manually review the photos within Picasa and delete the out-of-focus, junk photos or the 1000 photos of the sidewalk my daughter took when I gave her my phone.  I guess I don’t really have to, but I do when I have time.
  • Videos aren’t currently synced through Photo Stream.  I am guessing Apple will add this ability in the future, probably under “only sync video with Photo Stream when on Wifi”.  It appears that Apple is in fact synching your videos to iCloud as part of your iCloud backup, but they aren’t accessible from anywhere unless you do a restore.  #lame  At least I have the Dropbox solution for video.
  • In practice the Dropbox app will timeout if it isn’t open, meaning you are staring at it upload photos and videos.  This isn’t ideal.  I want the photos and videos to upload in the background all nice and quiet like.  This seems to be more of an issue with videos in that they are much larger and the app isn’t considering the active upload as something that shouldn’t timeout the app.
  • Need to figure out how to do this with my Nikon next.  Maybe one of those wifi storage cards?  Hmmmm.
  • Looks like there is potentially an easier soluton running on the Windows side called iCloud Control Panel (http://support.apple.com/kb/DL1455) which allows you to select where to put your Photo Stream synced photos on your desktop.  Though this isn’t the full solution I was looking for, it would have made a couple steps easier.  That said, I don’t wish to run the Window’s version of Picasa.

Conclusion

I hope this helps others like me.  Since I have implemented this, I have had no issues – everything has worked as expected.  Let me know if I got anything wrong or if you have a different solution.