Catalog npm
PACKAGE EXPLORERView in registry

9kw-captcha-node

npm

9kw API Wrapper to solve captchas

9kwcaptchacaptchabase64captchaimagecaptchasitekeycaptchaurlrecaptcharecaptchav2recaptchav3
Versions collected1
Direct dependencies13From release 1.0.3
Last observed20 Oct, 21:38 UTC

README

Current package documentation

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 variableTypeDescription
CAPTCHA_API_KEY_9KWStringAPI Key
CAPTCHA_SOURCE_9KWString9kw Source (app indicator)
CAPTCHA_OLD_SOURCE_9KWString9kw Old Source (indicator for captcha type)
CAPTCHA_PRIO_9KWNumber9kw default priority
CAPTCHA_DEBUG_9KWNumberDon'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 = require("9kw-captcha-node");
const api = new Api9kw(/* You can pass parameters here or just use the ENV vars */);

(async () => {
  try {
    // Get the balance of credits from 9kw
    const balance = await api.asyncGetBalance();
    console.log(`BALANCE: ${balance} credits`);

    // 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.asyncSubmit(
      SITEKEY,
      SITEURL,
      OVERWRITE_PRIO_IF_YOU_WANT
    );
    console.log(`CAPTCHA ID: ${captchaId}`);

    // 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.asyncGetSolutionLoop(captchaId, 300);
    console.log("SOLUTION: ", solution);

    // Give feedback
    successSolve
      ? await api9kw.asyncIsCorrect(captchaId, true)
      : await api9kw.asyncIsCorrect(captchaId);
  } catch (err) {
    console.error(err); // Timeout or NO_USER
  }
})();

1.3. Callbacks

const Api9kw = require("9kw");
const api = new Api9kw(/* You can pass parameters here or just use the ENV vars */);

// Get your account balance (credits)
api.getBalance((err, balance) => {
  console.log(balance);
});

// 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 captha
api.submit(URL, (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 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
api.submit(
  SITE_KEY,
  (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
  },
  SITE_URL,
  OVERWRITE_PRIO_IF_YOU_WANT
);

// 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.getSolutionLoop(captchaId, 40, (err, solution) => {
  if (err) {
    console.log(err);
    return;
  }
  console.log("Solution: " + solution);
});

// Tell 9kw the solution was correct or not
api.isCorrect(captchaId, true);

// Get the 9kw server check info
api.serverCheck((err, serverInfo) => {
  console.log(serverInfo);
});

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

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
1.0.3Registry latest29 Sept 202013

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
gpedro34/9kw-captcha-node

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 21:38 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:b2ce4c1efbaccceebaf375daf249e34d7f596b86798d34a1c47124b54f2ddb10