Download offline installers from your GOG library
Project description
Easy GOG Downloader
A tool for downloading offline installers and packages from your GOG library.
Features
- Download offline installers from your GOG library
- Smart Download Tracking: Automatically tracks downloaded games, enabling incremental downloads
- Incremental Downloads: Only download new games, skip already downloaded ones
- Support for multiple languages (German, English)
- Support for multiple platforms (Windows, Linux)
- Automatic download organization
- Resume interrupted downloads
- Secure authentication via GOG API
- Optional proxy support for corporate/restricted networks
- Auto-create configuration on first run
Installation
Option 1: Via pip (recommended)
pip install easy-gog-downloader
First-time setup:
- Create a config.json file in your working directory:
cat > config.json << 'EOF'
{
"credentials": {
"refresh_token": ""
},
"proxy": {
"enabled": false,
"http": "",
"https": ""
},
"download": {
"directory": "./downloads",
"languages": ["en"],
"platforms": ["windows"],
"parallel_downloads": 2,
"resume": true
},
"filters": {
"include_dlc": true,
"include_extras": true
}
}
EOF
- Get your GOG authentication token:
gog-get-token
This will guide you through browser-based authentication and automatically save the token to config.json.
- Verify your setup:
gog-test
- Start downloading:
gog-downloader --list
Option 2: From source
- Clone or download this repository
- Install Python 3.8+
- Install dependencies:
pip install -r requirements.txt
- Create configuration:
cp config.example.json config.json
-
Get your GOG refresh token:
python3 get_token.pyFollow the instructions to authenticate via browser
-
Test your setup:
python3 test_tool.py
Usage
If installed via pip:
# List your library
gog-downloader --list
# Download all games (German + English, Windows + Linux)
gog-downloader --download-all
# Download specific game
gog-downloader --download "Game Name"
# Reset download tracker (re-download everything)
gog-downloader --reset-tracker
If running from source:
# List your library
python gog_downloader.py --list
# Download all games
python gog_downloader.py --download-all
# Download specific game
python gog_downloader.py --download "Game Name"
# Reset download tracker
python gog_downloader.py --reset-tracker
Download Tracking
The tool automatically tracks which games you've downloaded in downloaded_games.json. This enables:
- Incremental downloads: Run
--download-allmultiple times, only new games are downloaded - Resume interrupted sessions: If downloads are interrupted, restart and continue where you left off
- Smart updates: When you buy new games, just run
--download-allagain
Example workflow:
# First time: Download all 50 games
gog-downloader --download-all
# Output: Downloaded: 50, Skipped: 0, Total: 50
# Later: Buy 3 new games
gog-downloader --download-all
# Output: Downloaded: 3, Skipped: 50, Total: 53
# If you want to re-download everything:
gog-downloader --reset-tracker
gog-downloader --download-all
The tracker file format:
{
"games": {
"1234567": {
"title": "Cyberpunk 2077",
"downloaded_at": "2026-03-13T15:30:45"
}
}
}
Filtering downloads
With pip installation:
# Windows versions only
gog-downloader --download-all --platform windows
# German installers only
gog-downloader --download-all --language de
# Specific combination
gog-downloader --download "Cyberpunk 2077" --platform linux --language en
With source installation:
# Windows versions only
python gog_downloader.py --download-all --platform windows
# German installers only
python gog_downloader.py --download-all --language de
# Specific combination
python gog_downloader.py --download "Cyberpunk 2077" --platform linux --language en
Configuration
The config.json file contains:
- GOG credentials: Refresh token from your GOG account
- Proxy settings: Optional HTTP/HTTPS proxy configuration
- Download directory: Where files will be saved
- Default languages and platforms: By default, only English and Windows installers are downloaded. To download other languages or platforms, add them to the config:
- Languages:
"languages": ["en", "de", "fr", ...] - Platforms:
"platforms": ["windows", "linux", "mac"]
- Languages:
- Download settings: Resume support, parallel downloads, etc.
File Naming
Downloaded files are automatically named using this format:
Title (Version) (ReleaseYear).extension
Examples:
Beneath a Steel Sky 1994 (1.0) (2008).exe- Windows installerBeneath a Steel Sky 1994 (gog-2) (2008).sh- Linux installer
Multi-part installers (large games split across multiple files):
BioShock Remastered (1.0.122872) (Part 1).exe- Setup executableBioShock Remastered (1.0.122872) (Part 2).bin- Data archiveBioShock Remastered (1.0.122872) (Part 3).bin- Data archive
When multiple language or platform versions exist, they are labeled:
Title (Version) (Year) (DE) (W).exe- German, WindowsTitle (Version) (Year) (EN) (L).sh- English, Linux
Platform codes: W=Windows, L=Linux, M=Mac
File extensions:
.exe- Windows installers (Part 1 of multi-part).sh- Linux installers (Part 1 of multi-part).pkg- macOS installers (Part 1 of multi-part).bin- Data archives (Part 2+ of multi-part installers)
Proxy Configuration
If you need to use a proxy server, set it in config.json:
{
"proxy": {
"enabled": true,
"http": "http://proxy.example.com:8080",
"https": "http://proxy.example.com:8080"
}
}
Leave enabled: false and empty strings if no proxy is needed.
Notes
- Authentication is done via the official GOG API
- Your credentials are stored locally only
- Downloads are only possible for games you own
- Large downloads may take time
License
MIT License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file easy_gog_downloader-1.2.0.tar.gz.
File metadata
- Download URL: easy_gog_downloader-1.2.0.tar.gz
- Upload date:
- Size: 18.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b714061705fa1bc26076db3953921d2597261bb2c84c50f3510248e4a1ffdc62
|
|
| MD5 |
565b424c5ed9888e4a8a681b62e5db59
|
|
| BLAKE2b-256 |
a48bbf37cd2156c59473ee56d3382500931f6b45a52655b18edf329b61d31b7a
|
Provenance
The following attestation bundles were made for easy_gog_downloader-1.2.0.tar.gz:
Publisher:
publish-pypi.yml on zGLados/easy-GOG-downloader
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
easy_gog_downloader-1.2.0.tar.gz -
Subject digest:
b714061705fa1bc26076db3953921d2597261bb2c84c50f3510248e4a1ffdc62 - Sigstore transparency entry: 1109300086
- Sigstore integration time:
-
Permalink:
zGLados/easy-GOG-downloader@3657784808d9bef41fc7eb4e5efc9186bba269a2 -
Branch / Tag:
refs/tags/v1.2.0 - Owner: https://github.com/zGLados
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@3657784808d9bef41fc7eb4e5efc9186bba269a2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file easy_gog_downloader-1.2.0-py3-none-any.whl.
File metadata
- Download URL: easy_gog_downloader-1.2.0-py3-none-any.whl
- Upload date:
- Size: 15.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2736bfaa31b02ec8883eeca645812dccdd97ed73fac91c682c19fbd088fbad8c
|
|
| MD5 |
a244e5de6625bac005e3b2d7c19a96c9
|
|
| BLAKE2b-256 |
ecd47a042e764b9ec6fbd83b0cde3d928ac8f9773dfac3dfa23b9a857b42bd9b
|
Provenance
The following attestation bundles were made for easy_gog_downloader-1.2.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on zGLados/easy-GOG-downloader
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
easy_gog_downloader-1.2.0-py3-none-any.whl -
Subject digest:
2736bfaa31b02ec8883eeca645812dccdd97ed73fac91c682c19fbd088fbad8c - Sigstore transparency entry: 1109300089
- Sigstore integration time:
-
Permalink:
zGLados/easy-GOG-downloader@3657784808d9bef41fc7eb4e5efc9186bba269a2 -
Branch / Tag:
refs/tags/v1.2.0 - Owner: https://github.com/zGLados
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@3657784808d9bef41fc7eb4e5efc9186bba269a2 -
Trigger Event:
push
-
Statement type: