{"id":26241072,"url":"https://github.com/hansalemaos/solvacaptcha","last_synced_at":"2026-03-03T21:02:36.578Z","repository":{"id":187684114,"uuid":"677498695","full_name":"hansalemaos/solvacaptcha","owner":"hansalemaos","description":"automates the process of solving reCAPTCHA challenges on web pages when using Selenium","archived":false,"fork":false,"pushed_at":"2023-12-06T07:06:05.000Z","size":12,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-08T00:50:47.986Z","etag":null,"topics":["captcha","recaptcha","recaptcha-v2","selenium"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/solvacaptcha/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hansalemaos.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-08-11T18:18:27.000Z","updated_at":"2025-03-08T04:10:44.000Z","dependencies_parsed_at":"2024-12-21T04:31:48.816Z","dependency_job_id":"e6d5864a-f05d-42cb-88fa-561dd42e8cfe","html_url":"https://github.com/hansalemaos/solvacaptcha","commit_stats":null,"previous_names":["hansalemaos/solvacaptcha"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hansalemaos/solvacaptcha","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hansalemaos%2Fsolvacaptcha","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hansalemaos%2Fsolvacaptcha/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hansalemaos%2Fsolvacaptcha/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hansalemaos%2Fsolvacaptcha/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hansalemaos","download_url":"https://codeload.github.com/hansalemaos/solvacaptcha/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hansalemaos%2Fsolvacaptcha/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30060652,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T18:21:05.932Z","status":"ssl_error","status_checked_at":"2026-03-03T18:20:59.341Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["captcha","recaptcha","recaptcha-v2","selenium"],"created_at":"2025-03-13T08:19:11.248Z","updated_at":"2026-03-03T21:02:36.563Z","avatar_url":"https://github.com/hansalemaos.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# automates the process of solving reCAPTCHA challenges on web pages when using Selenium\r\n\r\n## pip install solvacaptcha \r\n\r\n#### Tested against Windows 10 / Python 3.10 / Anaconda\r\n\r\n# IMPORTANT: WORKS WITH ANY BROWSER, NOT ONLY OPERAGX\r\n### I used their VPN to make sure that I get caught every time (captcha)\r\n```python\r\n\r\nThis function automates the process of solving reCAPTCHA challenges on web pages.\r\nIt uses audio-based CAPTCHA challenges as an example and employs audio recording,\r\ntranscription, and interaction with web elements to solve the challenge.\r\nIt is recommended to install: Virtual Audio Cable (VAC) - the free version is more than enough\r\nhttps://vac.muzychenko.net/en/download.htm\r\n\r\nParameters:\r\n\tdriver: WebDriver\r\n\t\tThe Selenium WebDriver instance.\r\n\texpected_conditions: module\r\n\t\tThe module containing expected conditions for WebDriver waits.\r\n\tWebDriverWait: class\r\n\t\tThe class for setting up explicit waits with WebDriver.\r\n\tBy: class\r\n\t\tThe class for locating elements with WebDriver.\r\n\tffmpegexe: str\r\n\t\tThe path to the FFmpeg executable for audio processing.\r\n\tsleep_after_recording_started: int, optional\r\n\t\tTime to sleep (in seconds) after audio recording starts.\r\n\tsleep_after_each_click: int, optional\r\n\t\tTime to sleep (in seconds) after each interaction/click.\r\n\tcaptchatitle: str, optional\r\n\t\tThe CSS selector for identifying the CAPTCHA challenge element.\r\n\tlanguage: str, optional\r\n\t\tThe spoken language for audio transcription.\r\n\tcpus: int, optional\r\n\t\tNumber of CPU cores to use during audio processing.\r\n\tblas: bool, optional\r\n\t\tWhether to use BLAS acceleration for audio processing.\r\n\taudiodevice: int, optional\r\n\t\tIndex of the audio device for recording.\r\n\tsilent_seconds_stop: int, optional\r\n\t\tDuration of silence to stop audio recording (in seconds).\r\n\tsilence_threshold: int, optional\r\n\t\tThreshold for silence detection during audio recording.\r\n\tselector: tuple of tuples, optional\r\n\t\tCSS selectors for identifying various CAPTCHA interaction elements.\r\n\r\nReturns:\r\n\tNone\r\n\r\nNote:\r\n\tThis function automates solving a specific type of audio-based reCAPTCHA challenge. It records audio,\r\n\ttranscribes it to text, interacts with the CAPTCHA elements, and submits the solution.\r\n\r\nExample:\r\n\tfrom selenium.webdriver.support import expected_conditions\r\n\tfrom selenium.webdriver.support.wait import WebDriverWait\r\n\tfrom selenium.webdriver.common.by import By\r\n\tfrom operagxdriver import start_opera_driver\r\n\r\n\tfrom solvacaptcha import solva_captcha\r\n\r\n\tdriver = start_opera_driver(\r\n\t\topera_browser_exe=r\"C:\\Program Files\\Opera GX\\opera.exe\",\r\n\t\topera_driver_exe=r\"C:\\ProgramData\\anaconda3\\envs\\dfdir\\operadriver.exe\",\r\n\t\tuserdir=\"c:\\\\operabrowserprofile2\",\r\n\t\targuments=(\r\n\t\t\t\"--no-sandbox\",\r\n\t\t\t\"--test-type\",\r\n\t\t\t\"--no-default-browser-check\",\r\n\t\t\t\"--no-first-run\",\r\n\t\t\t\"--incognito\",\r\n\t\t\t\"--start-maximized\",\r\n\t\t),\r\n\t)\r\n\tdriver.get(\"https://www.google.com/recaptcha/api2/demo\")\r\n\r\n\tsolva_captcha(\r\n\t\tdriver,\r\n\t\texpected_conditions,\r\n\t\tWebDriverWait,\r\n\t\tBy,\r\n\t\tffmpegexe=r\"C:\\ffmpeg\\ffmpeg.exe\",\r\n\t\tsleep_after_recording_started=10,\r\n\t\tsleep_after_each_click=10,\r\n\t\tcaptchatitle='[title=\"reCAPTCHA\"]',\r\n\t\tlanguage=\"en\",\r\n\t\tcpus=5,\r\n\t\tblas=True,\r\n\t\taudiodevice=0,\r\n\t\tsilent_seconds_stop=3,\r\n\t\tsilence_threshold=-30,\r\n\t\tselector=(\r\n\t\t\t(\"button\", \"audio\", \"outerHTML\"),\r\n\t\t\t(\"button\", \"\u003ePLAY\u003c\", \"outerHTML\"),\r\n\t\t\t(\"input\", 'id=\"audio-response\"', \"outerHTML\"),\r\n\t\t\t(\"button\", \"\u003eVerify\u003c\", \"outerHTML\"),\r\n\t\t),\r\n\t)\r\n\r\n```\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhansalemaos%2Fsolvacaptcha","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhansalemaos%2Fsolvacaptcha","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhansalemaos%2Fsolvacaptcha/lists"}