Ekran komputera z widocznym kodem źródłowym i logo Epic Games Store, rozmyte sylwetki ludzi w tle.

Darmowe gry w Epic Games Store odbierane automatycznie. Nie popełnijcie mojego błędu

7 minut czytania
Komentarze

Plan naprawdę był ambitny. Spędziłem cały wieczór na próbach uruchomienia skryptu, który automatycznie loguje się na konto Epic Games Store i odbiera cotygodniowe, darmowe gry za użytkownika. Spojler, nie działa. To znaczy działa, bo sam skrypt udało mi się uruchomić, i to pomimo najgorszej instrukcji, jaką kiedykolwiek w życiu widziałem. Po drodze napotkałem jednak niespodziewany problem, który dość łatwo mogłem przewidzieć.

Jak automatyczne odbieranie gier w Epic Games Store miałoby działać?

Coroczna tradycja polega na tym, że w świąteczno-sylwestrowym okresie, Epic Games Store rozdaje bardzo wiele gier za darmo. Tak będzie i teraz, ponieważ od 15 grudnia do 5 stycznia, sklep Tima Sweeneya planuje rozdać aż 15 bezpłatnych pozycji.

Dlatego też to był świetny moment, by spróbować wdrożyć taką automatyzację odbierania gier na pecetowej platformie. W założeniu autora, skrypt należałoby zaplanować w systemowej aplikacji Harmonogram Zadań tak, by wywoływałby się bez naszej ingerencji.

Program miałby dostęp do naszego loginu i hasła, więc samodzielnie byłby w stanie uruchomić instancję przeglądarki i odebrać darmowe produkcje. Najpierw jednak, trzeba było spełnić wszystkie wymagania tego programu, a i one nie były oczywiste.

prezenty w Epic Games Store
Grudzień to czas prezentów w Epic Games Store. Niestety, trzeba będzie je odbierać ręcznie

Problemy nawarstwiały się już od początku

Wspomniany przeze mnie skrypt, który miał zapewnić mi darmowe gry z Epic Games Store w nieskończonym, cotygodniowym strumieniu, znalazłem na portalu Git Hub, słynącego z wielu darmowych programów oraz modyfikacji do starych gier, usprawniających ich działanie na nowszych systemach operacyjnych. Free-Games.py użytkownika MasonStookbury było jednak zupełnie inną bestią, ponieważ to zestaw instrukcji dla systemu Windows oparty o język programowania Python.

darmowe gry z Epic Games Store - skrypt
Tak wyglądają pierwsze linijki skryptu Free-Games.py

MasonStookbury jest niewątpliwie świetnym koderem, ale tragicznie pisze poradniki. Autor zakłada, że mamy jakąś podstawową wiedzę na temat programowania, przez co popełnia zdecydowanie zbyt wiele skrótów myślowych. A przecież tutaj chodzi tylko o darmowe gry z Epic Games Store! Problem jest tak wielki, że początkowo nie miałem w ogóle pojęcia, w jakim programie wpisać przytaczane przez autora polecenia. Mało tego, brakuje jakiegoś wylistowania wszystkich dodatkowych narzędzi, które mogą mi się przydać w uruchomieniu tego skryptu.

Darmowe gry z Epic Games Store - skrypt

Nie wiedziałem, że muszę dysponować edytorem kodu języka Python, kompatybilnym z formatem plików .env, albo, że w moim systemie muszą znajdować się biblioteki Microsoft Visual Studio 14.0 Build Tools. To wszystko powinno być wypisane w poradniku tak, by użytkownik mógł krok po kroku, bez dodatkowej wiedzy, odtworzyć samodzielnie proces.

W trakcie etapu przygotowawczego musiałem też zdobyć ręczny klucz weryfikacji dwuetapowej. W tym celu musiałem ją wyłączyć i włączyć ponownie na swoim koncie Epic Games Store

Umiejętność wyszukiwania informacji w sieci to podstawa

Nie mając pojęcia gdzie i jak wpisać komendy sugerowane przez autora skryptu, zacząłem je kopiować w pole wyszukiwarki i doczytywać kolejne informacje. Jak się okazało, wszelkie komendy dotyczące bibliotek Python wpisujemy bezpośrednio w systemowy PowerShell lub Terminal, dawny Wiersz Poleceń.

Najpierw jednak, te biblioteki w ogóle muszą się znaleźć w systemie. Skierowałem się więc do oficjalnej strony języka Python i zainstalowałem pakiet plików. Komendy dalej nie działały, z dość prostego powodu. Przy instalacji nie zaznaczyłem parametru PATH, który dodałby obsługę języka programowania do Terminala.

I dopiero wtedy mogłem zacząć tak naprawdę pracę z instrukcjami na Git Hub. Gdy wpisałem pip install selenium, a wiersz poleceń zaczął się przewijać jak szalony, poczułem się niemalże jak prawdziwy koder. Udało mi się tak zainstalować 3 z 4 wymaganych składników, bo przecież nie mogło pójść tak łatwo.

Problem sprawił składnik lxml i sądząc po moich wynikach wyszukiwania, nie byłem jedyny. Na całe szczęście, wiersz poleceń zostawiał jakieś wskazówki w postaci komunikatów błędów, więc i te bezczelnie kopiowałem do Google Chrome z nadzieją na jakieś rezultaty. Po jakiejś godzinie udało mi się ręcznie zainstalować i tę bibliotekę, choć byłem gotowy już się poddać. W międzyczasie zainstalowałem dodatkowe pliki dla Microsoft Visual Studio 14.0 Build Tools oraz dwie inne, niewspomniane w ogóle w instrukcjach biblioteki, które miały pomóc zainstalować lxml.

To jednak dalej był etap przygotowawczy, ponieważ skrypt jeszcze musiał wiedzieć, jak zalogować się na moje konto Epic Games Store. Pobrałem więc darmowy edytor kodu oraz otworzyłem w nim cały folder z plikami, jakie zaciągnąłem wcześniej z Git Hub. Tu akurat instrukcja była dość jasna. Podmienić trzy zmienne w dodatkowym pliku .env z hasłem, loginem oraz kluczem weryfikacji dwuetapowej.

Mając już wszystkie zainstalowane biblioteki, łącznie z dodatkowym skryptem geckodriver i przeglądarką Mozilla Firefox (autor skryptu twierdził, że tak łatwiej), uruchomiłem główny skrypt, który automatycznie odebrałby darmowe gry z Epic Games Store. Niestety, dalej nie działał, z prozaicznego powodu. Terminal nie wiedział, jak ma znaleźć przeglądarkę Mozilla Firefox, mimo że ta była zainstalowana w systemie.

W międzyczasie się okazało, że w głównym folderze skryptu musi też znajdować się plik geckodriver.exe, dostępny w oficjalnym repozytorium Mozilla Firefox na Git Hub. Z jakiegoś powodu, musiała to być wersja 32-bitowa. 64-bitowa nie działała, nawet nie chcę wiedzieć dlaczego

Prawie bym zapomniał! Mój system operacyjny oryginalnie nie pozwalał na instalowanie zewnętrznych skryptów o rozszerzeniu .ps1, a to było potrzebne w przypadku geckodriver, narzędzia ułatwiającego komunikację skryptu z przeglądarką Mozilla Firefox. Musiałem więc dodatkowo w Windows PowerShell zezwolić na wykonywanie takich operacji komendą Set-ExecutionPolicy -Execution Policy Bypass. Przypominam, dalej mówimy o skrypcie, który ma automatycznie odbierać darmowe gry z Epic Games Store.

Rozwiązanie dość proste, choć znów nieprzytoczone przez autora skryptu do odbierania darmowych gier z Epic Games Store. Podobnie jak wszystkie biblioteki Python, Firefox także musiał znaleźć się w parametrze PATH, by Wiersz Poleceń wiedział, jak komunikować się z przeglądarką. Ścieżka do tych ustawień w Windows 11 to Mój komputer, Właściwości, Zaawansowane ustawienia systemu, Zmienne środowiskowe. Zaznaczamy PATH, wpisujemy interesującą ścieżkę i zapisujemy ustawienia.

Działa, ale Epic Games Store znów nas wykiwało

Teraz już z pewnością zrozumiecie mój wybuch radości, gdy skrypt prawidłowo się uruchomił i otworzył przeglądarkę Mozilla Firefox. Program automatycznie wprowadził moje dane logowania i… natknął się na system captcha, czyli klikanie prawidłowych obrazków celem weryfikacji, czy na pewno jestem człowiekiem.

Epic Games Store - finałowy skrypt

Z tym poradziłem sobie ręcznie, ale i tak strona Epic Games Store wypluwała błąd logowania. Tym razem jednak to nie była wina skryptu, a zaktualizowanych zabezpieczeń sklepu, uniemożliwiających odbieranie darmowych gier z platformy. Do takiego wniosku naprowadziła mnie jedna z wymaganych bibliotek, a raczej błąd, który wcześniej uniemożliwiał uruchomienie programu.

Założeniem funkcji pip jest pobieranie zaktualizowanej wersji każdej biblioteki, jaką potrzebujemy. Nic więc dziwnego, że miałem do dyspozycji i najnowszą wersję selenium. Ta jednak nie obsługiwała już jednej z funkcji skryptu, ponieważ ten… nie był aktualizowany przez dwa lata. Dopiero po wymuszeniu instalacji starszej wersji selenium, byłem w stanie skrypt uruchomić prawidłowo i natknąć się na zabezpieczenia Epic Games Store.

Epic Games Store - logowanie

Czy to brzmi jak amatorski błąd? Myślę, że jak najbardziej. Na swoje usprawiedliwienie tylko dodam, że autor skryptu nie pokwapił się o umieszczenie informacji, że jego dzieło już nie działa. A szkoda, z pewnością oszczędziłoby mi to kilku godzin intensywnej pracy z Wierszem Poleceń i wyszukiwarką Google.

Niestety, darmowe gry z Epic Games Store będziemy musieli jednak odebrać ręcznie, logując się każdego dnia do aplikacji na komputerach PC. Przygotowując ten skrypt do działania jednak, bawiłem się fenomenalnie. Sam fakt, że udało mi się go ruszyć po tylu przeszkodach i okropnej instrukcji obsługi, uznaję za pewien sukces.

Motyw