Skip to main content

Universal captcha solver for Playwright automation — hCaptcha + reCAPTCHA v2 via NopeCHA API

Project description

auto-captcha

PyPI version Python License: MIT MCP Compatible Hermes Skill

Universal captcha solver for Playwright browser automation. Detects hCaptcha and reCAPTCHA v2, solves them via the NopeCHA API, and injects tokens — so your scripts never get stuck.

Your script → page loads → captcha detected → NopeCHA API → token injected → continue

Install

pip install auto-captcha
python -m playwright install chromium

Quick Start

from auto_captcha import smart_page

with smart_page(api_key="your-key") as page:
    page.goto("https://protected-site.com")
    page.fill("#email", "user@example.com")
    page.click("#submit")   # captcha auto-solved

Three Ways to Use

1. smart_page() — Context Manager (easiest)

from auto_captcha import smart_page

with smart_page(api_key="your-key") as page:
    page.goto("https://example.com")
    page.fill("#email", "user@test.com")
    page.click("#submit")
    print(page.captcha_log)  # [{'type': 'hcaptcha', 'status': 'solved'}]

2. SmartPage — Wrap Existing Browser

from auto_captcha import SmartPage
from playwright.sync_api import sync_playwright

pw = sync_playwright().start()
browser = pw.chromium.launch(headless=True)
page = SmartPage(browser.new_page(), api_key="your-key")

page.goto("https://example.com")
page.fill("#input", "value")

3. CaptchaSolver — Full Control

from auto_captcha import CaptchaSolver

solver = CaptchaSolver(api_key="your-key")

captchas = solver.detect(page)       # [{'type': 'hcaptcha', 'sitekey': '...'}]
result = solver.solve("hcaptcha", sitekey, url)   # CaptchaResult(success=True, token='...')
solver.inject(page, "hcaptcha", result.token)
results = solver.auto_solve(page)    # detect + solve + inject

CLI

auto-captcha credits --key YOUR_KEY           # Check NopeCHA balance
auto-captcha detect --url https://example.com # Detect captchas
auto-captcha solve --url https://example.com  # Solve captchas

MCP Server

Works with Claude Code, OpenClaw, Cursor, and any MCP-compatible agent.

claude mcp add auto-captcha -- python -m auto_captcha.mcp_server

Or in your MCP config:

{
  "mcpServers": {
    "auto-captcha": {
      "command": "python",
      "args": ["-m", "auto_captcha.mcp_server"],
      "env": {"NOPECHA_API_KEY": "your-key"}
    }
  }
}

Tools provided:

  • captcha_detect — detect captchas on a URL
  • captcha_solve — detect and solve all captchas
  • captcha_credits — check NopeCHA credit balance

Hermes Skill

Copy the hermes-skill/ directory to ~/.hermes/skills/auto-captcha/ and set NOPECHA_API_KEY in your .env.

Supported Captcha Types

Type Detection Speed Reliability
hCaptcha (checkbox) iframe + DOM 10-40s High
hCaptcha (enterprise) iframe + DOM 10-40s High
reCAPTCHA v2 iframe + DOM 60-120s+ Medium (queue)

Coming soon: reCAPTCHA v3, Cloudflare Turnstile, FunCAPTCHA — track progress

Pitfalls

  • reCAPTCHA queues are slow — can take 60-120+ seconds during peak
  • Each solve costs 1 credit — check with solver.get_credits()
  • Headless detection — some sites block headless; use headless=False
  • Lazy-loaded captchas — add time.sleep() after actions that might trigger them

Get an API Key

Get free credits at nopecha.com. Set as environment variable:

export NOPECHA_API_KEY="your-key"

License

MIT

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

auto_captcha-0.1.2.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

auto_captcha-0.1.2-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file auto_captcha-0.1.2.tar.gz.

File metadata

  • Download URL: auto_captcha-0.1.2.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for auto_captcha-0.1.2.tar.gz
Algorithm Hash digest
SHA256 51eb56603a194889cbdeb11c52e73e0128308bede85b8be8ee050b69513511cb
MD5 b42e884f587a8a6eaf2196e77c6bcfa6
BLAKE2b-256 8946cc5a9e864a819ed75a22e4a858531af17bbc4828e12535421c69a108ab57

See more details on using hashes here.

File details

Details for the file auto_captcha-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: auto_captcha-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for auto_captcha-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 90d3e07320abaed888020c45774acd5e2af8ef16c21a61755223825b7551d6c0
MD5 0d6ab0b7169d636f14b6a03a7d7a87e6
BLAKE2b-256 a42a810e0f707b39ab7c39b228adbb1e846a94719a1e85a8ff3fc8aebc3ce027

See more details on using hashes here.

Supported by

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