Twitter to Flickr, and Back Again

View from the front porch

I just got back from a week in Hawaii and only took my film camera. I shot 5 or 6 rolls of film and I look forward to getting them up on Flickr but there are many steps between those 35mm canisters still sitting in the bag I need to unpack and someone being able to click a link to look at them. (Unless everyone wants to come over to my house, which is also fine with me.) I think this is worth the wait but it does remove a bit of the instantaneousness that services like Flickr and Twitter offer. It’s fun sitting on a palm-covered beach or enjoying a tropical drink on a warm patio with a slow-moving fan, taking a picture, and send a modern-day, wish-you-were-here postcard to a few friends.

Today, the snapshot app of choice among my friends appears to be Instagram. This is perfectly fine and I use it a bit, but I’m a Flickr man and I’d rather use that, especially since the rest of my Hawaii photos will go there. It’s nice to make a big set of all of the vacation photos, and be able to email the link off to Mom and Pop, and even nicer to be able to see them again together in 1 year, 5 years, 25 years time. As far as Flickr goes, I feel pretty good about their thoughts about longevity.

The postcard delivery system, to extend (and strain) the metaphor, is Twitter. Twitter is probably the best spot to put things where people will see them sooner than later. Instagram comes equipped with its own social network but Twitter is the common stomping ground of me and my friends and acquaintances.

My Twitter social graph visualized by Recollect
Bert and Chris built a thing for Recollect mapping your Twitter social clusters. Also, Meghan told me to put more pictures in my blog posts.

The crux of the problem was how to get my photos directly to Twitter and Flickr without building a Rube Goldberg device, because things with fewer moving parts break less and are easier for me to understand.

Going through a multi-step process, especially when I’m on the go (it’s mobile!) and when I’m trying to enjoy my surroundings (it’s social!), sounds horrible. I want one app and to be able to hit one button. Flickr does have a mobile app, which is serviceable, but I usually already have Twitter up and most Twitter clients have this nice ability to take pictures within the app. With my phone, I’m usually sending a tweet with a photo attached, and not a Flickr photo that I also want to share on Twitter. Twitter to me is the Instant, which is usually what I want when on the go.

Twitter is, in its fundamental glory, a magic word distribution system (via Kellan, via Aaron). Most Twitter clients allow you do media-webby things like upload a video or a picture to a service of your choosing, get a link back in return, and then helpfully include that link for you in the tweet. This outsourced-upload thing uses what is formally called OAuth Echo. This is described here and seems to have originally been thought of by Raffi Krikorian of Twitter.

Magic word distribution system

Flickr is not one of the upload options, but things like cloudapp, droplr, pikchur, twitgoo are (at least in Tweetbot). I’ll take most of the blame for Flickr not being included as it was something that I was working on in my side time towards the end of my tenure, but didn’t finish before I left. One service does handle this handshake of Twitter-to-Flickr, gdzl.la, but it returns the link back as a gdzl.la link, effectively introducing one more URL forwarder into the world (which is a shitty thing to do if you can help it).

Twitter for iPhone used to support different image backends but probably took it out shortly after they built their own image upload thing. So there’s that.

So, after a week of wanting to take pictures with my phone and send them along to Twitter, and having to choose between Instagram (look at all those filters!) and Twitter’s Official Image Backend™ (store up to 3200 pictures!), I decided to build my own Twitter-to-Flickr uploader atop Aaron’s parallel-flickr of which I also run an instance of for myself.

In theory, this OAuth Echo upload stuff could live by itself (see gdzl.la) and there’s no reason that I couldn’t return my parallel-flickr’s instance URL but there’s something nice about saying “here’s my Flickr kit”, playing along with the aforementioned idea of fewer moving parts as well as knowing all the archival bits-and-pieces going on. Using flamework and the pieces of p-flickr that were already there, a few cups of coffee and a chunk of quiet time, I was able to bolt it on.

One important thing that made this possible is that these 3rd party clients, knowing that they are building things that the official client won’t or can’t build WANT you to build more things to fill the gaps. Tweetbot, at the end of the list of the dozen or so included image backends, has a field marked “Custom…” which takes a field to put in an URL endpoint that knows the steps to the OAuth Echo dance. This kind of allowance and permission is refreshing as things become increasingly less so.

Love it when things say
No, YOU drive.

It looks like Aaron merged this change and the upload branch (which made my part really easy) this morning so if you’re running parallel-flickr, feel free to kick the tires on it, and if not, look at the code and see how easy it is do.