# gog-client
A python client to access your GOG.com account.
# Description
The platform GOG.com (formerly known as Good Old Games),
provides storage access to the games that the user has purchased.
Access to this content delivery network requires the user to log in by
posting username and password into an auth form.
This was enough until some time ago, GOG changed the interface which resulted in various projects like the
gogrepo scripts [1] to stop working. Unfortunately [1] seems also abandoned.
# Getting Started
- Install using the regular python options,
- Copy the gogrepo.toml to your home directory,
- Then change the entries manually to match your needs which means setting your base directory,
language and OS. Entries follow what GOG uses in their JSON content.
There are fallbacks defined when a product has not your OS or language, fallback is windows
and English respectively.
This is my config that I use on an Odroid HC2.
```
[gogrepo]
repo-base-dir = "/wad/0/public/GOG"
prefered-languages = ["English", ]
prefered-manual-languages = ["English", "EN", ]
prefered-os = ["linux", ]
```
- Execute `gogrepo -c gogrepo.toml` in shell. The script is copied to your local .bin directory
on installation for convenience.
- Regularly backup the gogrepo.db3 file in your repo.
- Be sure nobody has access to your home directory, and you are admin on your own machine, so don't use Android!
Your GOG account credentials are stored there in a plain .pkl file which you need to delete when you change your
password.
# Known Issues
- Is not capable to handle ReCaptcha.
- Only tested on linux, expect Issues on other OS.
# TODOs
- Needs Best Practice credential storage mechanism, it stores a .pkl file in your home directory.
- Needs manual USER-INPUT of two-step authentication, i.e. the four-digit code you get via e-mail unless you disabled it.
# Why this client?
GOG wants to sell their GOG Galaxy Client but does not provide any official documentation
of their api.
Additionally, GOG can no longer be trusted after they massively deployed geo-blocking and censorship [2].
So users should be able to automatically mirror what they own to their local file
storages.
There has also been a case where GOG proved to be unreliable basically killing all of their customers GOG Galaxy Clients
and Games recently and blaming it on their external storage provider [3].
# Discount Evaluation Script
There is a Work-In-Progress Script for checking discounts and warn you if GOG tries to pull something on you.
Execute `gogdiscounts` in a shell. It will take your bookmarks from Firefox, fetch the current discounts from GOG for
a given locale which is now de_DE and de_AT, for the purpose of proving that GOG does locale based geo-blocking.
# LICENSE
The license is GPL V3.0 based with the extension that any government employee is forbidden to use this software.
# Deprecation of PyPi Packages
Packages on PyPi are no longer updated due to attempts of the Python Software Foundation to enforce new rules and basically flush out
developers who do not consent.
Recent packages can be installed directly from git, i.e.
```pip install git+https://gitlab.com/Menschel/gogclient.git --upgrade```
# References
[1] https://github.com/eddie3/gogrepo
[2] https://www.gog.com/forum/general/release_lust_from_beyond_m_edition_c7082
[3] https://www.gog.com/forum/general/update_on_technical_issues_affecting_downloading_and_updating_games_afa62
Raw data
{
"_id": null,
"home_page": "https://gitlab.com/menschel/gogclient",
"name": "gogclient",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "gogrepo,requests",
"author": "Patrick Menschel",
"author_email": "Patrick Menschel <menschel.p@posteo.de>",
"download_url": "https://files.pythonhosted.org/packages/d4/46/4550d88f0e123dd46690bba91b33b544c51ba8089bb7336f102e99605637/gogclient-1.0.2.tar.gz",
"platform": null,
"description": "# gog-client\n\nA python client to access your GOG.com account.\n\n# Description\n\nThe platform GOG.com (formerly known as Good Old Games),\nprovides storage access to the games that the user has purchased.\nAccess to this content delivery network requires the user to log in by\nposting username and password into an auth form.\n\nThis was enough until some time ago, GOG changed the interface which resulted in various projects like the\ngogrepo scripts [1] to stop working. Unfortunately [1] seems also abandoned.\n\n# Getting Started\n- Install using the regular python options,\n- Copy the gogrepo.toml to your home directory,\n- Then change the entries manually to match your needs which means setting your base directory,\n language and OS. Entries follow what GOG uses in their JSON content. \n There are fallbacks defined when a product has not your OS or language, fallback is windows \n and English respectively.\n\nThis is my config that I use on an Odroid HC2.\n\n```\n[gogrepo]\nrepo-base-dir = \"/wad/0/public/GOG\"\nprefered-languages = [\"English\", ]\nprefered-manual-languages = [\"English\", \"EN\", ]\nprefered-os = [\"linux\", ]\n```\n\n- Execute `gogrepo -c gogrepo.toml` in shell. The script is copied to your local .bin directory\n on installation for convenience.\n- Regularly backup the gogrepo.db3 file in your repo.\n- Be sure nobody has access to your home directory, and you are admin on your own machine, so don't use Android!\n Your GOG account credentials are stored there in a plain .pkl file which you need to delete when you change your\n password.\n\n# Known Issues\n- Is not capable to handle ReCaptcha.\n- Only tested on linux, expect Issues on other OS.\n\n# TODOs\n- Needs Best Practice credential storage mechanism, it stores a .pkl file in your home directory.\n- Needs manual USER-INPUT of two-step authentication, i.e. the four-digit code you get via e-mail unless you disabled it.\n\n# Why this client?\nGOG wants to sell their GOG Galaxy Client but does not provide any official documentation\nof their api.\nAdditionally, GOG can no longer be trusted after they massively deployed geo-blocking and censorship [2].\n\nSo users should be able to automatically mirror what they own to their local file\nstorages.\n\nThere has also been a case where GOG proved to be unreliable basically killing all of their customers GOG Galaxy Clients\nand Games recently and blaming it on their external storage provider [3].\n\n# Discount Evaluation Script\n\nThere is a Work-In-Progress Script for checking discounts and warn you if GOG tries to pull something on you.\nExecute `gogdiscounts` in a shell. It will take your bookmarks from Firefox, fetch the current discounts from GOG for\na given locale which is now de_DE and de_AT, for the purpose of proving that GOG does locale based geo-blocking.\n\n# LICENSE\nThe license is GPL V3.0 based with the extension that any government employee is forbidden to use this software.\n\n# Deprecation of PyPi Packages\nPackages on PyPi are no longer updated due to attempts of the Python Software Foundation to enforce new rules and basically flush out \ndevelopers who do not consent. \nRecent packages can be installed directly from git, i.e. \n```pip install git+https://gitlab.com/Menschel/gogclient.git --upgrade```\n\n# References\n[1] https://github.com/eddie3/gogrepo\n\n[2] https://www.gog.com/forum/general/release_lust_from_beyond_m_edition_c7082\n\n[3] https://www.gog.com/forum/general/update_on_technical_issues_affecting_downloading_and_updating_games_afa62\n",
"bugtrack_url": null,
"license": "",
"summary": "An client for requests to GOG.com",
"version": "1.0.2",
"project_urls": {
"Bug Tracker": "https://gitlab.com/menschel/gogclient/issues",
"Homepage": "https://gitlab.com/menschel/gogclient"
},
"split_keywords": [
"gogrepo",
"requests"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "d4464550d88f0e123dd46690bba91b33b544c51ba8089bb7336f102e99605637",
"md5": "9d2a4d9c967646d13d773a14d4acc559",
"sha256": "941a9ebf52edb7dc8d7ddf7431215e34ae49e7b6c9e4454324de2ac19d8adba8"
},
"downloads": -1,
"filename": "gogclient-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "9d2a4d9c967646d13d773a14d4acc559",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 46655,
"upload_time": "2023-12-31T20:39:41",
"upload_time_iso_8601": "2023-12-31T20:39:41.792567Z",
"url": "https://files.pythonhosted.org/packages/d4/46/4550d88f0e123dd46690bba91b33b544c51ba8089bb7336f102e99605637/gogclient-1.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-31 20:39:41",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "menschel",
"gitlab_project": "gogclient",
"lcname": "gogclient"
}