1. 9kw
This is an api wrapper for the 9kw captcha solver service. An Api Key is needed, generate using the 9kw website.
1.1. Installation
node:
npm install 9kw-captcha-node
This library supports environment variables to pass parameters like API Key:
ENV variable | Type | Description |
---|---|---|
CAPTCHA_API_KEY_9KW | String | API Key |
CAPTCHA_SOURCE_9KW | String | 9kw Source (app indicator) |
CAPTCHA_OLD_SOURCE_9KW | String | 9kw Old Source (indicator for captcha type) |
CAPTCHA_PRIO_9KW | Number | 9kw default priority |
CAPTCHA_DEBUG_9KW | Number | Don't spend credits and get fake solutions. For testing... |
In alternative you can pass it as parameters when instantiating the API constructor
1.2. Promises - Async/Await
const Api9kw = ;const api = /* You can pass parameters here or just use the ENV vars */; async { try // Get the balance of credits from 9kw const balance = await api; console; // Submit a local image file with the captcha // const captchaId = await api.asyncSubmitFile(config.pathToFile); // Submit using a Image Base 64 of the captha // const captchaId = await api.asyncSubmitBase64(config.image_base64); // Submit using a Image URL of the captha // const captchaId = await api.asyncSubmit(config.image_url); // Submit CaptchaV2 (using a siteKey + siteUrl) // CaptchaV2 will need to be solved by someone in real time // so using the priority becomes important if you want faster captchas // 300 seconds (with 0 prio) is a reasonable number so you don't miss solved captchas // If you want them faster, up the prio and you will pay one extra credit per captcha const captchaId = await api; console; // Get the solution of the captcha with a timeout of 40 seconds (optional) // this means that the callback will be called when the captcha is solved // For image Solving 9kw seems to store the solutions in their own DB // and some are instantaneous others may take some more but usually under 30 sec // For CaptchaV2 (sitekey + siteUrl) will need to be solved by someone in real time // so using the priority becomes important if you want faster captchas // 300 seconds (with 0 prio) is a reasonable number so you don't miss solved captchas // If you want them faster, up the prio and you will pay one extra credit per captcha // usually is solved under 30s (default timeout is 30 seconds) const solution = await api; console; // Give feedback successSolve ? await api9kw : await api9kw; catch err console; // Timeout or NO_USER };
1.3. Callbacks
const Api9kw = ;const api = /* You can pass parameters here or just use the ENV vars */; // Get your account balance (credits)api; // Submit a local image file with the captcha// api.submitFile("./captcha.png", (err, newID) => {// if (err) {// console.log(err);// return;// }// console.log("Captcha uploaded!: " + captchaId);// // Next step is to get the solution of the uploaded captcha using the new captchaID// }); // Submit using a Image Base 64 of the captha// api.submitBase64(base64, (err, newID) => {// if (err) {// console.log(err);// return;// }// console.log("Captcha uploaded!: " + captchaId);// // Next step is to get the solution of the uploaded captcha using the new captchaID// }); // Submit using a Image URL of the capthaapi; // Submit CaptchaV2 (using a siteKey + siteUrl)// CaptchaV2 will need to be solved by someone in real time// so using the priority becomes important if you want faster captchas// 300 seconds (with 0 prio) is a reasonable number so you don't miss solved captchas// If you want them faster, up the prio and you will pay one extra credit per captchaapi; // Get the solution of the captcha with a timeout of 40 seconds (optional)// this means that the callback will be called when the captcha is solved// usually is solved under 30s (default timeout is 30 seconds)api; // Tell 9kw the solution was correct or notapi; // Get the 9kw server check infoapi;
1.4. Development
1.4.1. Linting and Generating Docs
npm run flow
1.4.2. Tests
In order to run the tests, create a .env file as .env.default and put your account details in the correct ENV variables, then run:
npm run test
Tests are not working on Node > 10
1.5. Credits
This project was initially a fork of iamfreee/9kw_node