Skip to main content

An asynchronized Python library to automate solving ReCAPTCHA v2 by images/audio

Project description

PyPI PyPI - Python Version PyPI - License PyPI - Status

GoodByeCaptcha

An async Python library to automate solving ReCAPTCHA v2 by images/audio using Mozilla’s DeepSpeech, PocketSphinx, Microsoft Azure’s, Wit.AI, Google Speech or Amazon’s Transcribe Speech-to-Text API. Also image recognition to detect the object suggested in the captcha. Built with Pyppeteer for Chrome automation framework and similarities to Puppeteer, PyDub for easily converting MP3 files into WAV, aiohttp for async minimalistic web-server, and Python’s built-in AsyncIO for convenience.

Disclaimer

This project is for educational and research purposes only. Any actions and/or activities related to the material contained on this GitHub Repository is solely your responsibility. The misuse of the information in this GitHub Repository can result in criminal charges brought against the persons in question. The author will not be held responsible in the event any criminal charges be brought against any individuals misusing the information in this GitHub Repository to break the law.

Compatibility

Linux, macOS, and Windows!

Requirements

Python 3.7, FFmpeg, a Microsoft Azure account for Bing Speech API access, an Amazon Web Services account for Transcribe and S3 access, a Wit.AI or for Pocketsphinx. You’ll need pulseaudio, swig, libasound2-dev, and libpulse-dev under Debian.

Train the yolov3 neural network to improve image recognition.

Training YoloV3

I recommend training yolov3 to improve the recaptcha resolution with the following information:
  • Dataset

  • Tutorial Video

  • Object classes: bicycle, bridge, bus, car, chimneys, crosswalk, fire hydrant, motorcycle, palm trees, parking meters, stair, taxis, tractors, traffic light, trees

Installation

$ pip install goodbyecaptcha

Install tutorial

https://img.youtube.com/vi/hPYMUdQ2aV8/0.jpg

Configuration

Please edit goodbyecaptcha.example.yaml and save as goodbyecaptcha.yaml

Usage

If you want to use it in your own script

from goodbyecaptcha.solver import Solver

pageurl = "https://www.google.com/recaptcha/api2/demo"

proxy = "127.0.0.1:1000"
auth_details = {"username": "user", "password": "pass"}
args = ["--timeout 5"]
options = {"ignoreHTTPSErrors": True, "args": args}  # References: https://miyakogi.github.io/pyppeteer/reference.html
client = Solver(
    # With Proxy
    # pageurl, lang='en-US', options=options, proxy=proxy, proxy_auth=auth_details
    # Without Proxy
    pageurl, lang='en-US', options=options
)

solution = client.loop.run_until_complete(client.start())
if solution:
    print(solution)

If you want to use events

from goodbyecaptcha.solver import Solver

pageurl = "https://www.google.com/recaptcha/api2/demo"

proxy = "127.0.0.1:1000"
auth_details = {"username": "user", "password": "pass"}
args = ["--timeout 5"]
options = {"ignoreHTTPSErrors": True, "args": args}  # References: https://miyakogi.github.io/pyppeteer/reference.html


class MySolver(Solver):
    async def on_goto(self):
        # Set Cookies and other stuff
        await self.page.setCookie({
            'name': 'cookie1',
            'value': 'value1',
            'domain': '.google.com'
        })
        self.log('Cookies ready!')

    async def on_start(self):
        # Set or Change data
        self.log('Set data in form ...')
        await self.page.type('input[name="input1"]', 'value')

    async def on_finish(self):
        # Click button Send
        self.log('Clicking send button ...')
        await self.page.click('input[id="recaptcha-demo-submit"]')
        await self.page.waitForNavigation()
        await self.page.screenshot({'path': 'image.png'})


client = MySolver(
    # With Proxy
    # pageurl, lang='en-US', options=options, proxy=proxy, proxy_auth=auth_details
    # Without Proxy
    pageurl, lang='en-US', options=options
)

client.loop.run_until_complete(client.start())

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

goodbyecaptcha-2.4.1.tar.gz (64.8 kB view hashes)

Uploaded Source

Built Distribution

goodbyecaptcha-2.4.1-py3-none-any.whl (78.5 kB view hashes)

Uploaded Python 3

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