Ajouter automatiquement les jeux gratuits EpicGames à son compte
-
EpicGames propose des jeux gratuits chaque semaine. Pas la peine de les télécharger pour en profiter, il suffit de les ajouter à son compte, en les “achetant” (à 0€ donc). Ça prend en compte la version US du site, à savoir par rapport aux dates/décalage horaire.
Charlie Laabs propose un Docker qui permet d’automatiser leur ajout à notre compte. Enfin presque automatiquement, le captcha ne pouvant plus pour l’instant être résolu automatiquement il faudra tout de même cliquer sur un lien.
Voici ce que ça donne sur le Discord d’un ami (merci Matt !)
Il faut activer le 2FA sur son compte EpicGames, il semble que ce soit requis pour acquérir certains jeux et en tous cas ça permet de se connecter automatiquement à son compte. Je ne saurais que trop vous recommander de suivre mon fabuleux tutoriel (beh oui, je m’aime :P) au sujet de 2fauth.
Dans le compte EpicGames, aller sur Mot de passe et sécurité puis activer le 2FA.
On obtient le fameux QRCode à scanner (ou la clé équivalente) et Enregistrer sous l’image du code. Copier la clé, on en aura besoin pour la configuration du Docker epicgames-freegames
Sur 2fauth, cliquer sur Nouveau et uploader l’image du QRCode
Le compte EpicGames va être créé automatiquement et générer un code à usage unique, à entrer en retour sur l’interface d’EpicGames (en bas du screen).
Il propose ensuite de sauvegarder les codes de secours qui permettront de s’affranchir du 2FA en cas de problème.
Et sous 2fauth nous avons bien maintenant notre compte EpicGames.
On peut ensuite passer à la configuration du Docker epicgames-freegames. Le Docker en lui-même est très simple à lancer puisqu’il est recommandé de passer par un fichier de configuration annexe.
docker run -d \ --name=epic \ --restart always \ -e TZ=Europe/Paris \ -e BROWSER_NAVIGATION_TIMEOUT=100000 \ -v /volume1/docker/epicgames:/usr/app/config:rw \ -p 4207:3000 \ -m 2g \ --label=com.centurylinklabs.watchtower.enable=true \ charlocharlie/epicgames-freegames:latest
Modifiez au besoin le montage de /usr/app/config où sera le fichier de configuration.
-e BROWSER_NAVIGATION_TIMEOUT=100000 sert à palier à un timeout du navigateur, -m 2g sert à limiter l’utilisation de la RAM et comme toujours j’utilise Watchtower mais vous pouvez faire sans cette ligne --label=…J’utilise également CloudflareDDNS pour générer un sous-domaine sur Cloudflare et MàJ mon IP dynamique (fibre Orange). Evidemment, ne pas oublier de créer ensuite le reverse proxy inhérent dans Nginx Proxy Manager ou autre. Et dans ce cas n’oubliez pas d’activer le Websocket (case à cocher) sinon vous aurez une erreur
Mais on peut très bien ne le faire tourner qu’avec le classique IP:port
docker run -d \ --name=epicddns \ --restart always \ -e ZONE=upandclear.org \ -e HOST=epic.upandclear.org \ -e [email protected] \ -e API=xxx \ -e PROXY=true \ -e FORCE_CREATE=true \ --label=com.centurylinklabs.watchtower.enable=true \ joshuaavalon/cloudflare-ddns
Revenons à la configuration d’epicgames-freegames, on se base sur le config.json qu’il donne en exemple. Il est a créer/déposer dans le dossier monté pour /usr/app/config
Voici le mien, avec des notifcations Discord, mon email:pwd EpicGames et la clé d’identification 2FA. On peut ajouter plusieurs outils de notification.
{ "runOnStartup": true, "cronSchedule": "5 16 * * *", "logLevel": "info", "webPortalConfig": { "baseUrl": "https://epic.upandclear.org", }, "accounts": [ { "email": "email_epicgames", "password": "pwd_epicgames", "totp": "clé_2fa_epicgames" }, ], "notifiers": [ { "type": "discord", "webhookUrl": "https://discordapp.com/api/webhooks/xx/xxx", }, ], }
Si vous n’avez pas de domaine, remplacer https://epic.upandclear.org
"baseUrl": "IP:port_publié_du_Docker"
Le cron de la configuration lancera la requête tous les jours à 16h05. C’est la valeur par défaut, autant la modifier pour éviter le SPAM d’EpicGames tous les jours à la même heure…
Une fois le Docker lancé on reçoit une notification pour aller valider le Captcha à la main (par défaut la notif est valable 24h)
Cliquer et on tombe sur l’URL du type https://neaj.upandclear.org/?targetId=A6423E30A5626BFC0FEC26FB1A3F17BF
On complète le Captcha et le processus se déroule automatiquement.
Le jeu est bien ajouté à la bibliothèque (cette semaine c’est notamment Iratus: Lord of the dead)
Il est bien ensuite en bibliothèque et installable quand on veut.
Avec le reçu par email
Si c’est la première fois qu’on utilise ce Docker et qu’on souhaite récupérer tous les jeux gratuits de la semaine on peut soit laisser faire le cron qui relancera l’opération tous les jours à 16h soit relancer à la main le Docker pour qu’il aille de suite récupérer tous les jeux.
docker restart epic
On peut voir le déroulé des opérations dans les logs (par curiosité)
[2022-06-30 17:08:53.948 +0200] DEBUG: Launching a new browser user: "[email protected]" [2022-06-30 17:08:54.110 +0200] DEBUG: Launching a new page user: "[email protected]" [2022-06-30 17:08:54.439 +0200] INFO: Loading purchase page user: "[email protected]" purchaseUrl: "https://www.epicgames.com/store/purchase?highlightColor=0078f2&offers=1-5a2108f4db804040aaf44d139bd21bd1-xx&orderId&purchaseToken&showNavigation=true" [2022-06-30 17:09:05.713 +0200] DEBUG: Clicking placeOrderButton user: "[email protected]" [2022-06-30 17:09:05.923 +0200] DEBUG: Clicking euRefundAgreeButton user: "[email protected]" [2022-06-30 17:09:06.912 +0200] DEBUG: Waiting for receipt user: "[email protected]" [2022-06-30 17:09:08.254 +0200] DEBUG: Captcha detected user: "[email protected]" [2022-06-30 17:09:08.264 +0200] INFO: Go to this URL and do something user: "[email protected]" url: "https://epic.upandclear.org/?targetId=4770BC285A86FE0E95D22BF36E4F6EBA" [2022-06-30 17:09:53.864 +0200] INFO: Done purchasing Hood: Outlaws & Legends user: "[email protected]" [2022-06-30 17:09:53.864 +0200] INFO: Purchasing Iratus: Lord of the Dead user: "[email protected]" [2022-06-30 17:09:53.864 +0200] DEBUG: hcaptchaAccessibilityUrl not configured, captchas are less likely to be bypassed. Follow this guide to set it up: https://github.com/claabs/epicgames-freegames-node#hcaptcha-accessibility-cookies [2022-06-30 17:09:53.868 +0200] DEBUG: Logging in with puppeteer user: "[email protected]" [2022-06-30 17:09:53.868 +0200] DEBUG: Launching a new browser user: "[email protected]" [2022-06-30 17:09:54.126 +0200] DEBUG: Launching a new page user: "[email protected]" [2022-06-30 17:09:55.072 +0200] INFO: Loading purchase page user: "[email protected]" purchaseUrl: "https://www.epicgames.com/store/purchase?highlightColor=0078f2&offers=1-d250bdf072934b70ab080c6fcee77734-xx&orderId&purchaseToken&showNavigation=true" [2022-06-30 17:10:06.392 +0200] DEBUG: Clicking placeOrderButton user: "[email protected]" [2022-06-30 17:10:06.601 +0200] DEBUG: Clicking euRefundAgreeButton user: "[email protected]" [2022-06-30 17:10:07.604 +0200] DEBUG: Waiting for receipt user: "[email protected]" [2022-06-30 17:10:09.687 +0200] INFO: Done purchasing Iratus: Lord of the Dead user: "[email protected]" [2022-06-30 17:10:09.687 +0200] DEBUG: Closing browser user: "[email protected]" Run once: false Setting cron schedule as 5 16 * * *
-