dessant / buster

Captcha solver extension for humans, available for Chrome, Edge and Firefox
https://addons.mozilla.org/en-US/firefox/addon/buster-captcha-solver/
GNU General Public License v3.0
8.03k stars 597 forks source link

API quota exceeded #217

Closed makew0rld closed 4 years ago

makew0rld commented 4 years ago

System

Extension

Bug description

Captcha was not completed, the text box was left blank

Logs

Browser:

Error: API response: 429, {
  "code": "rate-limit",
  "error": "You have exceeded the limit of 60 requests per minute for your app"
}
Maxim-Mazurok commented 4 years ago

You might need to go to the ext options and configure it to use your own API key instead of the managed one.

makew0rld commented 4 years ago

It seemed to work after uninstalling and reinstalling. Could just be luck of the draw with the API though.

Maxim-Mazurok commented 4 years ago

Yep, I think it's most certainly is luck.

dessant commented 4 years ago

Yes, this error comes and goes depending on how many people use the extension at once. I've tried to mitigate it by setting up a couple of apps for English speech recognition and rotating them, but there is also an account level quota which keeps being reached. I've contacted them for a quota increase, but have not heard anything back.

Firefox Voice is another service, maybe we could implement that and add it as the default service for half of the users.

In the short term your best bet is to use your own API key from Wit.ai.

hackermondev commented 4 years ago

@Maxim-Mazurok How do I get my own API key? What website is the API key from?

arsandov commented 4 years ago

I faced the same error today a couple of times, is it getting more common? I think it's better to own your API key. Is there a ENV variable that we might set with it or should we just fork this and compile our own version?

Maxim-Mazurok commented 4 years ago

@Maxim-Mazurok How do I get my own API key? What website is the API key from?

  1. Go to wit.ai
  2. Press "Continue With Facebook" or "Continue With Github" to sign up
  3. Go to wit.ai/apps/
  4. Click "+ New App" button
  5. Choose name and language, make it private
  6. Go to "Management" -> "Settings" (https://wit.ai/apps/YOU_APP_ID/settings)
  7. Find "Server Access Token", click on it to copy
  8. Open Buster options (paste chrome-extension://mpbjkejclgfgadiemmefgebjfooflfhl/src/options/index.html in Chrome's address bar)
  9. In "Speach service" choose "Wit Speech API"
  10. Set "API Language" same as the language you chose when setting up wit.ai app
  11. Click "ADD API" button
  12. In "API key: Your Langage" paste "Server Access Token" that you copied from wit.ai app settings
  13. You're done, you can close the settings tab and try using Buster with your personal free API key

Is there a ENV variable that we might set with it or should we just fork this and compile our own version?

While you can do this, it's better to use Extension Settings and follow instructions above

arsandov commented 4 years ago

Thanks for your answer @Maxim-Mazurok! In case you are using Firefox the address to set these options is moz-extension://ea8a7d10-011e-4fe3-85b1-300871758aaa/src/options/index.html. Anyway, I think I'll need to do a fork and add my own API key because I'm using a headless browser.

Maxim-Mazurok commented 4 years ago

Anyway, I think I'll need to do a fork and add my own API key because I'm using a headless browser.

No, you don't have to. You can create a chrome profile, configure it in non-headless mode, and then use it with headless by passing --profile /your/path to chrome. However, it seems like you want to use it for scarping or other automation. In my experience, this works only a couple of times, and then google stops offering your audio captcha. Let me know if you got it working consistently, thanks!

duraki commented 4 years ago

This is happening more and more often. Like 40% of the time it spits this error.

dessant commented 4 years ago

Someone is probably using the extension for automation, and they don't even bother to at least set their own free API keys, so they prevent people who truly need the extension from using it with the default settings.

I'll try rotating the API keys in the next release.

To everyone who uses the extension for automation: this extension is terribly inefficient for your use case, because you'll be blocked if you continuously solve audio challenges. Please be considerate and don't ruin something that at least marginally works for regular users.

Maxim-Mazurok commented 4 years ago

To everyone who uses the extension for automation: this extension is terribly inefficient for your use case because you'll be blocked if you continuously solve audio challenges. Please be considerate and don't ruin something that at least marginally works for regular users.

I think it's worth adding this to the README. I was exploring this option as a way to solve re-captcha for scrapers only to find out that it works extremely inefficient. Let me know if I should add this to #219 Cheers!

conceptualspace commented 4 years ago

FYI, wit.ai github login will be deprecated on 12/30/2020

amjd commented 4 years ago

How reliable are the other speech to text services available on the extension's preferences? Do any of them have a generous free tier?

dessant commented 4 years ago

@amjd, all of them have a decent free tier and English speech recognition should work without issues.

amjd commented 4 years ago

Thanks @dessant. I set it up with Azure Speech to Text API. Works like a charm!

Cyberavater commented 4 years ago

@dessant This is now happening 80% the time, Can you add more API keys?

dessant commented 4 years ago

I will wait a bit more, because the current set of keys should support a user base of this size. Hopefully the spammer using the extension will be inconvenienced enough to at least use their own API keys.

I'm also not sure if it would be sustainable to switch API keys, because these people will just begin abusing the new API keys.

For now it's best to use your own API keys if you see this error too often.

Cyberavater commented 4 years ago

I can use my own API but the problem is that I use this extension on many of the lab devices, configuring it on all of them would be troublesome, and this extension might get deleted by some other user right after I leave them, that is why I was asking. Anyways, thanks for your work.

dessant commented 4 years ago

@Cyberavater, what kind of lab and why are you installing it on all of the devices?

Cyberavater commented 4 years ago

University lab, and because I don't get to use the same one every day.

CrendKing commented 4 years ago

@dessant Honestly, I think sooner or later you will eventually be overwhelmed by the spammer. If I'm a spammer, I wouldn't spam less if more people start to use Buster. On the contrary, I'll spam even more to compensate for the loss.

Like you said before, all the other options have free tier API keys, and once switched I no longer see any more 429 error. So to move on, I think you should remove the public key, and write some wiki pages about how to apply for an API key for each option, then provide a link in the addon. This way you don't have to do the endless maintenance (because it is unfair to you), and normal users get their own keys (take ~5 minutes to get one) and good user experience. Plus if some people enjoy the service from Microsoft or IBM, they might upgrade their tier, a win for the companies too.

Maxim-Mazurok commented 4 years ago

There's no reason to upgrade. If you use this too much - Google will not show you audio captcha. If you don't - you will not hit the free tire limit.

Having public API key lowers the entry barrier. Meaning that more non tech savvy people can use add-on.

And spammer will not achieve any good results, usually it takes an hour at max to see that this method is not working for automation. So, the downtime is acceptable, IMO.

Wiki with instructions is a good thing, though. I did open PR with detailed instructions.

Cyberavater commented 4 years ago

Fully agree. How can spammer use this tool to spam even with their own API key, is still a mystery to me. Google just doesn't accept captcha request even if you are doing it the legit way (completing captcha manually) more than a few times. Heck, I get a short ban sometimes even for someone else in the same network, which farther decreases the number of spammers. I think he miscalculated when he said, "the current set of keys should support a user base of this size". Tho, I could be wrong.

dessant commented 4 years ago

Version 1.1.0 is now live on Firefox add-ons, and it should appear on the rest of the extension stores in the next few days.

The latest version should no longer have this issue, and a new error message will be shown that makes the issue clear if the problem reappears in the future.

Thanks to @Maxim-Mazurok's work a guide is now available in the wiki for configuring Wit.ai, and the guide is also linked from the extension's options when Wit.ai is selected.

https://github.com/dessant/buster/wiki/Configuring-Wit.ai

dessant commented 4 years ago

I have set up a new Wit.ai account in preparation for the GitHub integration shutdown and to start with a fresh set of API keys. After less than a day the new version is again hitting quota limits, even if not all users have yet received the update. :crying_cat_face:

dessant commented 4 years ago

The extension must not require creating new accounts by default for accessibility reasons, and there are a couple of ways to achieve that, but I won't have time in the next 2 months to permanently solve this issue.

In the future we may begin using offline audio models through the client app to not have to rely on external APIs.

dessant commented 3 years ago

Here's a guide for configuring IBM Watson: https://github.com/dessant/buster/wiki/Configuring-IBM-Watson-Speech-to-Text

thecodermehedi commented 2 years ago

@Maxim-Mazurok How do I get my own API key? What website is the API key from?

  1. Go to wit.ai
  2. Press "Continue With Facebook" or "Continue With Github" to sign up
  3. Go to wit.ai/apps/
  4. Click "+ New App" button
  5. Choose name and language, make it private
  6. Go to "Management" -> "Settings" (https://wit.ai/apps/YOU_APP_ID/settings)
  7. Find "Server Access Token", click on it to copy
  8. Open Buster options (paste chrome-extension://mpbjkejclgfgadiemmefgebjfooflfhl/src/options/index.html in Chrome's address bar)
  9. In "Speach service" choose "Wit Speech API"
  10. Set "API Language" same as the language you chose when setting up wit.ai app
  11. Click "ADD API" button
  12. In "API key: Your Langage" paste "Server Access Token" that you copied from wit.ai app settings
  13. You're done, you can close the settings tab and try using Buster with your personal free API key

Is there a ENV variable that we might set with it or should we just fork this and compile our own version?

While you can do this, it's better to use Extension Settings and follow instructions above

Thanks bro