/nonoCAPTCHA

An asynchronized Python library to automate solving ReCAPTCHA v2 using audio

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

https://travis-ci.org/mikeyy/nonoCAPTCHA.svg?branch=master PyPI PyPI - Python Version PyPI - License PyPI - Status

nonoCAPTCHA

An async Python library to automate solving ReCAPTCHA v2 by audio using Mozilla's DeepSpeech, PocketSphinx, Microsoft Azure’s, and Amazon's Transcribe Speech-to-Text API. 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.

Public

This script was first featured on Reddit at /r/Python - see here for the thread. I’ve finally decided to release the script.

Preview

Check out 1-minute presentation of the script in action, with only 8 threads!

nonoCAPTCHA preview

Compatibility

Linux, macOS, and Windows!

Requirements

Python 3.6.0 - 3.7.0, FFmpeg, a Microsoft Azure account for Bing Speech API access, an Amazon Web Services account for Transcribe and S3 access, and for Pocketsphinx you'll need pulseaudio, swig, libasound2-dev, and libpulse-dev under Ubuntu.

Installation

$ pip install nonocaptcha

Configuration

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

Usage

If you want to use it in your own script

import asyncio
from nonocaptcha.solver import Solver

pageurl = "https://www.google.com/recaptcha/api2/demo"
sitekey = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"

proxy = "127.0.0.1:1000"
auth_details = {
     "username": "user",
     "password": "pass"
}
args = ["--timeout 5"]
options = {"ignoreHTTPSErrors": True, "args": args}
client = Solver(
     pageurl,
     sitekey,
     options=options,
     proxy=proxy,
     proxy_auth=auth_details,
)

solution = asyncio.get_event_loop().run_until_complete(client.start())
if solution:
     print(solution)

Donations

The use of proxies are required for my continuous updates and fixes on nonoCAPTCHA. Any donations would be a great help in allowing me to purchase these proxies, that are clearly expensive. If anyone is willing to share their proxies, I wouldn't hesitate to accept the offer.

Bitcoin: 1BfWQWAZBsSKCNQZgsq2vwaKxYvkrhb14u