DevilXD / TwitchDropsMiner

An app that allows you to AFK mine timed Twitch drops, with automatic drop claiming and channel switching.
MIT License
1.57k stars 156 forks source link

Application doesn't work anymore #40

Closed ThisIsCyreX closed 1 year ago

ThisIsCyreX commented 1 year ago

Hello!

Miner works fine until the drop is done and gets to the claiming phase:

Fatal error encountered:

Traceback (most recent call last):
  File "main.py", line 169, in <module>
  File "asyncio\base_events.py", line 646, in run_until_complete
  File "twitch.py", line 170, in run
  File "twitch.py", line 228, in _run
  File "inventory.py", line 191, in claim
  File "inventory.py", line 109, in claim
  File "inventory.py", line 130, in _claim
KeyError: 'data'

Exiting...
2022-09-14 00:32:58.981:       INFO:    Websocket[0] stopped.

Application Terminated.
Close the window to exit the application.

I noticed it with this drop: image and this: image (I claimed them manually)

Both Ubisoft titles. Not sure if this is important.

Nothing in the log except Response 200, keep-alive

Thank you :)

chowder commented 1 year ago

@DevilXD For what it's worth, I've also been trying to tackle this. I've got reasonaby close with using Playwright with this Stealth plugin but it's spotty - half the time it passes the integrity checks, but the other half the time it doesn't.

I'm going to attempt to decompile the Twitch APK to have a look at what it's doing - since much older APKs are still able to perform all GQL operations successfully, might be a quick (albeit temporary) win if it's simple.

DevilXD commented 1 year ago

I'm going to attempt to decompile the Twitch APK to have a look at what it's doing

You mean like, the Twitch's core Javascript code? Or my application? Cos if you mean mine, then there's no need to decompile anything, as this repo hosts the source code for all versions available for download as an EXE: obraz

The reason I release this as an executable is just so that the end user has it easier to run this thing, instead having to install Python and dependencies and deal with the issues along the way and all of that.

As far as "older versions working", it's because they don't care about the integrity endpoint at all, and it seems that:

I'm still working on a version with disabled claiming, I've been really busy lately though, so it may take a while. If I won't have to stay overtime at work again, I'll try to put something together today.

chowder commented 1 year ago

No, I meant decompiling the official Twitch APK, because older versions of the app are still able to perform protected GQL operations, e.g. claim drops - if they're using special headers or a different API it might be easier to bypass than the Kasada protections they've put in place.

Although having dug into this a little bit - it seems like they're using a custom WebView within their mobile apps, but I still think it's a useful endeavour since every browser implementation (Selenium, Puppeteer, Playwright) I've thrown at it, except for a real browser, doesn't bypass the checks.

ZeorymerX commented 1 year ago

Fatal error encountered:

Traceback (most recent call last): File "main.py", line 169, in File "asyncio\base_events.py", line 616, in run_until_complete File "twitch.py", line 170, in run File "twitch.py", line 186, in _run File "twitch.py", line 827, in check_login File "twitch.py", line 801, in _login exceptions.LoginException: Oops! We encountered an unexpected error. Please try again.

Someting wrong like this, please help me T_T

DevilXD commented 1 year ago

Hello o/

It's been some time, and I couldn't really find the will and courage to get back into this broken project of mine. I've just tried looking into it yet again like 2 hours ago, and found an interesting lead. Decided to try it out because why the heck not, and... the miner... started working normally again? obraz

Here it is claiming some points of a channel it was watching. Fetching inventory passes. Fetching channels passes. Progressing drops passes. Everything seems to be back to working. The "bad bot" flag is still set to "true", but claiming those bonus points from the picture used to generate an error when used with a "detected" integrity token... and now it did so just fine.

I'll hold off my horses with a release (or even a repo push, for now this is strictly local testing) until I can see it successfully claim an actual drop like it used to, but it looks promising. I'll update you on the matter once it does so.

AndyShade commented 1 year ago

Hello o/....

Aloha What version you use ? How about login ussie ?

trying to login and have :

Please log in to continue.
Fatal error encountered:
Traceback (most recent call last):
  File "main.py", line 169, in <module>
  File "asyncio\base_events.py", line 616, in run_until_complete
  File "twitch.py", line 418, in run
  File "twitch.py", line 438, in _run
  File "twitch.py", line 981, in get_auth
  File "twitch.py", line 198, in validate
  File "twitch.py", line 226, in _validate
  File "twitch.py", line 170, in _login
exceptions.LoginException: Oops! We encountered an unexpected error. Please try again.

Exiting
Application Terminated.
Close the window to exit the application.

v13 dev 5

DevilXD commented 1 year ago

The thing is, I'm not getting the login issue at all myself. I used to get it at first, but I don't anymore, I was able to successfully log in and create a fresh cookie file today. Are you using a proxy by chance?

AndyShade commented 1 year ago

The thing is, I'm not getting the login issue at all myself. I used to get it at first, but I don't anymore, I was able to successfully log in and create a fresh cookie file today. Are you using a proxy by chance?

no

DevilXD commented 1 year ago

Then I doubt you'll be able to get the 6th dev version working, even after these changes are made and I'm testing. And this has nothing to do with the application itself, because as I said, it stopped happening to me. Twitch can just randomly flag your account for an "extra security check" and redirect your login to the /protected_login endpoint, that this application cannot handle, and never will, because it'd be equivalent to trying to beat CAPTCHA (which is also unhandled, by design).

Besides, all v13 dev versions, from the 1st to the 5th one, shouldn't be used - otherwise you're just asking Twitch to flag your account. My recommendation is: don't run it, and then complain it doesn't work. It doesn't work for anyone, even after you'd somehow get past the login phase. I have a 6th version that appears to be working for now, but I give exactly zero guarantee it'll let you through the login phase once you get it. It's not up to me to decide, as I said.

DevilXD commented 1 year ago

:eyes:

success

AndyShade commented 1 year ago

👀

My send you ver ?

DevilXD commented 1 year ago

Version v13 has been released, which fixes this issue. Enjoy =)