Posted May 06, 2015
high rated
github project / download here:
https://github.com/eddie3/gogrepo
v0.3 changelog:
- update gogrepo.py to work with new GOG APIs
- add OS type validation check (must be one or more of 'windows', 'linux', or 'mac')
- MD5 data requests are now done immediately after file name/size request, rather than
running through another loop of product data
- command line parameter -skipbonus now called -skipextras
Hi GOG Community!
I've been a long time GOG customer and I've recently created a Python script that allows you to save all your GOG content locally for complete offline enjoyment. I am a big fan of their DRM-free practices and love the feeling of OWNING my collection that I paid for (just like big box game days)... of being able to download and keep my entire collection at home, offline. I wanted to contribute my script I used for personal use to regularly keep my complete collection up to date with GOG's latest updates, and my latest purchases. Steam is great, but I feel I'm renting $1000s worth of games from them with no real solution should steam disappear or at go temporarily offline (has happened tons of time during my only free time window for gaming...)
gogrepo.py Features
---
* Ability to download all games and optional bonus files based on combinations of OS (win, linux, osx) and language (en, fr, etc...)
* Saves a !info.txt in each game folder with information about each game/bonus item.
* Creates a !serial.txt if the game has a special serial/cdkey (I know, not 100% DRM-free, is it?). Sometimes coupon codes are hidden here!
* Verify your downloaded collection with full MD5, zip integrity, and expected file size checking. MD5 data comes from GOG itself
* Auto retrying of failed fetch/downloads. Sometime GOG servers report temporary errors.
* Ability to import your already existing local collection.
* Easy to throw into a daily cronjob to get all the latest updates and newly added content!
* Clear logging prints showing update/download progress and HTTP errors. Easy to pipe or tee to create a log file.
Usage and example output:
---
$ ./gogrepo.py login # to login and save your authenticated cookie
enter username:
enter password:
00:45:19 | attempting gog login as 'xxx@youremail.com' ...
00:45:22 | login successful!
$ ./gogrepo.py update # to fetch game info from GOG servers
23:10:55 | (187 / 793) fetching game info for divine_divinity...
23:10:56 | (188 / 793) fetching game info for divinity_2_developers_cut...
23:10:58 | (189 / 793) fetching game info for divinity_dragon_commander...
23:11:00 | (190 / 793) fetching game info for divinity_original_sin...
23:11:02 | (191 / 793) fetching game info for door_kickers...
23:11:04 | (192 / 793) fetching game info for downfall...
...
$ ./gogrepo.py download # to download all windows english game and bonus files
02:09:38 | {divinity_original_sin}
02:09:38 | download setup_divinity_original_sin_2.14.0.26.exe
02:09:38 | download setup_divinity_original_sin_2.14.0.26-1.bin
02:09:38 | download setup_divinity_original_sin_2.14.0.26-2.bin
02:09:38 | download patch_divinity_original_sin_2.13.0.24.exe
02:09:38 | download patch_divinity_original_sin_2.14.0.25.exe
02:09:38 | download divinity_original_sin_wallapers.zip
02:09:38 | download divinity_original_sin_avatars.zip
02:09:38 | download divinity_original_sin_artworks.zip
02:09:38 | download divinity_original_sin_manual.zip
02:09:38 | download setup_the_divinity_engine_2.8.0.14.exe
$ ./gogrepo.py verify # to verify your collection against MD5, zip, and expected file size
03:53:05 | verifying divinity_original_sin/setup_divinity_original_sin_2.14.0.26.exe...
03:53:05 | verifying divinity_original_sin/setup_divinity_original_sin_2.14.0.26-1.bin...
03:53:18 | verifying divinity_original_sin/setup_divinity_original_sin_2.14.0.26-2.bin...
03:53:27 | verifying divinity_original_sin/patch_divinity_original_sin_2.13.0.24.exe...
03:53:27 | verifying divinity_original_sin/patch_divinity_original_sin_2.14.0.25.exe...
03:53:28 | verifying divinity_original_sin/divinity_original_sin_wallapers.zip...
03:53:28 | verifying divinity_original_sin/divinity_original_sin_avatars.zip...
03:53:28 | verifying divinity_original_sin/divinity_original_sin_artworks.zip...
03:53:28 | verifying divinity_original_sin/divinity_original_sin_manual.zip...
03:53:28 | verifying divinity_original_sin/setup_the_divinity_engine_2.8.0.14.exe...
...
04:47:16 | --totals------------
04:47:16 | items in manifest... 4689
04:47:16 | have items.......... 4689
04:47:16 | missing items....... 0
04:47:16 | md5 mismatches...... 0
04:47:16 | size mismatches..... 0
04:47:16 | zipfile failures.... 0
Special thanks to evenpowers and his gog-backup github project. I consider gogrepo to be somewhat of a fork and spiritual successor of gog-backup with some features added and removed. If there is any feature you miss from gog-backup, let me know and I will probably add it.
Happy GOGing!
https://github.com/eddie3/gogrepo
v0.3 changelog:
- update gogrepo.py to work with new GOG APIs
- add OS type validation check (must be one or more of 'windows', 'linux', or 'mac')
- MD5 data requests are now done immediately after file name/size request, rather than
running through another loop of product data
- command line parameter -skipbonus now called -skipextras
Hi GOG Community!
I've been a long time GOG customer and I've recently created a Python script that allows you to save all your GOG content locally for complete offline enjoyment. I am a big fan of their DRM-free practices and love the feeling of OWNING my collection that I paid for (just like big box game days)... of being able to download and keep my entire collection at home, offline. I wanted to contribute my script I used for personal use to regularly keep my complete collection up to date with GOG's latest updates, and my latest purchases. Steam is great, but I feel I'm renting $1000s worth of games from them with no real solution should steam disappear or at go temporarily offline (has happened tons of time during my only free time window for gaming...)
gogrepo.py Features
---
* Ability to download all games and optional bonus files based on combinations of OS (win, linux, osx) and language (en, fr, etc...)
* Saves a !info.txt in each game folder with information about each game/bonus item.
* Creates a !serial.txt if the game has a special serial/cdkey (I know, not 100% DRM-free, is it?). Sometimes coupon codes are hidden here!
* Verify your downloaded collection with full MD5, zip integrity, and expected file size checking. MD5 data comes from GOG itself
* Auto retrying of failed fetch/downloads. Sometime GOG servers report temporary errors.
* Ability to import your already existing local collection.
* Easy to throw into a daily cronjob to get all the latest updates and newly added content!
* Clear logging prints showing update/download progress and HTTP errors. Easy to pipe or tee to create a log file.
Usage and example output:
---
$ ./gogrepo.py login # to login and save your authenticated cookie
enter username:
enter password:
00:45:19 | attempting gog login as 'xxx@youremail.com' ...
00:45:22 | login successful!
$ ./gogrepo.py update # to fetch game info from GOG servers
23:10:55 | (187 / 793) fetching game info for divine_divinity...
23:10:56 | (188 / 793) fetching game info for divinity_2_developers_cut...
23:10:58 | (189 / 793) fetching game info for divinity_dragon_commander...
23:11:00 | (190 / 793) fetching game info for divinity_original_sin...
23:11:02 | (191 / 793) fetching game info for door_kickers...
23:11:04 | (192 / 793) fetching game info for downfall...
...
$ ./gogrepo.py download # to download all windows english game and bonus files
02:09:38 | {divinity_original_sin}
02:09:38 | download setup_divinity_original_sin_2.14.0.26.exe
02:09:38 | download setup_divinity_original_sin_2.14.0.26-1.bin
02:09:38 | download setup_divinity_original_sin_2.14.0.26-2.bin
02:09:38 | download patch_divinity_original_sin_2.13.0.24.exe
02:09:38 | download patch_divinity_original_sin_2.14.0.25.exe
02:09:38 | download divinity_original_sin_wallapers.zip
02:09:38 | download divinity_original_sin_avatars.zip
02:09:38 | download divinity_original_sin_artworks.zip
02:09:38 | download divinity_original_sin_manual.zip
02:09:38 | download setup_the_divinity_engine_2.8.0.14.exe
$ ./gogrepo.py verify # to verify your collection against MD5, zip, and expected file size
03:53:05 | verifying divinity_original_sin/setup_divinity_original_sin_2.14.0.26.exe...
03:53:05 | verifying divinity_original_sin/setup_divinity_original_sin_2.14.0.26-1.bin...
03:53:18 | verifying divinity_original_sin/setup_divinity_original_sin_2.14.0.26-2.bin...
03:53:27 | verifying divinity_original_sin/patch_divinity_original_sin_2.13.0.24.exe...
03:53:27 | verifying divinity_original_sin/patch_divinity_original_sin_2.14.0.25.exe...
03:53:28 | verifying divinity_original_sin/divinity_original_sin_wallapers.zip...
03:53:28 | verifying divinity_original_sin/divinity_original_sin_avatars.zip...
03:53:28 | verifying divinity_original_sin/divinity_original_sin_artworks.zip...
03:53:28 | verifying divinity_original_sin/divinity_original_sin_manual.zip...
03:53:28 | verifying divinity_original_sin/setup_the_divinity_engine_2.8.0.14.exe...
...
04:47:16 | --totals------------
04:47:16 | items in manifest... 4689
04:47:16 | have items.......... 4689
04:47:16 | missing items....... 0
04:47:16 | md5 mismatches...... 0
04:47:16 | size mismatches..... 0
04:47:16 | zipfile failures.... 0
Special thanks to evenpowers and his gog-backup github project. I consider gogrepo to be somewhat of a fork and spiritual successor of gog-backup with some features added and removed. If there is any feature you miss from gog-backup, let me know and I will probably add it.
Happy GOGing!
Post edited July 30, 2015 by woolymethodman