Skip to main content

GeeTest v4 ICON CAPTCHA solver using YOLO + template matching

Project description

GeeTest Solver

Python library for solving GeeTest v4 captchas (ICON and MATCH/IconCrush types).

Installation

pip install geetest-solver

Usage

Synchronous

from geetest_solver import solve_captcha

# Icon captcha (default)
seccode = solve_captcha(captcha_id="<CAPTCHA_ID>", captcha_type="icon")

# Match/IconCrush captcha
seccode = solve_captcha(captcha_id="<CAPTCHA_ID>", captcha_type="match")

# With proxy
proxies = {
    'http': 'http://user:pass@proxy.example.com:8080',
    'https': 'http://user:pass@proxy.example.com:8080'
}
seccode = solve_captcha(
    captcha_id="<CAPTCHA_ID>", 
    captcha_type="icon",
    proxies=proxies
)

Async (FastAPI, aiohttp, etc.)

from geetest_solver.async_wrapper import solve_captcha_async

# Icon captcha
seccode = await solve_captcha_async(captcha_id="<CAPTCHA_ID>", captcha_type="icon")

# Match captcha
seccode = await solve_captcha_async(captcha_id="<CAPTCHA_ID>", captcha_type="match")

# With proxy
proxies = {
    'http': 'http://user:pass@proxy.example.com:8080',
    'https': 'http://user:pass@proxy.example.com:8080'
}
seccode = await solve_captcha_async(
    captcha_id="<CAPTCHA_ID>",
    captcha_type="icon",
    proxies=proxies
)

FastAPI Example

from fastapi import FastAPI
from geetest_solver.async_wrapper import solve_captcha_async

app = FastAPI()

@app.post("/solve")
async def solve_captcha_endpoint(captcha_id: str):
    result = await solve_captcha_async(captcha_id=captcha_id)
    return {"seccode": result}

Features

  • Icon captcha: YOLO-based object detection + template matching
  • Match captcha: Grid-based puzzle solver (swap to match 3)
  • Async support: Non-blocking execution for FastAPI/async frameworks
  • Thread-safe: No matplotlib global lock issues
  • Automatic retry on failure
  • Proxy support
  • High success rate

Captcha Types

  • icon: Click icons in sequence (uses YOLO model)
  • match: Swap grid items to match 3 in a row (IconCrush)

Configuration

Disable Matplotlib (default)

Matplotlib is disabled by default to avoid global lock issues in multi-threaded environments. To enable for debugging:

export ENABLE_MATPLOTLIB=1

Disable YOLO Verbose Output

import os
os.environ['YOLO_VERBOSE'] = 'False'

Requirements

  • Python 3.8+
  • CUDA (optional, for GPU acceleration)

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

geetest_solver-1.0.8.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

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

geetest_solver-1.0.8-py3-none-any.whl (13.3 MB view details)

Uploaded Python 3

File details

Details for the file geetest_solver-1.0.8.tar.gz.

File metadata

  • Download URL: geetest_solver-1.0.8.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.0

File hashes

Hashes for geetest_solver-1.0.8.tar.gz
Algorithm Hash digest
SHA256 b16e8b2d9db7d8024a1def0639f2d12b4bef05a6051482e8984162f9b8c0e9d3
MD5 ba7ba4ef933b2f57fe4f039e9ab0f58b
BLAKE2b-256 307b9250a318fea73c6f3c717fec65d0b023b75249c7b79abb7716d0f18ea7ff

See more details on using hashes here.

File details

Details for the file geetest_solver-1.0.8-py3-none-any.whl.

File metadata

  • Download URL: geetest_solver-1.0.8-py3-none-any.whl
  • Upload date:
  • Size: 13.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.0

File hashes

Hashes for geetest_solver-1.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 6cd6329d886605185fafe78b911d68049ded3e9f8f7732673f7b815120b0c7ca
MD5 ca0e89b25e628f1b3bfe06b3d01edf4b
BLAKE2b-256 640da7b78dc4a92c7932570cb653495793850f14bf53c304d0e75e0853887cee

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