Monday 18 July 2011

Picasa Photo Manager

Some background


When I first started using Picasa I wasn’t too impressed; yet another photo editor I thought. It was only after I discovered that photos and videos could be stored online when I realized how useful this could be as a photo backup solution. It is not as cheap as Windows SkyDrive but at 5 USD per year it is not too bad either.

Picasa works really great for a single-user, single-machine configuration. As soon as you reinstall your OS or try to set it up on a different computer it gets ugly. After installing Picasa on my second computer I learnt the the first bad thing about it. I noticed that downloaded albums would have a different folder structure than my original setup. I had to manually fiddle with the files to put it into order.

Strike one!

Another problem was trying to keep all my photos in sync on my NAS server. Since it is not a very powerful machine I didn’t want to run full-blown Picasa desktop application on it but would rather run a small footprint service that will keep my photo collection up-to-date. Ideally this application shouldn’t require any user input beyond the initial set-up. Picasa will not download new files when they are available online neither it will upload a file created locally to the online web album.

Strike two!

Before I started using Picasa Web Albums I used Snapfish to share my photos. You can upload any number of them to the free online storage and then ask your friends to create their own Snapfish account and view your snaps. This was a bit too painful so when I learnt about Picasa Web Albums I was very pleased. I could finally organize my photo library into logical albums. Sharing pictures with family was great but there was a problem – how do I share photos from holiday without sharing those few pictures, which I would rather not take? The hard truth was – there is no way other than creating a separate album.

That was strike three!

After a few years of using Picasa I still like it but I started looking for a better solution. I wanted Picasa Web Albums to work in the same way as DropBox. I create a folder locally and Picasa creates WebAlbum for me with the same name. I drop a picture into a folder and it gets synchronized to my on-line album.


The New Era

Picasa Photo Manager
I started a small project Picasa Photo Manager which supposed to address those limitations using Java and Picasa API. I defined the initial requirements for the application as:
  • Browse Picasa Web Albums
  • Selective download of the Picasa albums (one off download)
  • Watch web albums for changes and update them with new/modified pictures
  • Watch file system folder for new albums and upload them to Picasa Web Albums
  • Watch file system folder for new/modified pictures and upload them to Picasa Web Albums
  • Edit Picasa Web Album properties (album name, date, location, visibility, etc.)
  • Multi account support
  • Coping pictures between accounts
  • Virtual albums to add granular permission management
  • Run the application in the background (minimize to tray in windows and Mac; not sure about Linux)
  • Integrate with Picasa desktop application (not sure to what extend and how to do it yet)
  • Embed Picasa photo metadata (stared photos, face tag, tags, etc) into the image EXIF and use this data to update Picasa database (could be tricky :)