Backing Up Flickr

I’ve been a Flickr user since the service was first launched. Since then, I’ve had many different cameras, connected to multiple machines, and used multiple methods to upload content.

In many cases, I’d export photos from my photo-management software (I’ve used everything from Image Capture and iPhoto to Lightroom and more recently Aperture) to a folder on the desktop, deleting it when I was done.

So although I still have all of the original photographs imported into and stored in my Aperture library, because of the less-than ideal workflow I’d used, I don’t necessarily know which photos — or which versions (cropped, WB-adjusted, etc.) of the photos — I’ve exported and uploaded.

These issues, combined with the goal of loading my better photographs (which all make it to Flickr) onto my AppleTV for easier family viewing, has lead me to try and create a complete, easily updatable local backup of all my Flickr-photos in their originally-uploaded sizes.

After trying many, many apps to accomplish this task, I’ve only been able to find one that actually works — and with only a single modification to the source code.


After asking the Twitterverse for suggestions and trying many different applications, scripts, and techniques unsuccessfully, my friend Willie recommended I take a look at FlickrTouchr. FlickrTouchr is a Python script that you run via the command-line, which works fine on Mac OS X and Linux, and would probably work just fine on a Windows machine too (info here).

The author, Colm MacCárthaigh, created the script to synchronize his iPod touch with his Flickr account. MacCárthaigh writes:

The whole thing is a single python file, as implementing the flickr API calls myself rather than use any of various python flickr libraries (as they each seem poorly maintained) seemed easier. [Once it] authenticates against your flickr account, it will progress through syncing your entire flickr account into a directory hierarchy. It keeps a small cache of authentication data in the directory too. […] If you have the same photo in multiple sets it will use hard-links to preserve local disk-space.

My modifications

MacCárthaigh wanted to download photos optimized for his iPod touch, but I need to download the original, full-size photos. So I modified the script (which was released under the Apache 2.0 license) to grab the original-size photos when possible.

You can download my version of the script from GitHub. Please feel free to help me improve it in other ways if you’d like.

Running FlickrTouchr

Download the script, open a Terminal window, and from the command-prompt, just run the script and specify the name of the folder you’ll be using to store your backup, like this:

mkdir BackupFolder
python BackupFolder

The script will open your default web browser, allowing you to authorize FlickrTouchr to access your library, and will commence downloading every photograph you’ve uploaded, organizing them into folders by set, and using hard-links to save space.

Even better, because FlickrTouchr doesn’t rely on external libraries, it should just work on any system that can run Python without additional software or prerequisites.

Each time you run the script, it will find anything new that you’ve added, and update your backup as needed.

More articles in the Archive →