epicgames-freebies-claimer icon indicating copy to clipboard operation
epicgames-freebies-claimer copied to clipboard

Purchase is not completed

Open jackblk opened this issue 2 years ago • 93 comments

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

  • epicgames-freebies-claimer Version: 1.5.8

jackblk avatar Dec 18 '21 21:12 jackblk

yea, got the same problem

adi170-alt avatar Dec 18 '21 21:12 adi170-alt

Damn, sorry, I thought it was working as I actually already own it when I tested it. Is this error different from https://github.com/Revadike/epicgames-freebies-claimer/issues/115 ?

Revadike avatar Dec 18 '21 21:12 Revadike

Damn, sorry, I thought it was working as I actually already own it when I tested it. Is this error different from #115 ?

I think that it is the same as # 115 I get this: 2021-12-18 | 22:20:03.947 | INFO | Epicgames Freebies Claimer (1.5.8) by Revadike 2021-12-18 | 22:20:05.748 | INFO | Found 1 unclaimed freebie(s) for (my email) 2021-12-18 | 22:20:34.183 | INFO | Logged in as (my username) (my token) 2021-12-18 | 22:20:40.844 | WARN | Remnant: From the Ashes was already claimed for this account 2021-12-18 | 22:20:41.299 | INFO | Logged (my username) out of Epic Games 2021-12-18 | 22:20:45.139 | INFO | Push notification sent 2021-12-18 | 22:20:45.143 | INFO | Waiting 1440 minutes

adi170-alt avatar Dec 18 '21 21:12 adi170-alt

Pretty sure I have the same issue, although I only have 3 accounts, my main, a friend's account and my nephew's account, my main already had it, so I assumed it had worked, however checking my friend and nephew's account and it didn't claim it correctly, just get the message "Remnant: From the Ashes was already claimed for this account"

killerjerick avatar Dec 19 '21 02:12 killerjerick

Different reason but the same issue with #115

I'll take a look

jackblk avatar Dec 19 '21 04:12 jackblk

I tested the epicgames-client client, it seems to work just fine for normal games.

However, for mystery games, it will require a param captchaToken. Without this, it will return 400 I think. Welp, seems like the client is getting captcha boys.

jackblk avatar Dec 19 '21 05:12 jackblk

Same question with you. The node js shows I have already claimed the game but when I enter the webstore, the claim button is still here. TZhlng.png

rospod avatar Dec 19 '21 06:12 rospod

@rospod This game has been handed out before. I took it. Yesterday, when I was taken by hand, I was asked for some kind of confirmation, but I do not remember which one.

Perhaps they are giving out something in addition, which cannot be determined from epicgames-freebies-claimer.

XEGARE avatar Dec 19 '21 10:12 XEGARE

After some debugging, seems like the freebies now have hcaptcha built in to the checkout method, init with https://talon-service-prod.ecosec.on.epicgames.com/v1/init

image

Well, I think we cannot use epicgames-client anymore.

jackblk avatar Dec 19 '21 14:12 jackblk

@jackblk Even for one account?

XEGARE avatar Dec 19 '21 14:12 XEGARE

After some debugging, seems like the freebies now have hcaptcha built in to the checkout method, init with https://talon-service-prod.ecosec.on.epicgames.com/v1/init

image

Well, I think we cannot use epicgames-client anymore.

Can confirm there is indeed a captcha now : Capture

TovMachin avatar Dec 19 '21 16:12 TovMachin

@jackblk Even for one account?

yeah, for all freebies

jackblk avatar Dec 19 '21 16:12 jackblk

@jackblk Even for one account?

yeah, for all freebies

Picked up manually there was no hCaptcha

XEGARE avatar Dec 19 '21 16:12 XEGARE

hCaptcha can be bypassed by providing an accessibility cookie: https://dashboard.hcaptcha.com/welcome_accessibility

LLinoor avatar Dec 19 '21 16:12 LLinoor

Picked up manually there was no hCaptcha

Because hCaptcha sees you as a normal person on a normal browser, not a bot.

We purchase by requesting directly to server. Now all freebies need captchaToken to purchase, which epicgames-client dependency cannot solve.

jackblk avatar Dec 19 '21 16:12 jackblk

I don't see any captcha on my end. I tried both browser and EFC. But I still don't know why I get We could not confirm your purchase at this time. Please try again later. with EFC.

I ruled out user-agent detection.

Revadike avatar Dec 19 '21 17:12 Revadike

Wait, I just discovered the browser request had indeed a captcha result in it. I didn't see any captcha prompts, so must be invisible.

Revadike avatar Dec 19 '21 17:12 Revadike

I don't see any captcha on my end. I tried both browser and EFC. But I still don't know why I get We could not confirm your purchase at this time. Please try again later. with EFC.

I ruled out user-agent detection.

For freebies, it requires you to have a captcha token when confirming order. In normal browser, hCaptcha will see that you're a normal user, so it will bypass the captcha automatically. Then it will pass the captcha token to the Placing Order request. If you try to place order multiple times, you will see the captcha.

Try this link to test: https://ue-launcher-website-prod.ol.epicgames.com/purchase?showNavigation=true&namespace=f401d7e187e349138380d22e991b29ca&offers=bdea68145b61462f9cd17068e835aadf

jackblk avatar Dec 19 '21 17:12 jackblk

Yes, can confirm.

Revadike avatar Dec 19 '21 17:12 Revadike

So is there any solution?

ghost avatar Dec 19 '21 17:12 ghost

Ain't that the question. There are a few less-appealing ones:

  • Use an automated web browser
  • Use a paid anti-captcha service
  • Devote to a cat and mouse game to attempt to automate captcha solving

I am also investigating the store cart feature more. Perhaps that's a way to avoid captcha still. For some reason, I am having severe issues even browsing epicgames store now.

Revadike avatar Dec 19 '21 17:12 Revadike

As I noticed before, when adding one of the weekly free games to your cart, it adds a captcha step when checking out, unfortunately :(

Revadike avatar Dec 19 '21 17:12 Revadike

Is it not possible to use cookies to bypass hCaptcha? (as i mentioned before)

LLinoor avatar Dec 19 '21 18:12 LLinoor

No

Revadike avatar Dec 19 '21 18:12 Revadike

hCaptcha specifically provides cookies that can skip authentication. In theory, this is possible, but in practice, hCaptcha determines whether it is a machine action by browser behavior (possibly input speed, browser automation flag, etc.). If it is determined to be a machine action, the cookie will not be served, and in more severe cases, your email and IP address will be blocked. This cookie is also only valid for one day and needs to be retrieved after 24 hours.

ghost avatar Dec 19 '21 18:12 ghost

I didn't know you meant it like that. I wouldn't bypass captcha, it would just trick hcaptcha into giving you a valid response without having to do a challenge (I assume).

Revadike avatar Dec 19 '21 18:12 Revadike

https://blog.skk.moe/post/bypass-hcaptcha/

This article can be referenced. Pay special attention to the official hCaptcha answer in the comments haha~

This is the "cat and mouse" aspect. Like all tradeoffs between security and usability it is not perfect, but it does not need to be: anomalies are generally easy to spot, and can be selectively terminated in real-time.

Is this worth a try? I'm not really sure.

ghost avatar Dec 19 '21 18:12 ghost

For now, the checker and notification pusher is nice as a reminder to go claim something you didn't own before.

frosty5689 avatar Dec 20 '21 17:12 frosty5689

@Revadike worked with 2captcha before and could provide you with a api token for testing Discord: Jaeger33211#5260

Jaeger33211Sec avatar Dec 20 '21 20:12 Jaeger33211Sec

Thanks, but I already have an anti-captcha service.

Revadike avatar Dec 20 '21 20:12 Revadike

would like if there's an option to enable a paid plugin for anti-captcha solver

myfirstevercode avatar Dec 21 '21 05:12 myfirstevercode

The captcha is required even if it is a residential ip address?

antoinerzad1 avatar Dec 21 '21 13:12 antoinerzad1

Just throwing out what I'll be doing while this issue is being figured out (hopefully):

If you haven't set up a notification pusher with Apprise, a simple way to remind yourself to pick up the games is to:

  • Make sure you have action failure alerts for email activated
  • Make the action fails upon receiving the "was already claimed for this account" message by adding this ~ugly~ snippet to your action:
docker run --rm --pull always --volume "$GITHUB_WORKSPACE/device_auths.json:/app/data/device_auths.json" ghcr.io/jackblk/epicgames-freebies-claimer:latest | tee output
if [[ $(cat file | grep "was already claimed for this account") ]] && [[ $(cat file | grep "unclaimed freebie" | awk '{print $8}') != "0" ]]
then
  exit 1
fi

Once the issue is fixed there won't be a way to reach this exit statement (as long as they don't give out 2 freebies at once) since it checks for both an unclaimed freebie and a claimed freebie from the same output.

aofekiko avatar Dec 21 '21 20:12 aofekiko

Well, I could release a fix for the wrong error message, but I don't know what to do about the captcha being there. Let's see if Epic keeps using it, first (probably :( ).

Revadike avatar Dec 21 '21 20:12 Revadike

Even if it just opened a browser to the link of the free game using selenium to manually claim that would be enough, not really a long term solution though.

fluteds avatar Dec 22 '21 13:12 fluteds

Definitely sad it's no longer working, I too am getting both the "[Game] was already claimed for this account" (#115) and "Error: Sorry, you don't have a prerequisite to purchase this pack." (#180)

Rip the set-it-and-forget-it dream

mix3d avatar Dec 24 '21 04:12 mix3d

Even if it just opened a browser to the link of the free game using selenium to manually claim that would be enough, not really a long term solution though.

I think I saw a different repo that took this approach. Might have only been docker. Let me try to find it again.

mix3d avatar Dec 24 '21 04:12 mix3d

@Revadike I think we should just fix the wrong message first. I've checked the code and I think it's an easy fix in epicgames-client.

Maybe we will catch the error on EFC and tell people to claim by themselves.

jackblk avatar Dec 24 '21 04:12 jackblk

@jackblk yeah I agree, let's do that. I'll also try to work on some anti-captcha solutions next week. On the bright side, it looks like fnbr.js is getting compatible with our project; they are going to implement epic store authentication, which will be a good improvement over the depreciated epicgames-client.

Revadike avatar Dec 24 '21 14:12 Revadike

I hacked together a playwright script here: https://github.com/vogler/epicgames-claimer The stealth plugin is enough to avoid the hcaptcha. I just claimed the current game in headful mode with commit https://github.com/vogler/epicgames-claimer/commit/64d0ba8ce71baec3947d1b64acd567befcb39340 Idk if the main branch is fixed with the latest commit and if it works in headless mode as well (comment out https://github.com/vogler/epicgames-claimer/blob/main/main.stealth.js#L63, was not sure if PWDEBUG's inspector is detected). Testing is a bit difficult when you have to wait a day in-between. 😄 Maybe someone else can try it and report back.

vogler avatar Dec 28 '21 20:12 vogler

Well, I could release a fix for the wrong error message, but I don't know what to do about the captcha being there. Let's see if Epic keeps using it, first (probably :( ).

Maybe I've been lucky but I haven't had to enter captcha at all this week. I have the program running on my rPI and I'm logged into my Windows computer. Clicked on each game and checked out like usual with no captcha at all.

Lucetia avatar Dec 31 '21 00:12 Lucetia

Well, I could release a fix for the wrong error message, but I don't know what to do about the captcha being there. Let's see if Epic keeps using it, first (probably :( ).

Maybe I've been lucky but I haven't had to enter captcha at all this week. I have the program running on my rPI and I'm logged into my Windows computer. Clicked on each game and checked out like usual with no captcha at all.

The captcha is invisible. It will only show if they suspect you of inauthentic (automated) behavior. A captcha challenge prompt or not, you will need a valid captcha response nevertheless.

Revadike avatar Jan 01 '22 14:01 Revadike

@Revadike I think we should just fix the wrong message first. I've checked the code and I think it's an easy fix in epicgames-client.

Maybe we will catch the error on EFC and tell people to claim by themselves.

Fixed error message with https://github.com/Revadike/node-epicgames-client/commit/564bcd079eb00b239da976d5e3bf7c786865a79b . Please update the epicgames-client dependency (with my latest fork). Sorry for the long wait, had a bunch of stuff going on.

Revadike avatar Jan 01 '22 15:01 Revadike

I'll leave it open until we have dealt the captcha issue in some way

Revadike avatar Jan 01 '22 15:01 Revadike

Be kewl to just add in a paid captcha service option, while a better solution is being discovered.

rahimkhoja avatar Jan 01 '22 18:01 rahimkhoja

That would be kewl

Revadike avatar Jan 01 '22 18:01 Revadike

So today, I was just using my normal browser to claim games. I wasn't using any scripts. Somehow, I got prompted for hCaptcha at the Place Order step, despite that I was already logged in....

I think it's because I'm using Firefox containers to switch between accounts (without logging in or out) and maybe Epic Games is detecting that there are too many logins coming from the same IP.

image

chaoscreater avatar Jan 02 '22 01:01 chaoscreater

https://github.com/vogler/epicgames-claimer claimed all the Tomb Raider games for me without showing a captcha. Still don't know about headless mode though.

and maybe Epic Games is detecting that there are too many logins coming from the same IP.

I also noticed that they start showing you captchas if you try to login too often from the same IP, but after some hours it was fine again. New IP helps immediately. Firefox containers keep cookies, so the problem is likely just using the site with different accounts from the same IP in a short time (maybe they do some more advanced fingerprinting).

vogler avatar Jan 02 '22 18:01 vogler

I'll repeat:

The captcha is invisible. It will only show if they suspect you of inauthentic (automated) behavior. A captcha challenge prompt or not, you will need a valid captcha response nevertheless.

Revadike avatar Jan 02 '22 21:01 Revadike

I'll repeat:

The captcha is invisible. It will only show if they suspect you of inauthentic (automated) behavior. A captcha challenge prompt or not, you will need a valid captcha response nevertheless.

Idk if this was in response to me, but this is only relevant if you use their API, not if you automate a browser and they don't detect it. The script above runs fully automated.

vogler avatar Jan 02 '22 21:01 vogler

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.

Revadike avatar Jan 02 '22 21:01 Revadike

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

vogler avatar Jan 02 '22 21:01 vogler

The part that we still require a valid captcha response.

Revadike avatar Jan 02 '22 22:01 Revadike

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

vogler avatar Jan 02 '22 22:01 vogler

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

Revadike avatar Jan 02 '22 22:01 Revadike

What's not true?

vogler avatar Jan 02 '22 22:01 vogler

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

Revadike avatar Jan 02 '22 22:01 Revadike

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

vogler avatar Jan 02 '22 22:01 vogler

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

Revadike avatar Jan 02 '22 22:01 Revadike

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 😄

vogler avatar Jan 02 '22 22:01 vogler

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

shanghei avatar Jan 06 '22 16:01 shanghei

Is there a fix for this?

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

fluteds avatar Jan 06 '22 17:01 fluteds

so this isnt working for anyone unless they use workaround?

shanghei avatar Jan 06 '22 17:01 shanghei

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) :)

AndersWJ avatar Jan 07 '22 23:01 AndersWJ

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!

Revadike avatar Jan 07 '22 23:01 Revadike

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.

chaoscreater avatar Jan 08 '22 00:01 chaoscreater

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.

TovMachin avatar Jan 08 '22 00:01 TovMachin

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.

chaoscreater avatar Jan 08 '22 00:01 chaoscreater

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 avatar Jan 08 '22 09:01 AndersWJ

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. :(

AndersWJ avatar Jan 08 '22 09:01 AndersWJ

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.

chaoscreater avatar Jan 08 '22 09:01 chaoscreater

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.

AndersWJ avatar Jan 08 '22 17:01 AndersWJ

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?

chaoscreater avatar Jan 08 '22 23:01 chaoscreater

Could you guys maybe move this discussion to #179 ?

Revadike avatar Jan 08 '22 23:01 Revadike

@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:

  • Bigger container (need to ship with the browser)
  • No longer support other arch, can only support 64 bit systems (amd64, arm64)

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

jackblk avatar Jan 10 '22 05:01 jackblk

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) ? 🤔🤔🤔

RoiArthurB avatar Jan 10 '22 06:01 RoiArthurB

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.

Revadike avatar Jan 10 '22 12:01 Revadike

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

cobadulu001 avatar Jan 11 '22 17:01 cobadulu001

@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 ;)

AndersWJ avatar Jan 14 '22 06:01 AndersWJ

@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

Alvin1992 avatar Jan 14 '22 07:01 Alvin1992

I claimed it last year: image

Revadike avatar Jan 14 '22 11:01 Revadike

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 [email protected]

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 [email protected] 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

dmi97 avatar Jan 15 '22 20:01 dmi97

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.

vogler avatar Jan 21 '22 10:01 vogler

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

PoloNX avatar Feb 01 '22 21:02 PoloNX

Please fix Revadike!

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

Revadike avatar Feb 14 '22 20:02 Revadike

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

frdmn avatar Feb 17 '22 11:02 frdmn

Sad. easy way is not found to slove it.

BeyoungBoSs avatar Mar 18 '22 03:03 BeyoungBoSs

https://github.com/FlareSolverr/FlareSolverr

This may be useful

AmirulAndalib avatar Jul 04 '22 16:07 AmirulAndalib