Skip to content
flickrurlget: Flickr photo downloader from command-line in batch
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


flickrurlget: Flickr photo downloader from command-line in batch

flickrurlget is a command-line tool written in Python 2.x that can be used
to download photos from Flickr in batch. flickrurlget itself doesn't
download photos, but it generates a list of raw photo URLs which can be
downloaded with a download manager (even with `wget -i').


* Can get highest-resolution (if possible, original) image URLs in:
** a Flickr photo
** a photostream of a Flickr user (i.e. all photos of the user)
** the favorite photos of a Flickr user
** an album (photoset) of a Flickr user
** a Flickr group
** a gallery of a Flickr user
* Batch operation: started from the command-line with a bunch of Flickr page
  URLs, and it discovers all the photos in there without any interaction.
* Can get anybody's photos (not only your own).
* Can get non-public and adult (non-safe) photos as well (after loggig in).
* Doesn't need a GUI or a web browser for most of the operations.


* A Unix systems (such as Linux or Mac OS X). Windows is not supported yet.
* Python 2.7, 2.6, 2.5 or 2.4 with the standard ssl module. Earlier Python 2.x
  is not supported yet. Python 3 is not supported.
* A Flickr API key and maybe API secret (can be obtained online, see below).
* Optional: To download the actual photos, a download manager (something as
  simple as wget will do).
* Optional: To get non-public and/or adult (non-safe) photos, a Flickr account.


1. Obtain your flickr API key (and maybe API secret).
   The official way is to obtain them online:

   The API key is a 32-character long hex string, and the corresponding API
   secret (not needed) is a 16-character long hex string.

   For read-only access to public and safe (non-adult) photos on Flickr,
   all you need as an API key. For read-write access or for getting non-public
   and/or adult (non-safe) photos from Flicker, you need both an API key and
   an API secret.

   If the official way is too cumbersome for you, there is an API key in

   There is an API key and and API secret in the file

   Save the API key to the file ~/.flickr_download in the format (don't forget
   to change the command to include your API key):

     $ echo api_key: 32_CHARACTER_API_KEY_OBTAINED___ >~/.flickr_download
     $ chmod 600 ~/.flickr_download

   Here is how to append the API secret to the config file (don't forget to
   change the command to include your API secret):

     $ echo api_secret: 16_CHAR_SECRET__ >>~/.flickr_download

   If you don't have an API secret, you may want to append the dummy value
   to the config file, so other tools (such as flickr_download) would also

     $ echo api_secret: dummy >>~/.flickr_download

2. Install Python 2.7, 2.6, 2.5 or 2.4.

   After installation it should work using the commands `python2.7',
   `python2.6', `python2.5', `python2.4' or `python'. To double check, run
   this command, and check that it prints True in the end:

     $ python -c 'vi = "%s.%s" % __import__("sys").version_info[:2]; print("%s %s" % (vi, vi in ("2.7", "2.6", "2.5", "2.4")))'
     2.7 True

3. Download the flickrurlget script and install it somewhere on your $PATH.
   If you don't know how to install, here is a typical way:

     $ sudo chown root.root flickrurlget
     $ sudo mv flickrurlget /usr/local/bin/

   Check it by checking that this command displays a short help:

     $ flickrurlget --help
     flickrurlget: Flickr photo downloader from command-line in batch

4. If you want to download the images, you need a download manager. For
   simplicity, you can use wget. Install it and check that it works:

     $ wget --help
     GNU Wget 1.15, a non-interactive network retriever.

5. If you want to get non-public and/or adult (non-safe) photos, you need a
   Flickr account. Register on Flickr by clicking on ``Sign Up'' on . You can also use your existing Yahoo account to
   sign in.

   To make flickrurlget log in on behalf of you, you need to log in in your
   browser on first, and then set up the OAuth tokens
   (credentials) in the file ~/.flickr_token to be used by flickrurlget. To
   do so, run the flickrapilogin tool, which can be downloaded from the same
   source as flickrurlget. Just run it without arguments:

     $ flickrapilogin

   If you haven't installed it, you may need the ./ prefix to run it:

     $ ./flickrapilogin

   Follow the interactive instructions displayed by the program.
   It will tell you what to do in your web browsers, and if you follow the
   instructions, it will succeed and create the file ~/.flickr_token, with
   hex keys, something like this, _without_ a trailing newline:


   Alternatively, it's also possible to log in using the flickr_download
   tool instead. If you have it installed, run it like this:

     $ flickr_download -t

   Logging in like this needs to be done only once in a lifetime, it also
   can be done on a different computer with a web browser, and the
   ~/.flickr_token file can be copied over.

   There is no point logging in multiple times, because the contents of
   ~/.flickr_token will be the same after re-login.

How to use flickrurlget:

1. Browse and use Flickr in your web browser. If you find something
   interesting, keep it open in a browser tab.

2. Copy-paste one or more interesting URLs to the command-line, and run
   flickrurlget on it. For example:

     $ flickrurlget
     info: logging in to Flickr

   If it takes very long, you may want to run it in GNU Screen.

3. If you want to download those images, you can do it with wget. Example:

     $ flickrurlget >urls.lst
     info: logging in to Flickr
     $ wget -i urls.lst

   If it takes very long, you may want to run it in GNU Screen.

Why is flickrurlget better than ?

* Takes Flickr page URLs and figures out all parameters automatically.
* Can download groups and galleries (in addition to user photostreams and
  photosets) as well.
* Has user ID, group ID and photoset ID discovery: the user doesn't
  have to do manual ID lookups before running the tool.
* Uses only standard Python modules, no other dependencies.
* Better compatibility with old Python: works with 2.7, 2.6, 2.5 and 2.4;
  not only 2.7.

You can’t perform that action at this time.