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.3.tar.gz (13.2 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.3-py3-none-any.whl (13.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: auto_captcha-0.1.3.tar.gz
  • Upload date:
  • Size: 13.2 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.3.tar.gz
Algorithm Hash digest
SHA256 4b13f863913ddb159701c71687555f9c1b644fc13ff4bd703b4311cdc0c0a7dc
MD5 47522503d5c8961c06033adc93ce693c
BLAKE2b-256 8cb50dd7a8c6596699bb40e55debf25c701801d6b20441e2cd673ded62462b2d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: auto_captcha-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 13.6 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e44d72acc5ab665f34e814979f27598624c9bb9af84f37c340320eec908fbbbd
MD5 ab22bce232f53acb1162b8d9cb68bcc4
BLAKE2b-256 53b917630386c72cbf68f7c5d8e7dc028a60003e49da5994fca8b99f1b52155d

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