← Back to Browser & Automation
Browser & Automation by @adinvadim

2captcha

Solve CAPTCHAs using 2Captcha service

0
Source Code

2Captcha Skill

Solve CAPTCHAs programmatically using the 2Captcha human-powered service.

Installation

# One-line install
curl -fsSL https://raw.githubusercontent.com/adinvadim/2captcha-cli/main/solve-captcha \
  -o /usr/local/bin/solve-captcha && chmod +x /usr/local/bin/solve-captcha

# Verify
solve-captcha --version

Configuration

# Save your 2Captcha API key
mkdir -p ~/.config/2captcha
echo "YOUR_API_KEY" > ~/.config/2captcha/api-key

# Or use environment variable
export TWOCAPTCHA_API_KEY="your-key"

Get your API key at https://2captcha.com/enterpage

Quick Reference

Check Balance First

./solve-captcha balance

Image CAPTCHA

# From file
./solve-captcha image /path/to/captcha.png

# From URL  
./solve-captcha image "https://site.com/captcha.jpg"

# With options
./solve-captcha image captcha.png --numeric 1 --math
./solve-captcha image captcha.png --comment "Enter red letters only"

reCAPTCHA v2

./solve-captcha recaptcha2 --sitekey "6Le-wvk..." --url "https://example.com"

reCAPTCHA v3

./solve-captcha recaptcha3 --sitekey "KEY" --url "URL" --action "submit" --min-score 0.7

hCaptcha

./solve-captcha hcaptcha --sitekey "KEY" --url "URL"

Cloudflare Turnstile

./solve-captcha turnstile --sitekey "0x4AAA..." --url "URL"

FunCaptcha (Arkose)

./solve-captcha funcaptcha --public-key "KEY" --url "URL"

GeeTest

# v3
./solve-captcha geetest --gt "GT" --challenge "CHALLENGE" --url "URL"

# v4
./solve-captcha geetest4 --captcha-id "ID" --url "URL"

Text Question

./solve-captcha text "What color is the sky?" --lang en

Finding CAPTCHA Parameters

reCAPTCHA sitekey

Look for:

  • data-sitekey attribute in HTML
  • k= parameter in reCAPTCHA iframe URL
  • Network request to google.com/recaptcha/api2/anchor

hCaptcha sitekey

Look for:

  • data-sitekey in hCaptcha div
  • Network requests to hcaptcha.com

Turnstile sitekey

Look for:

  • data-sitekey in Turnstile widget
  • cf-turnstile class elements

Workflow for Browser Automation

  1. Detect CAPTCHA - Check if page has captcha element
  2. Extract params - Get sitekey/challenge from page source
  3. Solve via CLI - Call solve-captcha with params
  4. Inject token - Set g-recaptcha-response or callback

Example: Inject reCAPTCHA Token

// After getting token from solve-captcha
document.getElementById('g-recaptcha-response').value = token;
// Or call callback if defined
___grecaptcha_cfg.clients[0].callback(token);

Cost Awareness

  • Check balance before heavy automation
  • Image: ~$0.001 per solve
  • reCAPTCHA/hCaptcha/Turnstile: ~$0.003 per solve

Error Handling

Common errors:

  • ERROR_ZERO_BALANCE - Top up account
  • ERROR_NO_SLOT_AVAILABLE - Retry in few seconds
  • ERROR_CAPTCHA_UNSOLVABLE - Bad image or impossible captcha
  • ERROR_WRONG_CAPTCHA_ID - Invalid task ID

Notes

  • Solving takes 10-60 seconds depending on type
  • reCAPTCHA v3 may need multiple attempts for high scores
  • Some sites detect automation - use carefully
  • Tokens expire! Use within 2-5 minutes