Flickr Leech is a cool web app. It displays all Flickr photos, including those already rendered invisible because of the 200-photo limit in free accounts. But I need more: I want to download these photos for backup.
After looking around, I found several tools that does the job. They didn’t quite work for me, so I decided to hack my own.
Using the Flickr API and a Python wrapper, I came up with the following:
- Get flickr.py and manually add it to the host Python library.
- Get an API key from Flickr.
- Write the script:
#!/usr/bin/python import flickr import urllib flickr.API_KEY = 'API key goes here' user = flickr.people_findByUsername(u'username') photos = flickr.people_getPublicPhotos(user.id, 500) total = 0 for photo in photos: photoURL = "http://static.flickr.com/%s/%s_%s_o.jpg" % (photo.server, photo.id, photo.secret) photoFile = "%s_%s.jpg" % (photo.title, photo.id) data = urllib.urlretrieve(photoURL, photoFile) total = total + 1 print "Downloading %s" % photoFile print "Done with %s photos." % total
- Make the script executable, create a directory where to download files, and execute the script from there.
- Rinse, dry, press.
I know, the script is very rudimentary. It’s my first Python script, and it needs a lot of work: there’s no exception-handling for one. But it worked perfectly for me.
Are you sure you can retrieve pass the 200 limit? I’ve tried the flickr api explorer and setting the per_page into 500. But the result came up always have “total=200″. Am I missing the essential trick here?
Back then, I was able to do that. Unfortunately, yes, you won’t be able to get past the 200-photo limit. I guess they have set this as a hard limit now.