Manual:Pywikibot/login.py

login.py is the python program that logs the user running the pywikipedia bot on to the system using the data that can be found in .

Login as a bot
Bots provide specified result and as a consequence, they should not need the attention that other changes require.

By having a specific user to run the bot software, the changes created in this way will be hidden on a typical recent changes screen.

Bot status is given when a community is in favour with someone running a bot.

If you want to login also with your sysop account (deleting moved categories...) you have to add

sysopnames['wikiproject']['languagecode'] = u'YourSysopUsername'

to user-config.py and start login.py with the -sysop parameter

How it knows where to login
In the user-config.py file there are three components:


 * 1) the language: mylang


 * 1) the family: family - this indicates wiki name, including wikipedia or wiktionary


 * 1) the username: username - this can be any user but it should be a user who is registered to run as a bot.

In order to login to all the projects/languages mentioned in user-config.py, the option -all can be used, and if the same password is used throughout all these projects, it can be combined with -pass so that the program doesn't ask for a password for each site.

will login on all projects in user-config.py, using the same password for all.

For now, using -pass option is not supported. (T102477)

Login using OAuth
Pywikibot supports login using OAuth authentication instead of password.

The OAuth feature needs the site with  installed and configured properly.

OAuth is more secure (passwords are not sent over the internet, can be invalidated at any time, and the permissions of the bot user can be restricted) and should generally be preferred over normal login.

See  on how to use it (it does not involve login.py).

If for some reason you want to log your bot in as a multi-user OAuth app (not recommended, but e.g. older MediaWiki might not support owner-only apps), you can use login.py for that, with the option -oauth.

The process contains the following steps:


 * 1) Create OAuth app at  if it does not exist yet, and record the consumer key and secret


 * 1) Run


 * 1) Input OAuth consumer key


 * 1) Input OAuth consumer secret


 * 1) Authenticate user via web browser. You may need to manually copy the url from the terminal if the web browser doesn't open up automatically.


 * 1) Input response query string to terminal when authentication succeeds. E.g.: oauth_verifier=xxx&oauth_token=yyy


 * 1) Copy and paste authentication entry generated into .

-logout, -pass</tt>, -force</tt>, -pass:XXXX</tt> and -sysop</tt> are not compatible with -oauth</tt>.