Skip to main content

A free/libre interface for solving reCAPTCHA challenges.

Project description

Version 0.6.4

librecaptcha is a free/libre program and library that allows you to solve reCAPTCHA challenges.

librecaptcha does not automatically solve challenges and is not designed to make it easier to do so—it provides an interface through which a human can solve the challenges without proprietary software.

Installation

From PyPI

Install with pip:

sudo pip3 install librecaptcha[gtk]

To install locally, run without sudo and add the --user option. You can omit [gtk] if you don’t want to install the GTK 3 GUI.

From the Git repository

Clone the repository with the following commands (you’ll need to have Git installed):

git clone https://github.com/taylordotfish/librecaptcha
cd librecaptcha

Then install with pip:

sudo pip3 install .[gtk]

To install locally, run without sudo and add the --user option. You can omit [gtk] if you don’t want to install the GTK 3 GUI.

Run without installing

Run the first set of commands in the previous section to clone the repository. Then, install the required dependencies by running:

sudo pip3 install -r requirements.txt

To install the dependencies locally, run without sudo and add --user.

Usage

If you installed librecaptcha, you can simply run librecaptcha. Otherwise, run ./librecaptcha.py. Pass the --help option to show usage information. If you’d like to use the GUI, be sure to pass the --gui option.

To use librecaptcha programmatically, import it:

import librecaptcha

and then call librecaptcha.get_token(). Its signature is:

get_token(
    api_key: str,
    site_url: str,
    user_agent: str, *,
    gui=False,
    debug=False,
) -> str

Parameters:

  • api_key: The reCAPTCHA API key to use. This is usually the value of the data-sitekey HTML attribute.

  • site_url: The base URL of the site that contains the reCAPTCHA challenge. This should start with http:// or https:// and include the hostname. Everything after the hostname is optional. For example: https://example.com

  • user_agent: The user-agent string to use. This should match the user-agent used when sending the request that requires a reCAPTCHA token. You can generate a random user-agent string with librecaptcha.random_user_agent().

  • gui: Whether to use the GTK 3 GUI (as opposed to the CLI). The CLI writes to standard output and reads from standard input.

  • debug: Whether to print debug information.

Returns: A reCAPTCHA token. This should usually be submitted with the form as the value of the g-recaptcha-response field. These tokens usually expire after a couple of minutes.

Notes

librecaptcha currently supports two types of challenges: dynamic and multicaptcha.

dynamic challenges present you with a grid of different images and ask you to select the images that match the given description. Each time you click an image, a new one takes its place. Usually, three images from the initial set match the description, and at least one of the replacement images does as well.

multicaptcha challenges present you with one large image split into a grid of tiles and ask you to select the tiles that contain a given object. Occasionally, the image will not contain the object, but rather something that looks similar. It is possible to select no tiles in this case, but reCAPTCHA may have been fooled by the similar-looking object and would reject a selection of no tiles.

Known issues

Even when all challenges are completed and a token is obtained, the token may still be rejected when used. If this happens, simply try again. Waiting a while, using a computer on a different network, or using a different user-agent string may also help. Unfortunately, you may have to try many times—perhaps dozens or more.

What’s new

Version 0.6.3:

  • librecaptcha should now work again, aside from the existing issues with tokens sometimes being rejected.

Version 0.6.0:

  • Added librecaptcha.has_gui(), which returns whether the GUI can be used.

  • Improved cross-platform support for the CLI.

Version 0.5.0:

  • Added a GTK 3 GUI (thanks, cyclopsian!).

  • get_token() now has an optional gui parameter.

  • get_token() now requires a user-agent string.

  • librecaptcha.py now has a --gui option.

  • librecaptcha.py now accepts an optional <user-agent> argument. If not provided, a random user-agent string is chosen and shown.

Version 0.4.0:

  • Image windows are now automatically closed when questions are answered.

Version 0.3.x:

  • Fixed possible encoding issue in setup.py.

  • librecaptcha can now be installed from PyPI, or from the Git repository with pip or setup.py.

Version 0.2.x:

  • Updated user-agent list.

  • The current reCAPTCHA version is now fetched during initialization and no longer needs to be manually updated.

Dependencies

The installation instructions above handle installing the Python packages. Alternatively, running pip3 install -r requirements.freeze.txt will install specific versions of the dependencies that have been confirmed to work.

License

librecaptcha is licensed under the GNU General Public License, version 3 or any later version. See LICENSE.

This README file has been released to the public domain using CC0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

librecaptcha-0.6.4.tar.gz (32.6 kB view details)

Uploaded Source

Built Distribution

librecaptcha-0.6.4-py3-none-any.whl (36.8 kB view details)

Uploaded Python 3

File details

Details for the file librecaptcha-0.6.4.tar.gz.

File metadata

  • Download URL: librecaptcha-0.6.4.tar.gz
  • Upload date:
  • Size: 32.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1+

File hashes

Hashes for librecaptcha-0.6.4.tar.gz
Algorithm Hash digest
SHA256 b55b73bca7995ff637576bb5c4a502b9daa1a7c12971e051021f6e374e77e42d
MD5 3e46beadce82b4d4f89634b18413b306
BLAKE2b-256 c84086dc79d88650129ece5167e2046d180353743a06f42dee1606b025cf1281

See more details on using hashes here.

Provenance

File details

Details for the file librecaptcha-0.6.4-py3-none-any.whl.

File metadata

  • Download URL: librecaptcha-0.6.4-py3-none-any.whl
  • Upload date:
  • Size: 36.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1+

File hashes

Hashes for librecaptcha-0.6.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b3bd710bef75bb82fd9d752066646b786ef5c748892551f3f1060b0cf69e82ec
MD5 7c9ed3f0fdcc5d92bf03ec028f19dc3c
BLAKE2b-256 bf840679cf954430ddbee90631e06d068f307df4ea49dac368d279f0e162d12d

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page