Note: Due to Epic's continuous improvement of anti-robot functionality, this repository has become ineffective. Currently, there is no available method for Headless mode and Headful mode must be used.
How to Freeload Gracefully#
Because Epic often gives away games and for various reasons (actually just forgot) I didn't claim them, so I searched through Github and found many scripts for automatic claiming. However, most of these scripts have one problem: they cannot pass hCaptcha human verification. There are also many solutions online for hcaptcha cracking, such as applying for a developer API TOKEN to bypass it, but ultimately it is not a plug-and-play method.
Until I found this repository
EPIC Freebie | Gracefully Claim Epic Free Games
→ This is the official technical documentation ←
Precautions before use#
A warning from the author:
- This project does not allow upstream fork branches to run claim | get | deploy scaffolding instructions in GitHub Actions.
- The author has added a fingerprint lock in the code to block the startup signal from public repository GitHub Actions, but players can create private workflows and run scheduled tasks based on the claim scaffolding instructions according to the steps below.
- It should be noted that the schedule configuration parameters, repository visibility, repository name, and execution syntax must be carefully set according to the regulations, otherwise there will be a risk of abuse.
Setup#
1. Create a Private Github Repository#
Go to the https://github.com/new page and create a repository with Private
permissions.
Please note: The repository name cannot contain the keywords claim
and epic
, regardless of case.
2. Create an Action Workflow#
Go to the newly created repository, click on Actions
, select simple workflow
(click on Configure
below it), and then copy and paste the following content:
name: source-git # Modify your name
on:
workflow_dispatch:
schedule:
- cron: "10 23 * * 4,5" # Modify your schedule configuration
jobs:
setup:
env:
COMMAND_CLAIM: "xvfb-run python main.py claim"
COMMAND_GET: "xvfb-run python main.py get"
COMMAND_UNREAL: "xvfb-run python main.py unreal"
FAKE_HASH: "Automated deployment @ $(date '+%Y-%m-%d %H:%M:%S') Asia/Shanghai"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Initialize environment & fetch project
run: |
sudo timedatectl set-timezone "Asia/Shanghai"
git clone https://github.com/QIN2DIM/epic-awesome-gamer.git epic
cp epic/requirements.txt .
- name: Initialize configuration file
run: |
cd epic/src
echo "PUSHER_TELEGRAM: ${{ secrets.PUSHER_TELEGRAM }}" >> config.yaml
echo "EPIC_EMAIL: ${{ secrets.EPIC_EMAIL }}" >> config.yaml
echo "EPIC_PASSWORD: ${{ secrets.EPIC_PASSWORD }}" >> config.yaml
echo "PLAYER: ${{ secrets.PLAYER }}" >>config.yaml
- uses: actions/setup-python@v4
with:
python-version: "3.10"
cache: 'pip' # caching pip dependencies
- name: Install dependencies
run: |
pip install -r epic/requirements.txt
cd epic/src/ && python main.py install
- name: Start project
run: |
if [ -d "database" ];then cp -rfp database epic/src/; fi
cd epic/src/
${{ env.COMMAND_CLAIM }}
# ${{ env.COMMAND_GET }} # Optional
# ${{ env.COMMAND_UNREAL }} # Optional
- name: Setup GIT user
uses: fregante/setup-git-user@v1
- name: Cache identity token
run: |
if [ -d "epic/src/database" ];then cp -rfp epic/src/database .; fi
if [ -f "epic/src/datas/logs/runtime.log" ];then cp epic/src/datas/logs/runtime.log datas.log; fi
cp epic/src/database/logs/runtime.log .
echo "${{ env.FAKE_HASH }}" > _token
rm -rf epic
git add .
git commit -m "${{ env.FAKE_HASH }}"
git push -f
In the above code, EPIC_EMAIL
represents the email you use to log in to Epic, EPIC_PASSWORD
represents the password you use to log in to Epic, and PUSHER_TELEGRAM
is optional. For specific solutions, please refer to this webpage.
3. DEBUG Workflow#
After entering Actions, click on Run Workflow
to run it once. If there are no issues, then you're done!