{"id":20678590,"url":"https://github.com/vinyzu/recognizer","last_synced_at":"2025-05-16T09:05:50.431Z","repository":{"id":217002299,"uuid":"688458149","full_name":"Vinyzu/recognizer","owner":"Vinyzu","description":"🦉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.","archived":false,"fork":false,"pushed_at":"2025-01-13T10:31:14.000Z","size":1233,"stargazers_count":165,"open_issues_count":10,"forks_count":22,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-05-08T19:11:35.651Z","etag":null,"topics":["ai","automation","botright","bots","captcha","captcha-bypass","captcha-recognition","captcha-solver","captcha-solving","playwright","recaptcha","recaptcha-solver","recaptcha-verification"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Vinyzu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-07T11:48:38.000Z","updated_at":"2025-05-04T21:23:28.000Z","dependencies_parsed_at":"2024-04-29T06:44:04.547Z","dependency_job_id":"143cead8-f11f-4a94-9440-86b9abe55d72","html_url":"https://github.com/Vinyzu/recognizer","commit_stats":null,"previous_names":["vinyzu/recognizer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vinyzu%2Frecognizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vinyzu%2Frecognizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vinyzu%2Frecognizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vinyzu%2Frecognizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Vinyzu","download_url":"https://codeload.github.com/Vinyzu/recognizer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254501557,"owners_count":22081528,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","automation","botright","bots","captcha","captcha-bypass","captcha-recognition","captcha-solver","captcha-solving","playwright","recaptcha","recaptcha-solver","recaptcha-verification"],"created_at":"2024-11-16T21:21:03.354Z","updated_at":"2025-05-16T09:05:45.408Z","avatar_url":"https://github.com/Vinyzu.png","language":"Python","readme":"\u003ch1 align=\"center\"\u003e\n    🎭 reCognizer\n\u003c/h1\u003e\n\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python/releases/latest\"\u003e\n        \u003cimg alt=\"Patchright Version\" src=\"https://img.shields.io/github/v/release/microsoft/playwright-python?display_name=release\u0026label=Version\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/Vinyzu/recognizer/actions\"\u003e\n        \u003cimg src=\"https://github.com/Vinyzu/recognizer/actions/workflows/ci.yml/badge.svg\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python/releases\"\u003e\n        \u003cimg alt=\"GitHub Downloads (all assets, all releases)\" src=\"https://img.shields.io/pepy/dt/patchright?color=seagreen\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python/blob/main/LICENSE\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/License-GNU%20GPL-green\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n#### reCognizer is a free-to-use AI based [reCaptcha](https://developers.google.com/recaptcha) Solver. \u003cbr\u003e Usable with an easy-to-use API, also available for Async and Sync Playwright. \u003cbr\u003e 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.\n\n#### Note: You Should use an undetected browser engine like [Patchright](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python) or [Botright](https://github.com/Vinyzu/Botright) to solve the Captchas consistently. \u003cbr\u003e  reCaptcha detects normal Playwright easily and you probably wont get any successful solves despite correct recognitions.\n\n---\n\n## Install it from PyPI\n\n```bash\npip install recognizer\n```\n\n---\n\n## Examples\n\n### Possible Image Inputs\n![Accepted Formats](https://i.ibb.co/nztTD9Z/formats.png)\n\n### Example Solve Video (Good IP \u0026 Botright)\nhttps://github.com/Vinyzu/recognizer/assets/50874994/95a713e3-bb46-474b-994f-cb3dacae9279\n\n---\n\n## Basic Usage\n\n```py\n# Only for Type-Hints\nfrom typing import TypeVar, Sequence, Union\nfrom pathlib import Path\nfrom os import PathLike\n\naccepted_image_types = TypeVar(\"accepted_image_types\", Path, Union[PathLike[str], str], bytes, Sequence[Path], Sequence[Union[PathLike[str], str]], Sequence[bytes])\n\n# Real Code\nfrom recognizer import Detector\n\ndetector = Detector(optimize_click_order=True)\n\ntask_type: str = \"bicycle\"\nimages: accepted_image_types = \"recaptcha_image.png\"\narea_captcha: bool = False\n\nresponse, coordinates = detector.detect(task_type, images, area_captcha=area_captcha)\n```\n\n---\n\n## Playwright Usage\n### Sync Playwright\n\n```py\nfrom playwright.sync_api import sync_playwright, Playwright\nfrom recognizer.agents.playwright import SyncChallenger\n\n\ndef run(playwright: Playwright):\n    browser = playwright.chromium.launch()\n    page = browser.new_page()\n\n    challenger = SyncChallenger(page, click_timeout=1000)\n    page.goto(\"https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox-explicit.php\")\n\n    challenger.solve_recaptcha()\n\n    browser.close()\n\n\nwith sync_playwright() as playwright:\n    run(playwright)\n```\n\n\n### Async Playwright\n\n```py\nimport asyncio\n\nfrom playwright.async_api import async_playwright, Playwright\nfrom recognizer.agents.playwright import AsyncChallenger\n\n\nasync def run(playwright: Playwright):\n    browser = await playwright.chromium.launch()\n    page = await browser.new_page()\n\n    challenger = AsyncChallenger(page, click_timeout=1000)\n    await page.goto(\"https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox-explicit.php\")\n\n    await challenger.solve_recaptcha()\n\n    await browser.close()\n\n\nasync def main():\n    async with async_playwright() as playwright:\n        await run(playwright)\n\n\nasyncio.run(main())\n```\n---\n\n## Copyright and License\n© [Vinyzu](https://github.com/Vinyzu/)\n\u003cbr\u003e\n[GNU GPL](https://choosealicense.com/licenses/gpl-3.0/)\n\n(Commercial Usage is allowed, but source, license and copyright has to made available. reCaptcha Challenger does not provide and Liability or Warranty)\n\n---\n\n## Projects/AIs Used\n[YOLO11m-seg](https://github.com/ultralytics/ultralytics)\n\u003cbr\u003e\n[flavour/CLIP ViT-L/14](https://huggingface.co/flavour/CLIP-ViT-B-16-DataComp.XL-s13B-b90K)\n\u003cbr\u003e\n[CIDAS/clipseg](https://huggingface.co/CIDAS/clipseg-rd64-refined)\n[]()\n\n## Thanks to\n\n[QIN2DIM](https://github.com/QIN2DIM) (For basic project structure)\n\n---\n\n## Disclaimer\n\nThis repository is provided for **educational purposes only**. \\\nNo 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.\\\n**Any misuse or legal violations are the sole responsibility of the user**. \n\n---\n\n![Version](https://img.shields.io/pypi/v/reCognizer?display_name=release\u0026label=reCognizer)\n![License](https://img.shields.io/badge/License-GNU%20GPL-green)\n![Python](https://img.shields.io/badge/Python-v3.x-lightgrey)\n\n[![my-discord](https://img.shields.io/badge/My_Discord-000?style=for-the-badge\u0026logo=google-chat\u0026logoColor=blue)](https://discordapp.com/users/935224495126487150)\n[![buy-me-a-coffee](https://img.shields.io/badge/Buy_Me_A_Coffee-000?style=for-the-badge\u0026logo=ko-fi\u0026logoColor=brown)](https://ko-fi.com/vinyzu)\n","funding_links":["https://ko-fi.com/vinyzu"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvinyzu%2Frecognizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvinyzu%2Frecognizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvinyzu%2Frecognizer/lists"}