Closed saltcute closed 1 year ago
I definitely like the idea; probably needs more testing since I'm pretty sure that captchas will show up unexpectedly depending on a very opaque "riskiness score" that Cloudflare associates with a combination of your IP / browser / access patterns / etc.
Even if you don't get a captcha when testing locally, it can still show up at some point if you get flagged.
So just found that Microsoft doesn't even need a 2-step verification, so the login process is automated if CloudFlare does not kick in and requires captcha. Still, not sure about how this will work after a few logins.
Does using this 'puppeteer-extra-plugin-recaptcha' module even though it is paid for make sense because it is too difficult to bypass this problem in other ways, or is it better to think of a free solution?
The captcha plugin may be the way to go; I've been traveling so haven't had a chance to really investigate properly.
Captcha and/or "ChatGPT is at capacity" screen can appear before you even get to the login screen, and I've also seen them both afterwards.
I saw reCaptcha before logging in while running through the example, probably Google or Microsoft authentication can be the way to go?
Does using this 'puppeteer-extra-plugin-recaptcha' module even though it is paid for make sense because it is too difficult to bypass this problem in other ways, or is it better to think of a free solution?
I've tried it and it's not detecting the recaptchas properly. The plugin doesn't seem to be maintained very well.
I still don't understand why, but if anyone has any ideas, please tell me. I've tried making two projects one javascript and one typescript, they both work fine, the only problem I've noticed and I can't figure out why is that in this part of the code:
await page.waitForSelector("#username");
await page.type("#username", email, { delay: 20 });
await delay(100);
if (hasRecaptchaPlugin) {
const res = await page.solveRecaptchas();
}
await page.click('button[type="submit"]');
await page.waitForSelector("#password", { timeout: timeoutMs });
await page.type("#password", password, { delay: 10 });
submitP = () => page.click('button[type="submit"]');
the line where const res = await page.solveRecaptchas();
is present is not waited for and the process goes on and it always fails because it takes a few seconds before it finishes and so it doesn't solve the captcha. This problem only happens if I run the project in typescript
@marcorizza is it working for you in JS?
This may be due to https://github.com/berstend/puppeteer-extra/pull/758 in the TS version or some other related bug with puppeteer-extra-plugin-recaptcha
The latest release added support for CAPTCHA automation which may help some folks in this thread. Note that this is a major version bump as it contains breaking changes to the core APIs, so check the docs carefully before upgrading: https://github.com/transitive-bullshit/chatgpt-api/releases/tag/v3.0.0
@marcorizza is it working for you in JS?
This may be due to berstend/puppeteer-extra#758 in the TS version or some other related bug with puppeteer-extra-plugin-recaptcha
only in js, in a ts project it does not work for me.
Confirming that Google is the way to go to fully bypass CAPTCHAs.
So if you don't want to use a CAPTCHA service, you can use Google logins which will receive much less frequent CAPTCHAs and afaik no Recaptchas, which are the really painful ones.
TODO: I still need to add something to the readme explaining all of the CAPTCHA considerations.
By login using Google, the only thing that requires user operations appears to be the 2-step verification from Google, and this can be done away using your smart phone.
Or is it going to be detected by Google after a few tries?
Like this: