Sites where CloakBrowser prevents CAPTCHAs entirely (Layer 1)
Site
Previous Issue
CloakBrowser Result
Google Search
IP-level CAPTCHA (May 5)
✅ No CAPTCHA
Google Accounts
reCAPTCHA on OAuth (Apr 16-19)
✅ No CAPTCHA
MyFitnessPal
Cloudflare Turnstile (Apr 2)
✅ No CAPTCHA
LinkedIn Login
—
✅ No CAPTCHA
ClosedRouter Portal
Cloudflare detection
✅ No CAPTCHA
Discord Login
—
✅ No CAPTCHA
Best Buy
Cloudflare
✅ No CAPTCHA
ElfHosted Store (store.elfhosted.com)
Cloudflare bot detection
✅ No CAPTCHA
ElfHosted OIDC (auth.elfhosted.party)
Cloudflare + OIDC redirect chain
✅ No CAPTCHA
HuggingFace Join
hCaptcha (Apr 22)
⚠️ hCaptcha still present
Reddit Login
—
⚠️ reCAPTCHA on login form
Solver results (Layer 2)
CAPTCHA Type
Service
Result
Notes
reCAPTCHA v2 (2captcha demo)
2Captcha
✅ Solved in 15s
"Captcha is passed successfully!"
reCAPTCHA v2 (Reddit)
CapSolver
❌ Invalid captcha type
Reddit uses v3, not v2
hCaptcha (HuggingFace)
CapSolver
❌ Site not supported
CapSolver blocks this domain
hCaptcha (HuggingFace)
2Captcha
❌ Timeout >100s
hCaptcha is much harder to solve
solvecaptcha.com demo results (2026-05-12)
CAPTCHA Type
Service
Result
Time
Image CAPTCHA
2Captcha
✅ Solved
58s
reCAPTCHA v2
2Captcha
✅ Solved
5s
reCAPTCHA v3
2Captcha
✅ Solved
5s
reCAPTCHA v2 Callback
2Captcha
✅ Solved
43s
reCAPTCHA v2 Invisible
2Captcha
✅ Solved
37s
Cloudflare Turnstile
2Captcha
✅ Solved
5s
GeeTest CAPTCHA
2Captcha
✅ Solved
97s
Text CAPTCHA
2Captcha
✅ Solved
21s
8/8 solved. 2Captcha handles all standard CAPTCHA types reliably.
2captcha.com demo results (2026-05-20)
CAPTCHA Type
Service
Result
Time
Notes
reCAPTCHA v2
2Captcha
✅ Solved
5s
reCAPTCHA v2 Enterprise
2Captcha
✅ Solved
62s
NEW
reCAPTCHA v3
2Captcha
✅ Solved
5s
Cloudflare Turnstile
2Captcha
✅ Solved
5s
MTCaptcha
2Captcha
✅ Solved
5s
NEW
Normal Image
2Captcha
✅ Solved
~30s
Fixed SVG skip bug
hCaptcha
—
✅ Detected
—
HuggingFace
GeeTest v4
—
✅ Detected
—
Real demo
KeyCAPTCHA
—
✅ Detected
—
Demo is docs-only
Lemin
—
✅ Detected
—
Demo is docs-only
Key Lessons
CloakBrowser handles ~80% of CAPTCHAs by prevention — most sites never trigger a challenge
Use fresh browser instances per site — long sessions crash (Chromium memory leak). Exception: OIDC/SSO flows — keep the same instance through the full login → redirect → target app chain so cookies carry through
OIDC/SSO multi-redirect flows work — login at the identity provider, then navigate to the OIDC-protected app. The same browser session carries cookies/auth through the entire redirect chain (tested: ElfHosted store → auth.elfhosted.party → filebrowser)
Page.evaluate() only takes 1 arg — CloakBrowser's Playwright binding doesn't support extra positional arguments like standard Playwright's page.evaluate(js, arg1, arg2). Use string interpolation or page.evaluate("async () => { ... }") with values baked into the JS string instead
CapSolver rejects test/demo sitekeys (2captcha.com demo keys, 0xFF test keys) — 2Captcha does not
2Captcha is the better fallback — accepts all sitekeys including demo/test ones
hCaptcha is the hardest to solve — both services struggle. Best strategy: avoid or use headed mode
Reddit uses reCAPTCHA v3 — now supported with solve_recaptcha_v3_2captcha()
hCaptcha sitekeys are UUIDs — extracted from page HTML, not from data-sitekey attributes
GeeTest takes longest — 97s average, requires gt and challenge params extracted from page
ClickSolver is free — tries clicking Turnstile iframe before spending API credits
Default solver is now 2captcha — changed from capsolver (which rejects demo/test sitekeys)
source ~/clawd/.venv/bin/activate
export PYTHONPATH=~/clawd/skills/captcha-solver/scripts
# Navigate to a protected site (auto-handles CAPTCHAs)
python3 stealth_browse.py --url "https://protected-site.com"# Check if CAPTCHA is present
python3 stealth_browse.py --url "https://protected-site.com" --output detect
# Get full page HTML
python3 stealth_browse.py --url "https://protected-site.com" --output html
# Get page text
python3 stealth_browse.py --url "https://protected-site.com" --output text
Method 2: StealthBrowser in Python code
import sys
sys.path.insert(0, '/Users/clawdbrunner/clawd/skills/captcha-solver/scripts')
from stealth_browse import StealthBrowser
sb = StealthBrowser(headless=True, humanize=True, auto_solve=True)
# Default solver is now 2captcha. Override with prefer="capsolver" if needed.
page = sb.navigate("https://protected-site.com")
# page is ready — CAPTCHAs handled automatically
title = page.title()
content = page.content()
sb.close()
⚠️ Important: Create a new StealthBrowser instance for each site to avoid Chromium crashes.
Exception for OIDC/SSO flows: When a target app requires login through an identity provider (e.g., OAuth2/OIDC redirect chains), keep the sameStealthBrowser instance through the entire flow. Login at the identity provider first, then navigate to the target app — the session cookies carry through automatically.
# OIDC flow pattern (same browser instance)
sb = StealthBrowser(headless=True, humanize=True, auto_solve=True)
page = sb.navigate("https://id-provider.example.com/login")
# ... fill credentials, submit ...
page.goto("https://protected-app.example.com/") # OIDC redirect chain uses same session# Now authenticated at the target app
sb.close()
Method 3: Manual scripts (legacy)
For when you already have a browser session and just need to solve a CAPTCHA.