Colin Charles Agenda

Backing up or taking out your data from Flickr with flickrdownloadr

I’ve been a Flickr Pro subscriber since 2005. I consume 75.36GB of storage, spread across 25,765 photos. I spent a lot of time on it since 2005, creating albums, joining groups, etc. I love the product and I’m paid up till 2018 and do not intend to stop subscribing to Flickr Pro. But I’m worried about Yahoo! and their future.

I read the Wired piece on how to get your photos off Flickr and thought it might be nice to have a backup of photos using their new Camera Roll feature. Simply put, I can get my data out but it involves me clicking “Select all” quite a lot. This is not a good solution naturally.

I found flickrdownloadr, a Mono app. It installed quickly on the Mac, it pulled in a whole bunch of Mono libraries, but after an initial login with Flickr, I would get an unhandled exception (you can’t tell from the GUI, it just crashes silently; I manually ran the app from /Applications/flickrdownloadr).

Unhandled Exception:
System.Net.WebException: Error: SendFailure (Error writing headers) ---> System.Net.WebException: Error writing headers ---> System.IO.IOException: The authentication or decryption has failed. ---> Mono.Security.Protocol.Tls.TlsException: The authentication or decryption has failed.
at Mono.Security.Protocol.Tls.RecordProtocol.ProcessAlert (AlertLevel alertLevel, AlertDescription alertDesc) [0x00000] in <filename unknown>:0
at Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at Mono.Security.Protocol.Tls.SslClientStream.EndNegotiateHandshake (IAsyncResult result) [0x00000] in <filename unknown>:0
at Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0
at System.Net.HttpWebRequest.GetResponse () [0x00000] in <filename unknown>:0
at FloydPink.Flickr.Downloadr.Logic.UpdateCheckLogic.UpdateAvailable (FloydPink.Flickr.Downloadr.Model.Preferences preferences) [0x00000] in <filename unknown>:0
at FloydPink.Flickr.Downloadr.Presentation.LoginPresenter.ApplyUser (FloydPink.Flickr.Downloadr.Model.User user) [0x00000] in <filename unknown>:0
at FloydPink.Flickr.Downloadr.Logic.LoginLogic+<CallApplyUser>c__async0.MoveNext () [0x00000] in <filename unknown>:0

It looked like the fix might have been related to this github issue and the best way to fix it was: mozroots --import --ask-remove. I did that. I tried mozroots --import --sync, especially after reading the Mono Security FAQ, but to no avail.

Turns out, the fix was cleaning out Flickr’s Sharing & Extending — there were accounts that had access for companies that had closed down (remember Qoop anyone?). But weirdly, there were two varying “flickr downloadr” authorisations (one had a version string attached to it).

Glad that was fixed but it seems like an app that would take a long time to actually get going. My next plan is to install this on a Linux box and sync it to an always on box. Presumably all this will “just work”, since Mono/GTK looks the same everywhere.

Its a shame that Flickr doesn’t provide an easy exit path. I mean I cancelled my Basecamp account not long ago, and it was not the refund bit that impressed me the most — it was the fact that I could take all my data out, and it would be a generated ZIP file that I could unzip and consume in my browser. Things just worked.

Here’s to Flickr’s long future. And I guess, Yahoo!’s…