Download Images From Flickr With Python
Flickr has an amazing library of images and a stellar API for accessing and easily downloading them. I wanted to make use of their API to start downloading a collection of images to use on a future website project and so I started looking for a nice Python script to help me do it.
I found the awesome flickrpy python API wrapper that makes all the hard work very easy to use and wrote a short script that will search for images with a given tag(s) and download them to the current directory.
Expanding on this you could easily use PIL to modify the images and re-purpose them for use on another website such as a wordpress photoblog.
To use the script you’ll have to download flickrpy, and get a Flickr API key.
Here’s the Python script that will download 20 images from Flickr:
#!/usr/bin/env python """Usage: python flickrDownload.py TAGS TAGS is a space delimited list of tags Created by Matt Warren on 2009-09-08. Copyright (c) 2009 HalOtis.com. All rights reserved. """ import sys import shutil import urllib import flickr NUMBER_OF_IMAGES = 20 #this is slow def get_urls_for_tags(tags, number): photos = flickr.photos_search(tags=tags, tag_mode='all', per_page=number) urls = [] for photo in photos: try: urls.append(photo.getURL(size='Large', urlType='source')) except: continue return urls def download_images(urls): for url in urls: file, mime = urllib.urlretrieve(url) name = url.split('/')[-1] print name shutil.copy(file, './'+name) def main(*argv): args = argv[1:] if len(args) == 0: print "You must specify at least one tag" return 1 tags = [item for item in args] urls = get_urls_for_tags(tags, NUMBER_OF_IMAGES) download_images(urls) if __name__ == '__main__': sys.exit(main(*sys.argv)) |
