SkillAgentSearch skills...

Recognizer

🦉Gracefully face reCAPTCHA challenge with ultralytics YOLOv8-seg, CLIPs VIT-B/16 and CLIP-Seg/RD64. Implemented in playwright or an easy-to-use API.

Install / Use

/learn @Vinyzu/Recognizer

README

<h1 align="center"> 🎭 reCognizer </h1> <p align="center"> <a href="https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python/releases/latest"> <img alt="Patchright Version" src="https://img.shields.io/github/v/release/microsoft/playwright-python?display_name=release&label=Version"> </a> <a href="https://github.com/Vinyzu/recognizer/actions"> <img src="https://github.com/Vinyzu/recognizer/actions/workflows/ci.yml/badge.svg"> </a> <a href="https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python/releases"> <img alt="GitHub Downloads (all assets, all releases)" src="https://img.shields.io/pepy/dt/patchright?color=seagreen"> </a> <a href="https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python/blob/main/LICENSE"> <img src="https://img.shields.io/badge/License-GNU%20GPL-green"> </a> </p>

reCognizer is a free-to-use AI based reCaptcha Solver. <br> Usable with an easy-to-use API, also available for Async and Sync Playwright. <br> You can pass almost any format into the Challenger, from full-page screenshots, only-captcha images and no-border images to single images in a list.

Note: You Should use an undetected browser engine like Patchright or Botright to solve the Captchas consistently. <br> reCaptcha detects normal Playwright easily and you probably wont get any successful solves despite correct recognitions.


<details open> <summary><h3>Sponsors</h1></summary>

<sup>Want to Sponsor this Project? Contact Me!</sup>

</details>

Install it from PyPI

pip install recognizer

Examples

Possible Image Inputs

Accepted Formats

Example Solve Video (Good IP & Botright)

https://github.com/Vinyzu/recognizer/assets/50874994/95a713e3-bb46-474b-994f-cb3dacae9279


Basic Usage

# Only for Type-Hints
from typing import TypeVar, Sequence, Union
from pathlib import Path
from os import PathLike

accepted_image_types = TypeVar("accepted_image_types", Path, Union[PathLike[str], str], bytes, Sequence[Path], Sequence[Union[PathLike[str], str]], Sequence[bytes])

# Real Code
from recognizer import Detector

detector = Detector(optimize_click_order=True)

task_type: str = "bicycle"
images: accepted_image_types = "recaptcha_image.png"
area_captcha: bool = False

response, coordinates = detector.detect(task_type, images, area_captcha=area_captcha)

Playwright Usage

Sync Playwright

from playwright.sync_api import sync_playwright, Playwright
from recognizer.agents.playwright import SyncChallenger


def run(playwright: Playwright):
    browser = playwright.chromium.launch()
    page = browser.new_page()

    challenger = SyncChallenger(page, click_timeout=1000)
    page.goto("https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox-explicit.php")

    challenger.solve_recaptcha()

    browser.close()


with sync_playwright() as playwright:
    run(playwright)

Async Playwright

import asyncio

from playwright.async_api import async_playwright, Playwright
from recognizer.agents.playwright import AsyncChallenger


async def run(playwright: Playwright):
    browser = await playwright.chromium.launch()
    page = await browser.new_page()

    challenger = AsyncChallenger(page, click_timeout=1000)
    await page.goto("https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox-explicit.php")

    await challenger.solve_recaptcha()

    await browser.close()


async def main():
    async with async_playwright() as playwright:
        await run(playwright)


asyncio.run(main())

Copyright and License

© Vinyzu <br> GNU GPL

(Commercial Usage is allowed, but source, license and copyright has to made available. reCaptcha Challenger does not provide and Liability or Warranty)


Projects/AIs Used

YOLO11m-seg <br> flavour/CLIP ViT-L/14 <br> CIDAS/clipseg

Thanks to

QIN2DIM (For basic project structure)


Disclaimer

This repository is provided for educational purposes only.
No warranties are provided regarding accuracy, completeness, or suitability for any purpose. Use at your own risk—the authors and maintainers assume no liability for any damages, legal issues, or warranty breaches resulting from use, modification, or distribution of this code.
Any misuse or legal violations are the sole responsibility of the user.


Version License Python

my-discord buy-me-a-coffee

Related Skills

View on GitHub
GitHub Stars233
CategoryDevelopment
Updated1d ago
Forks34

Languages

Python

Security Score

100/100

Audited on Mar 29, 2026

No findings