vogler / free-games-claimer

Automatically claims free games on the Epic Games Store, Amazon Prime Gaming and GOG.
GNU Affero General Public License v3.0
2.21k stars 139 forks source link

epic-games: docker: captcha before it claims the game #183

Open Darkkingwill opened 11 months ago

Darkkingwill commented 11 months ago

Hello. im getting a captcha right before it claims the game. Its says one more step. Im using an unraid docker if that helps

guipace commented 11 months ago

+1 on this issue

vogler commented 11 months ago

I don't get any. What's your setup? Shared IP via CGNAT? Do you get captcha challenges in your local browser as well?

maxp1110 commented 11 months ago

Since I solve the captcha-problem during login, I also get a hcaptcha-challenge everytime it tries to claim the game. Have to log into noVNC to solve. No problems when doing it on my desktop maschine. Vodafone Cable as ISP.

DevXen commented 11 months ago

Yeah I get this issue too with the unraid docker. But this has one happened for the past week or two.

Darkkingwill commented 11 months ago

i was looking through the logs and it told me untrusted ip too many login attempts. i had to get another ip address. I ended up running the container through a vpn and i will test it next time theres free games

Cexitime commented 11 months ago

Hi, been having this issue as well, I can click the captures in the vnc window to solve them temporarily, This is the logs when the issue occurs, not sure why its complaining about too many login attempts, its literally this container that logs in and it does so successfully every time. Not behind CGNAT on IPv4 only, no IPv6 Available for me yet.

I'll refresh my IP later and check again next time a game is released. Forgot to mention im running this in a docker container on Unraid

19/08/2023 11:49:24 am Current free game: Black Book 19/08/2023 11:49:24 am Not in library yet! Click GET. 19/08/2023 11:49:38 am Got hcaptcha challenge! Lost trust due to too many login attempts? You can solve the captcha in the browser or get a new IP address. 19/08/2023 11:49:55 am Claimed successfully! 19/08/2023 11:50:03 am Current free game: Dodo Peak 19/08/2023 11:50:03 am Not in library yet! Click GET. 19/08/2023 11:50:15 am Got hcaptcha challenge! Lost trust due to too many login attempts? You can solve the captcha in the browser or get a new IP address. 19/08/2023 11:50:30 am Claimed successfully!

vogler commented 11 months ago

Ok, just to confirm: everyone that has the issue is using Unraid? Please try if you have the issue using the docker run ... command on a different machine in your local network.

vogler commented 11 months ago

Are you using this template: https://github.com/Nackophilz/unraid_templates/blob/main/free-games-claimer/free-games-claimer.xml? There seems nothing wrong with it, so it must be something about Unraid. It's weird, but there have been other issues dependent on the host OS: #149 (HAOS), #173 (Arch).

Cexitime commented 11 months ago

Are you using this template: https://github.com/Nackophilz/unraid_templates/blob/main/free-games-claimer/free-games-claimer.xml? There seems nothing wrong with it, so it must be something about Unraid. It's weird, but there have been other issues dependent on the host OS: #149 (HAOS), #173 (Arch).

I am using that template, it is the one available on the community apps plugin for Unraid.

maxp1110 commented 11 months ago

No, I am not using unraid. Proxmox Server with a docker lxc image from tteck (proxmox helper scripts). Inside the lxc, I run your docker run command. Best

yoshimo commented 11 months ago

I use a Pi4 with UmbrelOS and run the docker container linked on this repos main page directly I get the captcha even when i renewed my ip adresses right before starting the docker container.

DevXen commented 11 months ago

Screenshot_20230819_102818_Spark Here's an email I'm getting every day. But cause of the capcha after you click get the games.

I haven't claimed them yet. And can this weekend to try anything you may want. I can vpn to my server the rest of the week but I can't move the window to click on or do anything with the webgui.

yoshimo commented 11 months ago

I tried a few times to solve the captchas and it still occurs on the next try

pechex commented 11 months ago

Same issue on rpi4 running DietPi

UltraHQ commented 11 months ago

Running on rpi4 raspios docker, same issue edit: having this issue since I installed it, so since at least a month

Captcha does not occur on my desktop pc though

vogler commented 11 months ago

Here's an email I'm getting every day.

@DevXen I thought about that problem before. In cases like this, it might be good to have the option to only send notifications when the status changed.

yoshimo commented 11 months ago

But if you run it standalone without supervision you won't notice if the store changes and the tool breaks. You should notify either way.

vogler commented 11 months ago

You would. It would just not send the same message multiple times.

vogler commented 11 months ago

It's a bit of detective work to figure out what may be the reason.

Many of you mentioned rpi4. Maybe your setups are too slow since captcha services do computations in JS and check the performance. Did someone with a rpi4 try running it without docker? You can always run it for free in the cloud: https://github.com/vogler/free-games-claimer/wiki/Host-and-run-free-games-claimer-in-the-cloud-periodically

I made a spreadsheet where you can put in your data: https://docs.google.com/spreadsheets/d/1ulC4E59Hs7aDvpgN-D_QFT3lEmf_j88zY9TMve6faQ4/edit?usp=sharing

Make sure that you run the latest version and keep your data/browser (having to login every time may also increase the risk of getting a captcha challenge).

minkshaman commented 11 months ago

added mine for you

Nackophilz commented 11 months ago

The same goes for me: for some time now, I've been having constant hcaptchas ^^'.

I use my template for unraid of course haha

I don't think it's related to Unraid or anything, but maybe it's just the method that ended up being flagged?

KarlLee830 commented 11 months ago

I also encountered the same problem, also using unraid docker

yoshimo commented 11 months ago

It feels like the browser is a lot slower in the docker container compared to the computer, although i think a raspberry with 4x1,8ghz and 4gb ram shouldn't be too slow. It worked fine a few weeks before.

Lavoslav commented 11 months ago

Docker in UnRaid, template from community apps, captcha just before claim on both games added in spreadsheet

DGMayor commented 10 months ago

added to spreadsheet. I just set this up about two weeks ago, and Epic has been giving me captcha since the start, unfortunately.

DevXen commented 10 months ago

So I wanted to add it's not an IP based limit. I just connected to my home server vpn and claimed the game on my phone just fine with no captcha.

nodiaque commented 10 months ago

I have 3 docker and 2 out of 3 does it. It started out of nowhere.

Slothoncrack commented 10 months ago

I also have this problem, every time. A few weeks ago it used to work fine. Running on Raspi 4 4GB, docker crontab.

guipace commented 10 months ago

I have 3 docker and 2 out of 3 does it. It started out of nowhere.

Same here; I have 2 and only one does it. Docker containers running on Unraid.

andre-paulo98 commented 10 months ago

Also getting this, running with docker, scheduled with crontab on a Gigabyte NUC (added to the sheet)

kboxvegas commented 10 months ago

Getting the same in Unraid, I have a static IP. 1000005931 1000005930

kevinmatthe commented 10 months ago

I have a simple script as a temporary solution if your situation is likely to mine:

  1. Having your own server with public ip(which allow remotely connection to VNC to pass captcha mannualy)
  2. Don't want to build a custom docker container by modifying source js code(Installing NPM dependency takes forever for me)
  3. Still want to get in track with latest change, but need a workaround to make current docker image work
    sed -i '/error('\''  Got hcaptcha challenge!/a\\t\t\t\t\tawait notify('\''epic-games: Got captcha right before claim.'\'');' epic-games.js

    This script will add a new line

    await notify('epic-games: Got captcha right before claim.')

    right after https://github.com/vogler/free-games-claimer/blob/6bb1dca93412c82219bd8f68fd1dec8a42aab01b/epic-games.js#L206C11-L206C11 which will notify out to the channel you configured in environment. After receiving this, you can use your own device to connect to VNC device to pass the captcha yourself. Hope it helps.:>

vogler commented 10 months ago

@kevinmatthe Thanks, I added another call to notify in 621032e459df85beb2996fa69ff93e8aeb526b9a. Maybe I'll add an option for a reverse tunnel service like https://serveo.net (given that VNC_PASSWORD is set).

vogler commented 10 months ago

I have 3 docker and 2 out of 3 does it. It started out of nowhere.

Same here; I have 2 and only one does it. Docker containers running on Unraid.

@nodiaque @guipace is there anything different between them?

nodiaque commented 10 months ago

user account. But lately all three of them are doing it now.

vogler commented 10 months ago

Checking the spreadsheet it only seems to be a problem when using docker... Can someone confirm that running it without docker fixes it for them? Just need to ssh, git clone, npm install (see Readme).

My assumption was that the JS compute challenge changed and hardware too weak to run the browser/JS fast enough via docker now get a captcha challenge. Running a browser on a RPi is pretty slow. However, there's also more powerful hardware in the list - although all those seem to be on Unraid.

I'll add some timing output so people can compare how long steps of the script take for them and if that's really the issue. (It could also be something specific to the image, although Ubuntu 22.04 is not that uncommon and I don't know what's visible to the browser besides the resolution.)

nodiaque commented 10 months ago

I don,T think that'S the problem. My server is not a RPI. I'm running a Xeon W-2275 14-cores/28 threads @3.30ghz with 128gb ram and the docker system run on a nvme drive.

nodiaque commented 10 months ago

On my end, I think it's too much account login at the same time everyday. Like everyday exactly at same time, I think that triggered a warning.

andre-paulo98 commented 10 months ago

On my end, I think it's too much account login at the same time everyday. Like everyday exactly at same time, I think that triggered a warning.

Would be my guess as well, if I try to claim the games on my computer (same network as the automated version) I get no captchas

yoshimo commented 10 months ago

One would need to log out on the computer and see what happens. Because i'd assume that the ip gets flagged and all devices get treated the same.

vogler commented 10 months ago

On my end, I think it's too much account login at the same time everyday. Like everyday exactly at same time, I think that triggered a warning.

If you keep data/browser, it shouldn't need to login. Even checking the page several times a day should be fine. I don't think they track requests per client to find patterns (e.g. same time every day) - that would be a lot of data to go through.

vogler commented 10 months ago

I don,T think that'S the problem. My server is not a RPI. I'm running a Xeon W-2275 14-cores/28 threads @3.30ghz with 128gb ram and the docker system run on a nvme drive.

@nodiaque I don't see your entry in the list ๐Ÿ˜„ Do you run it on Unraid as well?

vogler commented 10 months ago

Another thing that could be a factor is that you are claiming for several accounts one after another from the same IP.

I added more columns to the sheet:

EnumC commented 10 months ago

On my end, I think it's too much account login at the same time everyday. Like everyday exactly at same time, I think that triggered a warning.

Would be my guess as well, if I try to claim the games on my computer (same network as the automated version) I get no captchas Another thing that could be a factor is that you are claiming for several accounts one after another from the same IP.

I added more columns to the sheet:

  • stay logged in (keep data/browser)
  • accounts (number of different epic-games user accounts)

  • scheduled (how often do you run it?)

I'm not so sure on the timing either. Mine runs at a random interval, and I started getting hit with captcha around the same time as everyone else. Have persistent data configured and on residential IP, and I can confirm that it doesn't need to log in every time. Running on pretty beefy hardware, so performance shouldn't be an issue either. Only claiming for 1 account. If I'm speculating, I would place my bet on a change in hcaptcha's challenge and detection of automated browsers. I'm not sure what else would explain a sudden spike in captchas across multiple installations and users.

vogler commented 10 months ago

I would place my bet on a change in hcaptcha's challenge and detection of automated browsers. I'm not sure what else would explain a sudden spike in captchas across multiple installations and users.

That would also be my bet if it affected everyone. However, it only seems to be a problem when running via docker (and even there I don't get any captcha challenge).

nodiaque commented 10 months ago

I don,T think that'S the problem. My server is not a RPI. I'm running a Xeon W-2275 14-cores/28 threads @3.30ghz with 128gb ram and the docker system run on a nvme drive.

@nodiaque I don't see your entry in the list ๐Ÿ˜„ Do you run it on Unraid as well?

yes unraid

nodiaque commented 10 months ago

The captcha for me occur directly after login. I used to have it after adding a game and clicking "buy", but now it's directly after logging before checking for any games,

vogler commented 10 months ago

Set TIME=1 to show durations for steps.

Without Docker:

$ TIME=1 node epic-games.js
2023-08-31 16:55:23.732 started checking epic-games
startup: 1.740s
Signed in as *
login: 469.2ms
Free games: [ 'https://store.epicgames.com/en-US/p/homeworld-deserts-of-kharak' ]
Current free game: Homeworld: Deserts of Kharak
  Not in library yet! Click GET.
  Claimed successfully!
claim game: 14.704s
claim all games: 15.061s

$ TIME=1 node epic-games.js
2023-08-31 16:56:18.943 started checking epic-games
startup: 1.733s
Signed in as *
login: 472.977ms
Free games: [ 'https://store.epicgames.com/en-US/p/homeworld-deserts-of-kharak' ]
Current free game: Homeworld: Deserts of Kharak
  Already in library! Nothing to claim.
claim game: 2.453s
claim all games: 2.797s
vogler commented 10 months ago

Using Docker I'm now also getting a captcha challenge during login:

$ docker run --rm -it -p 6080:6080 -v fgc:/fgc/data --env-file data/config.env -e DRYRUN=1 -e TIME=1 -e RECORD=0 ghcr.io/vogler/free-games-claimer node epic-games
Version: https://github.com/vogler/free-games-claimer/tree/
Build:
Xvfb display server created screen with resolution 1920x1080
VNC is running on port 5900 (no password!)
noVNC (VNC via browser) is running on http://localhost:6080

2023-08-31 14:57:21.715 started checking epic-games
startup: 2.525s
Not signed in anymore. Please login in the browser or here in the terminal.
Open http://localhost:6080 to login inside the docker container.
Login timeout is 180 seconds!
Press ESC to skip the prompts if you want to login in the browser (not possible in headless mode).
โœ” Enter password ยท *
CAPTCHA!
^C
Interrupted by SIGINT. Exit!

Instead of showing the captcha challenge, it instead showed a message 'Incorrect response. Please refresh the page.' after the script submits the login: image After refresh and manual login via noVNC, I got a normal captcha challenge. On another try, the captcha challenge was shown and detected by the script. However, even when solving it right, I always get the message above.

What didn't have an effect:

I noticed that mouse events don't work right in the container, e.g., browser menus like the right click context menu disappear when moving the mouse over it (you can select items with the keyboard). Maybe it's an issue with Xvfb.

vogler commented 10 months ago

Without Docker I first got a captcha challenge for login as well, but only because of the many login attempts in Docker before. Changed the IP address and got no captcha challenge on login without Docker:

$ SHOW=1 DRYRUN=1 BROWSER_DIR=data/browser3 node epic-games.js
2023-08-31 22:45:50.421 started checking epic-games
startup: 4.281s
Not signed in anymore. Please login in the browser or here in the terminal.
Login timeout is 180 seconds!
Press ESC to skip the prompts if you want to login in the browser (not possible in headless mode).
โœ” Enter password ยท *
Got a captcha during login (likely due to too many attempts)! You may solve it in the browser, get a new IP or try again in a few hours.
Enter the security code to continue - This appears to be a new device, browser or location. A security code has been sent to your email address at ...
Signed in as *
login: 37.885s
Free games: [ 'https://store.epicgames.com/en-US/p/cave-story-plus' ]
Current free game: Cave Story+
  Already in library! Nothing to claim.
claim game: 1.821s
claim all games: 2.338s
...
$ rm -rf data/browser3
$ newip
old: 2001:a61:5ff:9401:34f5:38fc:f13f:96b2
fritzconnection v1.8.0
FRITZ!Box 7583 at http://169.254.1.1
FRITZ!OS: 7.50
new: 2001:a61:406:301:f031:8831:6d44:75df
$ SHOW=1 DRYRUN=1 BROWSER_DIR=data/browser3 node epic-games.js
2023-08-31 22:50:16.719 started checking epic-games
startup: 4.381s
Not signed in anymore. Please login in the browser or here in the terminal.
Login timeout is 180 seconds!
Press ESC to skip the prompts if you want to login in the browser (not possible in headless mode).
โœ” Enter password ยท *
Enter the security code to continue - This appears to be a new device, browser or location. A security code has been sent to your email address at ...
Signed in as kigu1
login: 12.551s
Free games: [ 'https://store.epicgames.com/en-US/p/cave-story-plus' ]
Current free game: Cave Story+
  Already in library! Nothing to claim.
claim game: 1.525s
claim all games: 1.739s