One feature that put Flickr ahead of the existing photo-sharing pack a few years ago was the fantastic Flickr API
. The API gives developers the chance to tap into the Flickr photo database and create stunning visualizations
, fun toys
, and productivity hacks
that extend the service. Hosting my own images means I won't be able to take advantage of these Flickr-specific tools built (for the most part) by fans of the service. Loosing access to these tools is one of the biggest drawbacks to going off the grid. Even my ability to leave Flickr with my photos hinges on the existence of the API. People can use the API to export their photos if they're not happy with the service, or if they want to share their photos in different way.
But exporting your photos isn't just a matter of pushing an "export" button. You have to have a certain amount of technical expertise to be able to export your photos from Flickr. There is one existing tool I know of that can grab all of your photos—Flickr Backup
—but in my experience it's a bit clunky to use, and doesn't snag all of my data like descriptions and tags. (Sounds like it's getting better since I tried it, though, based on posts in the FlickrBackup Open Discussion
.) So while it's possible
to get your photos out of Flickr, it's not easy
for most of the world. I consider myself familiar with Flickr and its API, but it still took a few hours to write a script to grab my photos, titles, captions, and tags.
The key to gathering my photos was logging in as myself through the Flickr API. (Which is about as easy as it sounds.) Luckily most of the heavy lifting is handled through phpFlickr
—a swiss-army-knife for working with the Flickr API in PHP. If you want to try this at home you'll need to download and install phpFlickr on your server. Make sure the main phpFlickr file is in your public working directory, along with the file auth.php
. This little file helps handle Flickr authentication.
Note the URL of auth.php
on your server, it should be something like:
Flickr controls access to their API through keys, and I needed one for my import script. With my auth URL in hand, I headed over to the Flickr API and applied for a key
I was instantaneously approved for the key, and I clicked on the Your API Keys
link and found the key I just made on the list. I clicked Edit key details
, gave the import script a quick title and description, and placed my auth.php
URL in the Callback URL
field. Then I clicked "Save Changes" to finish the setup.
I found my new key once again on the list of keys and copied both my Key
, and my Secret
—which is a smaller alphanumeric string that shouldn't be shared with others (as the name implies). You'll need to jump through these hoops to register your import script as well if you're following along.
To recap the progress so far, these items were in my magic bag of holding before any files were transferred:
- A MySQL username, password, and database name, with empty photos and tags tables.
- A local filesystem directory where photos will be stored.
- A Flickr API Application Key and Secret.
It takes a bit of work to put the pieces in place, but once this groundwork is done, importing the photos from Flickr can begin. That's up next.