{"id":13447028,"url":"https://github.com/transitive-bullshit/captcha-solver","last_synced_at":"2025-05-10T20:16:47.838Z","repository":{"id":57194223,"uuid":"134325777","full_name":"transitive-bullshit/captcha-solver","owner":"transitive-bullshit","description":"Library and CLI for automating captcha verification across multiple providers.","archived":false,"fork":false,"pushed_at":"2020-07-11T23:13:53.000Z","size":226,"stargazers_count":122,"open_issues_count":4,"forks_count":15,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-10T20:21:37.867Z","etag":null,"topics":["anti-captcha","captcha","captcha-solving","nocaptcha","recaptcha"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/transitive-bullshit.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-05-21T21:11:34.000Z","updated_at":"2024-09-17T18:41:25.000Z","dependencies_parsed_at":"2022-09-01T00:51:03.519Z","dependency_job_id":null,"html_url":"https://github.com/transitive-bullshit/captcha-solver","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/transitive-bullshit%2Fcaptcha-solver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/transitive-bullshit%2Fcaptcha-solver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/transitive-bullshit%2Fcaptcha-solver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/transitive-bullshit%2Fcaptcha-solver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/transitive-bullshit","download_url":"https://codeload.github.com/transitive-bullshit/captcha-solver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253272006,"owners_count":21881808,"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":["anti-captcha","captcha","captcha-solving","nocaptcha","recaptcha"],"created_at":"2024-07-31T05:01:06.294Z","updated_at":"2025-05-09T14:59:06.462Z","avatar_url":"https://github.com/transitive-bullshit.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# captcha-solver\n\n\u003e Library and CLI for automating captcha verification across multiple providers.\n\n[![NPM](https://img.shields.io/npm/v/captcha-solver.svg)](https://www.npmjs.com/package/captcha-solver) [![Build Status](https://travis-ci.com/transitive-bullshit/captcha-solver.svg?branch=master)](https://travis-ci.com/transitive-bullshit/captcha-solver) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"313\" alt=\"Nocaptcha Recaptcha\" src=\"https://cdn.rawgit.com/transitive-bullshit/captcha-solver/master/packages/captcha-solver/media/nocaptcha.gif\"\u003e\n\u003c/p\u003e\n\n## Status\n\nThis project is fully functional both as a [library](packages/captcha-solver) and [CLI](packages/captcha-solver-cli). We currently only support one captcha-solver-provider, powered by [anti-captcha](https://anti-captcha.com).\n\n## Packages\n\n-   [captcha-solver](packages/captcha-solver) - Library for automating captcha verification.\n-   [captcha-solver-cli](packages/captcha-solver-cli) - CLI for automating captcha verification.\n-   [captcha-solver-provider](packages/captcha-solver-provider) - Abstract base class for captcha solver providers.\n    -   [captcha-solver-provider-anti-captcha](packages/captcha-solver-provider-anti-captcha) - Captcha solver provider for the [anti-captcha](https://anti-captcha.com) service.\n    -   [captcha-solver-provider-browser](packages/captcha-solver-provider-browser) - Captcha solver provider for a local, browser-based, manual solver.\n\n## Usage\n\n```bash\n  Usage: index [options] [command]\n\n  Options:\n\n    -V, --version                       output the version number\n    -k, --key \u003cstring\u003e                  API key for provider\n    -i, --image \u003cpath\u003e                  Path or url of image to solve\n    -t, --type \u003cstring\u003e                 Type of captcha to solve (default: image-to-text)\n    -u, --website-url \u003curl\u003e             Website URL for nocaptcha, recaptcha, and funcaptcha\n    -K, --website-key \u003cstring\u003e          Recaptcha website key\n    -S, --website-s-token \u003ctoken\u003e       Optional secret token for old version of Recaptcha\n    --website-public-key \u003cstring\u003e       Funcaptcha public key\n    --proxy-type \u003cstring\u003e               Type of proxy to use\n    --proxy-address \u003cstring\u003e            Proxy IP address ipv4/ipv6\n    --proxy-port \u003cnumber\u003e               Proxy port\n    --proxy-login \u003cstring\u003e              Optional login for proxy which requires authorizaiton (basic)\n    --proxy-password \u003cstring\u003e           Optional proxy password\n    -U, --user-agent \u003cstring\u003e           Browser's User-Agent which is used in emulation.\n    -C, --cookies \u003cstring\u003e              Optional additional cookies.\n    -P, --provider \u003cprovider\u003e           Provider to use (default: anti-captcha)\n    -h, --help                          output usage information\n\n  Commands:\n\n    create-task\n    get-task-result [options] \u003ctaskId\u003e\n    solve [options]\n```\n\n## API\n\n\u003c!-- Generated by documentation.js. Update this documentation by updating the source code. --\u003e\n\n#### Table of Contents\n\n-   [CaptchaSolver](#captchasolver)\n    -   [provider](#provider)\n    -   [createTask](#createtask)\n    -   [getTaskResult](#gettaskresult)\n\n### [CaptchaSolver](https://github.com/transitive-bullshit/captcha-solver/blob/ec5e0649a40d0489264905d80a991f071703fce2/packages/captcha-solver/index.js#L19-L128)\n\nMain entrypoint for solving captchas.\n\nType: `function (provider, opts)`\n\n-   `provider` **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) | CaptchaSolverProvider)** Name of built-in provider or an instance of\n    a custom provider to use for solving.\n-   `opts`   (optional, default `{}`)\n\n* * *\n\n#### [provider](https://github.com/transitive-bullshit/captcha-solver/blob/ec5e0649a40d0489264905d80a991f071703fce2/packages/captcha-solver/index.js#L33-L33)\n\nProvider powering this solver.\n\nType: CaptchaSolverProvider\n\n* * *\n\n#### [createTask](https://github.com/transitive-bullshit/captcha-solver/blob/ec5e0649a40d0489264905d80a991f071703fce2/packages/captcha-solver/index.js#L70-L92)\n\nCreates a new captcha solving task.\n\nValid values for `opts.type` are:\n\n-   image-to-text\n-   recaptcha\n-   recaptcha-proxyless\n-   nocaptcha\n-   nocaptcha-proxyless\n-   funcaptcha\n-   funcaptcha-proxyless\n\nNote that not all providers support all captcha types. See\n`provider.supportedTaskTypes` for a Set containing all task types a given\nprovider supports.\n\nNote that most of these options will be unused depending on the task type.\n\nType: `function (opts)`\n\n-   `opts` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** Options\n    -   `opts.type` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Type of captcha to solve\n    -   `opts.image` **([buffer](https://nodejs.org/api/buffer.html) \\| [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?** Path, URL, or buffer of an image to process\n    -   `opts.websiteURL` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Website URL for nocaptcha, recaptcha, and funcaptcha\n    -   `opts.websiteKey` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Recaptcha website key\n    -   `opts.websiteSToken` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Secret token for old versions of Recaptcha\n    -   `opts.websitePublicKey` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Funcaptcha public key\n    -   `opts.proxyType` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Proxy type (http/socks4/socks5)\n    -   `opts.proxyAddress` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Proxy IP address (ipv4/ipv6)\n    -   `opts.proxyPort` **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \\| [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number))?** Proxy port\n    -   `opts.proxyLogin` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Proxy login for basic auth\n    -   `opts.proxyPassword` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Proxy password\n    -   `opts.userAgent` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Browser's User-Agent to emulate\n    -   `opts.cookies` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Additional cookies to emulate\n\n* * *\n\n#### [getTaskResult](https://github.com/transitive-bullshit/captcha-solver/blob/ec5e0649a40d0489264905d80a991f071703fce2/packages/captcha-solver/index.js#L104-L127)\n\nFetches the result of a previously created captcha solving task.\n\nType: `function (taskId, opts)`\n\n-   `taskId` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Unique task identifier\n-   `opts` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** Options (optional, default `{}`)\n    -   `opts.retries` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Number of retries to perform (optional, default `3`)\n    -   `opts.timeout` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Max timeout to wait in ms before aborting (optional, default `30000`)\n\n* * *\n\n## Related\n\n-   [puppeteer](https://github.com/GoogleChrome/puppeteer) - Headless Chrome Node API used under the hood.\n-   [puppeteer-email](https://github.com/transitive-bullshit/puppeteer-email) - Email automation driven by headless chrome.\n-   [sms-number-verifier](https://github.com/transitive-bullshit/sms-number-verifier) - Allows you to spoof SMS number verification.\n-   [awesome-puppeteer](https://github.com/transitive-bullshit/awesome-puppeteer) - A curated list of awesome puppeteer resources.\n-   [python captcha solver](https://github.com/lorien/captcha_solver) - Similar to this module but in python.\n-   [recognize](https://github.com/kdinisv/Recognize) - Deprecated module with similar functionality to this module.\n\n## Disclaimer\n\nUsing this software to violate the terms and conditions of any third-party service is strictly against the intent of this software. By using this software, you are acknowledging this fact and absolving the author or any potential liability or wrongdoing it may cause. This software is meant for testing and experimental purposes only, so please act responsibly.\n\n## License\n\nMIT © [Travis Fischer](https://github.com/transitive-bullshit)\n\nSupport my OSS work by \u003ca href=\"https://twitter.com/transitive_bs\"\u003efollowing me on twitter \u003cimg src=\"https://storage.googleapis.com/saasify-assets/twitter-logo.svg\" alt=\"twitter\" height=\"24px\" align=\"center\"\u003e\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftransitive-bullshit%2Fcaptcha-solver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftransitive-bullshit%2Fcaptcha-solver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftransitive-bullshit%2Fcaptcha-solver/lists"}