Posted August 23, 2018
timppu: I'm a long-time gogrepo,py user (which is the other active user-made tool for the same purpose), and just out of curiosity I finally now decided to try out lgogdownloader as well, as I've lately become more active in Linux too. The main reason I didn't try lgogdownloader before was because I was not sure how to set it up on Windows (has someone already tried it successfully?).
For now I tried it in a virtualboxed Linux Mint, but I'll probably try it also on my real Mint installation. Seems to work fine as far as I can see, no hiccups so far. I can't really make a complete comparison of features as I tried lgogdownloader only barely (login, get list of all games, start downloading all games).
One positive finding though was that the whole setup part (where the tool prepares for downloading by getting game details) seems to go much faster on lgogdownloader than it goes in gogrepo. For my 1554 games (English/Windows versions only), the setup part currently takes like 3 hours or more on gogrepo (it used to be much worse earlier like 11 hours or so, but the setup process was later optimized and become quicker), but on lgogdownloader it took like 10 minutes or so before it could start downloading the games.
Is lgogdownloader using some completely different method for that setup process, preparing for downloads? Or is it because of the different API?
I'm not sure but I think gogrepo gets more details during the manifest update. For now I tried it in a virtualboxed Linux Mint, but I'll probably try it also on my real Mint installation. Seems to work fine as far as I can see, no hiccups so far. I can't really make a complete comparison of features as I tried lgogdownloader only barely (login, get list of all games, start downloading all games).
One positive finding though was that the whole setup part (where the tool prepares for downloading by getting game details) seems to go much faster on lgogdownloader than it goes in gogrepo. For my 1554 games (English/Windows versions only), the setup part currently takes like 3 hours or more on gogrepo (it used to be much worse earlier like 11 hours or so, but the setup process was later optimized and become quicker), but on lgogdownloader it took like 10 minutes or so before it could start downloading the games.
Is lgogdownloader using some completely different method for that setup process, preparing for downloads? Or is it because of the different API?
I haven't checked the code of gogrepo in a while so I don't know if it gets the details in parallel using multiple threads.
lgogdownloader uses the account page api (https://www.gog.com/account/getFilteredProducts) to get initial product info (product names and ids, dlc names, etc)
Then it uses multiple threads to get more details using galaxy api (https://gogapidocs.readthedocs.io/en/latest/galaxy.html#api-gog-com)
Just before starting to download a file it tries to get xml data for the file
timppu: Too bad lgogdownloader and gogrepo directory structures are not 1:1, ie. the former puts extras to a separate subdirectory while gogrepo doesn't, so I can't freely use both interchangeably. I kinda like the idea of extras going to a subdirectory, I need to check if it would be possible to make it an option in gogrepo to put extras to a similar subdirectory so then both could be used for the same collection.
You can change the directory structure of lgogdownloader by using --subdir-* options Set subdirectory for installers
--subdir-installers arg
Set subdirectory for extras
--subdir-extras arg (=extras)
Set subdirectory for patches
--subdir-patches arg (=patches)
Set subdirectory for language packs
--subdir-language-packs arg (=languagepacks)
Set subdirectory for dlc
--subdir-dlc arg (=dlc/%dlcname%)
Set subdirectory for game
--subdir-game arg (=%gamename%)
Supported templates:
%platform% --> windows/mac/linux
%gamename% --> name of the game
%dlcname% --> name of the dlc
These can also be overriden using game specific config files (see man page for details)
For example setting --subdir-extras to empty puts downloaded extras in same directory with installers
--subdir-extras ""
It was possible to compile lgogdownloader on Windows using cygwin or msys but I'm not sure if it still works because I haven't tried it in a long time.