Manual:Pywikibot/flickrripper.py

flickrripper is a Pywikibot script for easy upload of large numbers of images from Flickr to Wikimedia Commons.

It is currently in pre-alpha state.

This tool was requested by some on Commons:Batch uploading/Flickr images by user.

Installation
Flickrripper is part of Pywikibot. You first need to install pywikibot. At basic>Manual:Pywikibot/Basic use|Using the python pywikibot you can find a manual on how to install pywikibot.

GIT or nightly install is recommended.

Once pywikibot is installed, three more Python packages may need to be installed.

Easy install
To install the extra packages with 'Easy install', please install the latest version of setuptools which may be downloaded from http://pypi.python.org/pypi/setuptools.

Python Image Library (PIL) is used to show the image. You can install it by running the command at a command prompt:
 * Python Image Library

The [http://stuvel.eu/projects/flickrapi Python Flickrapi kit] is used to communicate with the [http://www.flickr.com/services/api/ Flickr api]. You can install it by running the command at a command prompt:
 * Flickrapi kit


 * TkInter
 * You can install this library  with your usual package manager; don't forget the  package.

pip
All of the extra packages may be installed at once using, using whatever permissions you have, with:

Python 3
If you are using Python 3 and Pywikibot 2.0 (core), currently (November 2014) flickapi may only be installed from the source code at .

Flickr authentication
You need a valid Flickr API key to run this program. You can apply for a key here. Apply for a Non-Commercial API Key.
 * Flickr API key

Edit config>Manual:Pywikibot/user-config.py|user-config.py with your favorite text editor, and add the following in it.
 * Configuration

Provide your Flickr API key. If you want to mark all images as review automatically. Use "True" only if you have a reviewer or sysop flag on Commons! Add your username here if you want to mark images as reviewed by you.
 * api_key :
 * review :
 * reviewer :

Now you'll be requested to login on your first run of the script, to confirm the application.

The text login doesn't work (needs JavaScript), preventing logging in using a terminal (such as <tvar|labs>Tool Labs</>).

It is better to run  on your home computer so that the confirmation form is opened in your standard browser.

Usage
To run Flickrripper you have to browse to the Pywikibot folder. Then type the following:

with some of the various following options; the necessary ones are bolded.

Notes:
 * the script never uploads duplicate files (identified with their hash);
 * unless the files you're uploading all have title, description etc., edit the script to add a "prefix" to the filenames: look for the   line, replace "Flickr" with your filename prefix in  (can be e.g. the name of the category you're using).

Options to tell what images to work on: The id of the Flickr group to work on. Works on all images in a group. The id of the Flickr set to work on. Works on all images in a set. The id of the user to work. Works on all images uploaded by a user. Username is not an id! For example, id for user The Library of Congress is 8623220@N02 (you can find it here). Start at the photo with this id (useful for resuming uploads). Use this in combination with -group_id/-photoset_id/-user_id. Stop at the photo with this id (useful if you just want to do a part of the upload and later resume with -start_id). Options to tell how to work on each image: Filter out a certain tag (only one at the moment, will be changed to support multiple tags). Mark as flickrreviewed, this overrides the settings in your user-config.py. Set the reviewer for flickrreview, this overrides the settings in your user-config.py. Remove the licensing part and replace it with something custom. Can be used for transfering copyrighted photo's for which you have OTRS permission. Use with care! Don't add categories from automatic suggestions. Manually add a category, which you will be asked for after launching and will not be shown in the description in the confirmation dialog. Does not yet support multiple categories, but you can pass multiple as if they were one only, like this:. For autonomous uploading without showing of each image. Use with care!
 * One of the following:
 * -group_id -
 * -photoset_id -
 * -user_id -
 * One or both of:
 * -start_id -
 * -end_id -
 * 1) -tags -
 * 1) -flickrreview -
 * 1) -reviewer -
 * 1) -override -
 * 1) -removecategories -
 * 1) -addcategory -
 * 1) -autonomous -

Syntax:

Troubleshooting
<pre style="overflow:auto;"> Traceback (most recent call last): File "flickrripper.py", line 41, in    from PIL import Image, ImageTk    # see: http://www.pythonware.com/products/pil/ ImportError: No module named PIL

You can fix this by [<tvar|pil>http://www.pythonware.com/products/pil/</> manual PIL installation] (not by easy_install): «[<tvar|imagetk>http://effbot.org/imagingbook/imagetk.htm</> If you’re using a prebuilt version of PIL, you might need to install additional packages to be able to use the ImageTk module. For example, on Ubuntu, you need both python-imaging and python-imaging-tk]».