Revadike / epicgames-freebies-claimer

Claim available free game promotions from the Epic Games Store.
MIT License
2.23k stars 359 forks source link

Purchase is not completed #172

Open jackblk opened 2 years ago

jackblk commented 2 years ago

Expected Behavior

No error, purchase should be completed.

Actual Behavior

No error, purchase is not completed. EFC will say it is claimed.

Steps to Reproduce the Problem

  1. Buy a game
  2. Check the actual game page, it should be claimed

Some debugging, seems like a bug on the epicgames-client.

image

Specifications

Revadike commented 2 years ago

If you monitor the network requests, even with your method, it still retrieves a captcha response, which is needed, you just don't see it in the front end interface (hence invisible), if they deem you trustworthy enough and don't require an actual challenge.

vogler commented 2 years ago

So? You don't have to solve a captcha which is the hard/problematic part.

Revadike commented 2 years ago

The part that we still require a valid captcha response.

vogler commented 2 years ago

As I said, you do since you use the API, I don't since the browser takes care of it.

Revadike commented 2 years ago

Technically, not quite true, but I understand what you mean. I'll leave it there.

vogler commented 2 years ago

What's not true?

Revadike commented 2 years ago

The part that you don't require a valid captcha response because you are using a browser.

vogler commented 2 years ago

It's required, but I don't need to come up with one (I don't require it), the browser takes care of it.

Revadike commented 2 years ago

I didn't say I don't need it, I said the browser takes care of it.

I said:

we still require a valid captcha response

you said in response:

I don't since the browser takes care of it

this would have been more accurate:

I do too, but in my case the browser takes care of it

vogler commented 2 years ago

I thought it's clear that I'm not a browser. The browser taking care of the response implies that it's needed. But ok, it's clear now 😄

shanghei commented 2 years ago

I got this error for tomb raider and not todays game

2022-01-06 | 11:51:56.072 | ERROR | Failed to claim Gods Will Fall (Error: We could not confirm your purchase at this time. Please try again later.)

I was able to redeem it manuall and there was no captcha. Is there a fix for this? Thanls

fluteds commented 2 years ago

Is there a fix for this?

Until the Captcha issue is fixed, no. However there's a temporary work around using AutoHotKey #179

shanghei commented 2 years ago

so this isnt working for anyone unless they use workaround?

AndersWJ commented 2 years ago

Just a quick question. Is this concluded to be "dead" or is there any chance of solving this knowing the current situation?

I would really like not to use the AHK approach, or browser approach, as it would be easier to just claim the games manually then (in my opinion) :)

Revadike commented 2 years ago

I'm still interested in continuing this project, for sure. It's just a matter of having enough time to find and implement solutions. You can check my progress here: https://github.com/Revadike/epicgames-freebies-claimer/pull/184 Of course, feel free to help or contribute. It would greatly be appreciated!

chaoscreater commented 2 years ago

Just a quick question. Is this concluded to be "dead" or is there any chance of solving this knowing the current situation?

I would really like not to use the AHK approach, or browser approach, as it would be easier to just claim the games manually then (in my opinion) :)

That doesn't make sense. Why would using any other approach be more difficult? With any of these approaches, including Revadike's method, you can set up a scheduled task to run them automatically at e.g. 2am in the morning (you'll most likely be asleep at that time) and it'll do that for you in the background.

If you have multiple Epic Game accounts (like me), it makes it much easier to automate the game claiming process for you. Imagine having to do this manually for 5~10 different accounts, it's annoying.

The ONLY difference between these methods is that Revadike uses I believe APIs to talk to the backend server, whereas AHK or other browser methods (Selenium or Puppeteer or whatever) simulate the user-click actions in a browser. They're all automation methods, just done differently.

TovMachin commented 2 years ago

Just a quick question. Is this concluded to be "dead" or is there any chance of solving this knowing the current situation?

I would really like not to use the AHK approach, or browser approach, as it would be easier to just claim the games manually then (in my opinion) :)

That doesn't make sense. Why would using any other approach be more difficult? With any of these approaches, including Revadike's method, you can set up a scheduled task to run them automatically at e.g. 2am in the morning (you'll most likely be asleep at that time) and it'll do that for you in the background.

If you have multiple Epic Game accounts (like me), it makes it much easier to automate the game claiming process for you. Imagine having to do this manually for 5~10 different accounts, it's annoying.

The ONLY difference between these methods is that Revadike uses I believe APIs to talk to the backend server, whereas AHK or other browser methods (Selenium or Puppeteer or whatever) simulate the user-click actions in a browser. They're all automation methods, just done differently.

You completely missed his point ... This is all about the hCaptcha and bypassing Epic's measures that prevent us from claiming. He only said that changing to AHK would help counter the hCaptcha blocking.

chaoscreater commented 2 years ago

What point?

I'm pretty sure I quoted and addressed my reply to this specific comment from AndersWJ: I would really like not to use the AHK approach, or browser approach, as it would be easier to just claim the games manually then (in my opinion) :)

I don't see anywhere in his comment talking about about AHK or hCaptcha. So I'm not sure what you're on about.

Furthermore, AHK does NOT counter hCaptcha, you got that completely wrong. Go and read that AHK thread (I wrote it btw) again. The part that counters hCaptcha is actually either just Firefox itself (for single account users), or Firefox Containers (for multi account owners). Firefox Containers allows you to create multiple containers (isolated environments) and each container can store its own session cookies. Whereas AHK is used to simply automate the mouse clicks.

I've updated the instructions in the AHK post with a bit more detail, I recommend reading it again to understand it better.

AndersWJ commented 2 years ago

Just a quick question. Is this concluded to be "dead" or is there any chance of solving this knowing the current situation? I would really like not to use the AHK approach, or browser approach, as it would be easier to just claim the games manually then (in my opinion) :)

That doesn't make sense. Why would using any other approach be more difficult? With any of these approaches, including Revadike's method, you can set up a scheduled task to run them automatically at e.g. 2am in the morning (you'll most likely be asleep at that time) and it'll do that for you in the background.

If you have multiple Epic Game accounts (like me), it makes it much easier to automate the game claiming process for you. Imagine having to do this manually for 5~10 different accounts, it's annoying.

The ONLY difference between these methods is that Revadike uses I believe APIs to talk to the backend server, whereas AHK or other browser methods (Selenium or Puppeteer or whatever) simulate the user-click actions in a browser. They're all automation methods, just done differently.

I am not saying that any other approach is not working here.

What I am trying to say is, that I do NOT prefer the AHK/browser method, as I would like to have a docker container running to do this stuff for me. I see this more like a "set it and forget it" approach, and self maintaining setup as docker can self-update if any changes occures from the developer.

Also, I would be running this on a Linux instance. So AHK is not an option for me, unless i setup a virtual windows machine.

AndersWJ commented 2 years ago

I'm still interested in continuing this project, for sure. It's just a matter of having enough time to find and implement solutions. You can check my progress here: #184 Of course, feel free to help or contribute. It would greatly be appreciated!

Good to hear, and keep up the good work! - I would very much like to contribute. But my coding skills are limited to SQL and other scripting languages. :(

chaoscreater commented 2 years ago

The AHK method IS already a "set it and forget" approach. As long as you've set it up correctly, it should just claim games for you automatically on a schedule and it should keep working for a long time.

Also, the problem here is that it will always be a cat and mouse game. I've been using Revadike's method for the past 1.5 years and while it's an awesome project, it seems to always encounter these sorts of issues. Epic Games will just keep pushing out new updates to block us from claiming games easily. At some point, they'll probably ban your account if they detect that you're using APIs to do all this. There's another Github project that I follow and it does something similar, where it will claim any free Udemy courses and add them to my account. At some point, Udemy started banning people and it's because they can now detect if people are claiming multiple Udemy courses via methods that use API calls.

Anything method that doesn't look like real user input/interaction, especially methods that make use of APIs, will almost always run into roadblocks set out by the developers of the product/service. At that point, you'd have to hope that the developer will continue supporting the project AND that there will even be a fix available.

On the other hand, AHK actually does a lot of things as if they're done by a real person - such as moving the mouse and clicking it. This is why it is such a popular scripting language for creating scipts or bots for games - especially online games. I've personally created bots for 2 different online games and the devs can't detect it, because it's all real mouse movement. There's no need to inject any code, no need to hack the server or use CheatEngine or whatever. It's all just real user interactions, automated using AHK.

I follow a lot of different projects and use a lot of different tools to automate a lot of things and I have to update them constantly, because they break often. Some projects don't have solutions, some are abandoned and often times I have to WAIT for something to be fixed. I'm not a programmer myself so I can't fix them and I'm tired of these constant issues, so now I just use AHK for most automation projects and I haven't had to update any of them for a long time now. I even use AHK to automate a lot of things I do at work and it's so easy to update something. Say if Epic Games changes the location of a button. At the backend, the button might be completely different and you'd probably have to re-rwite a lot of stuff if you're using API calls. But with AHK? Just get the new X,Y co-ordinates of the button and done. Literally fixed in under 1 minute.

I get the benefits of using a Docker container, but this is also adding unnecessary complexties. As I've said, you're relying on developers and trusting that they will be able to find a fix for new issues AND that the project is still going to be worked on. How long do you wait for a new fix to be released? Just because Docker containers self-update, doesn't mean that it'll actually get updates.

AndersWJ commented 2 years ago

The AHK method IS already a "set it and forget" approach. As long as you've set it up correctly, it should just claim games for you automatically on a schedule and it should keep working for a long time.

I am well aware of how AHK works, as I have done this alot myself. Which is also why I am not a particular fan on using it.

It's fine, that you want to spend the time on setting up AHK to do this for multiple things. I respect that. But I do not want to have my pc running just for AHK to do its things. As I mentioned, it requires Windows or a Windows in a VM. This is not a usefull approach to me, as I want this running on Linux. This is why dockers are the thing which can run on low powered hardware that does not require much.

Dockers do not add any unnecessary complexity. It does the straight opposite, as you can standardize templates for everything and make sure that its updated and created from scratch each time if needed. The only thing dockers are bad at, is emulating Windows using Wine.

I would still rather wait for a docker based solution to run on linux, than going to have to setup and install AHK ever again. I am sure, that Revadike is creating this to achieve the same thing.

chaoscreater commented 2 years ago

I'm not trying to sell you on AHK or anything, but your arguments are confusing.

You've said a few times that you don't want to keep your PC running for AHK, yet your PC will be running Docker and most likely other things in the background. Ironically, Docker actually use more resource than AHK. Here's a screenshot of my AHK resource usage and it never uses more than 1% CPU and more than 1MB of RAM:

image

You seem to have the misconception that AHK take up a lot of system resources. You could run AHK on a super low spec machine and it would still be more efficient than running Docker. Regardless if you're running a VM or a container, you'd still have to have certain dependencies running in an isolated environment, in an additional layer above OS level. Probably even need Docker Swarm to manage multiple Docker containers if you want to run this for multiple Epic Games accounts. Not to mention keeping the image up to date with the Docker registry, etc. How are doing those things not more complicated, compared to just double clicking on a script to run it?

With AHK, you just have a single script. Double click script to run, done. Uses 0% CPU and 1MB of RAM. You need to update the script to fix something? Easy, done within 5 minutes and you're back working again. There's no messing about with updating your Docker image, no waiting on developers to release a new image update, etc. That's the complexity difference that I'm talking about.

I'm literally running a working solution atm, while you are still working for a Docker solution.

It's your choice and I'm not trying to persuade you or anything, but some of your points are rather contradicting. The only point I get is that you don't want to run Windows and want to run Linux, but everything else is literally just sandboxing an app (and dependencies) in an additional layer, whether that layer be a Docker container or a VM. Those in itself add complexity. They're great for work production environments with a lot of moving pieces, but sometimes people over-engineer and over-complicate things unnecessary and they don't see that.

I would be all for Docker, if the project is something that will always be supported by 1st party. For example, I use the NGINX Docker image and there is no cat and mouse game involved here. I don't have to worry about my NGINX breaking randomly one day, so it makes sense to use Docker for that. With projects created by 3rd parties, you're relying on the developers coming up with a fix. This hCaptcha thing has already been broken for at least 2 weeks now and you're still waiting for a Docker solution.

Compared to Heroku, Docker isn't even a good solution. There was a project that uses Heroku to claim Epic Games for you and it was working great, I was using Heroku free tier plans and didn't have to pay for any compute resources and didn't have to run anything on my PC. It was also self-updated as well, because the Heroku apps were deployed via Github Actions (i.e DevOps) and so any changes pushed to the author's master repo will automatically be updated in my forked repo, which then pushes the change to Heroku. It's all done automatically. Well guess what? Epic Games released an update and broke that and the project was still running into issues (also captcha related).

Lastly, just get a thin client and run Windows on it. I've used both Linux and Windows and they each have their Pros and Cons, which is why I still use both. I'm running most of my Windows specific apps on my laptop, which averages about 10-15W when I'm using it. When I'm playing games on it, it uses slightly more up to around 20-25W. Maximum wattage it'll go up to is 45W, but I never reach above 25W anyway. Undervolt the CPU using Throttlestop (or whatever tool of your choice) and you should be all good. I'm able to run a lot of stuff on my machines at home and I don't have to worry about power cost. Everything is running on low power and super efficient and my power bill has always been a low usage one. If you're too concerned about this, then you really need to measure how much power you're using vs how much you're acutally paying. If at the end of the day, using Windows somehow makes you pay $5 more every month, so what?

Revadike commented 2 years ago

Could you guys maybe move this discussion to #179 ?

jackblk commented 2 years ago

@Revadike I doubt that they will remove captcha in the future. Well, either we discontinue this project or we find a way to avoid the captcha.

I think that @vogler 's approach is a good one. We use playwright/puppeteer to claim the game. Not really ideal but that's the only way now.

Drawbacks:

It's pretty sad because this is the only project that uses API call, so it's small and nice to use.

RoiArthurB commented 2 years ago

Following this issue for a while and I'm wondering if using another service like FlareSolverr can be a solution (as other projects like Jackett or Invidious use) ? 🤔🤔🤔

Revadike commented 2 years ago

It's pretty sad because this is the only project that uses API call, so it's small and nice to use.

I agree, that was the main identity/attraction of this project. I won't be discontinuing this project as long as there is enough interest in it, which definitely seems to be the case.

cobadulu001 commented 2 years ago

022-01-11 | 16:57:23.705 | ERROR | Failed to claim Gods Will Fall (Error: We could not confirm your purchase at this time. Please try again later.)

Got that error and when i claim the game manually it ask me to solve a captcha i hope there will be a solution for this

AndersWJ commented 2 years ago

@Revadike Just wanted to let you know, that the latest game was claimed by your project today. I wanted to manually claim it after I got a notification that it was failed. But I saw that it was already in the library. (And I never owned this game) - So, it must work sometimes i guess ;)

Alvin1992 commented 2 years ago

@Revadike Just wanted to let you know, that the latest game was claimed by your project today. I wanted to manually claim it after I got a notification that it was failed. But I saw that it was already in the library. (And I never owned this game) - So, it must work sometimes i guess ;)

Actually, if you claimed all the free games, you just got today's game. Maybe you forgot you claimed this game before. Just check your order list to mark it sure. I stopped crontab for this script and checked the game in epic web page to get today's game manully, just found I got this game already. @AndersWJ

Revadike commented 2 years ago

I claimed it last year: image

dmi97 commented 2 years ago

I claimed it last year: image

I never claimed it and this is the log. It's no longer working because of the captcha, it was good while it lasted.

user@pi4: /usr/local/bin/node /root/epicgames-freebies-claimer/claimer.js 2022-01-15 | 21:46:47.869 | INFO | Epicgames Freebies Claimer (1.5.8) by Revadike 2022-01-15 | 21:46:50.409 | INFO | Found 0 unclaimed freebie(s) for username@outlook.com

I deleted the history entry for that game and ran it again:

user@pi4: /usr/local/bin/node /root/epicgames-freebies-claimer/claimer.js 2022-01-15 | 21:47:10.796 | INFO | Epicgames Freebies Claimer (1.5.8) by Revadike 2022-01-15 | 21:47:13.339 | INFO | Found 1 unclaimed freebie(s) for username@outlook.com 2022-01-15 | 21:47:16.920 | INFO | Logged in as username 2022-01-15 | 21:47:21.265 | WARN | Galactic Civilizations III was already claimed for this account 2022-01-15 | 21:47:21.914 | INFO | Logged username out of Epic Games

vogler commented 2 years ago

Renamed the repo above since I added a script for Amazon Prime Gaming as well: https://github.com/vogler/free-games-claimer It also claims games on external stores like Epic Games and Origin, but needs some testing for Origin keys and potential other stores. The claimer for the Epic Games Store itself works. However, if you change it to headless mode, Epic Games/Cloudflare detect it - so sadly no starting in the background for now. Also, I could not get it to run on my RPi.

PoloNX commented 2 years ago

So there is one fix to "Error: We could not confirm your purchase at this time. Please try again later." ?

Revadike commented 2 years ago

Please fix Revadike!

@Nicklordzero Working on it! You can track my progression here: https://github.com/Revadike/epicgames-freebies-claimer/pull/184

frdmn commented 2 years ago

@Nicklordzero In the future, try to not sound that condescending when asking for support or help in an free and open source community/project...

BeyoungBoSs commented 2 years ago

Sad. easy way is not found to slove it.

AmirulAndalib commented 2 years ago

https://github.com/FlareSolverr/FlareSolverr

This may be useful

raycekar commented 1 year ago

So i don't know what to make of this, but, i did notice when I have 2 games to claim (as in today i just claimed them), I held ctnl and clicked to open in a new tab. Then I alternate between pressing GET on each tab just to claim them faster and noticed that one requested a captcha and the other didn't. For the one that did request the captcha, i simply refreshed the page, pressed GET again and it claimed it. Somehow, I was able to get both games without filling in captcha (even getting prompted for one of them but refreshing bypassed it?)

So again, I am not sure what to make of this or if this is helpful info for anyone, but I did think it was interesting.

vogler commented 1 year ago

@raycekar part of the heuristics whether to give you a captcha challenge is whether the tab is visible.

raycekar commented 1 year ago

@raycekar part of the heuristics whether to give you a captcha challenge is whether the tab is visible.

@vogler ok, thanks for that clarification, and sadly a bummer, was thinking there was maybe something good we could had done with it.

zahvv commented 1 year ago

Screenshot 2022-12-24 191044 help please! The captcha is not loading. i cant log in.

tkiethuynh commented 1 year ago

use firefox extension nocaptchaai, it's free daily