It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
The repair option is a life-saver and I can't imagine how everyone else is doing without it since I'm routinely getting corruptions on any 4+GB-sized download even with the official downloader. So thanks a ton for this, it saved me a day of redownloading The Witcher again.

P.S.
I got link-time errors with the included Makefile; splitting it into separate compilation and linking stages solved it.
0.21
- Added some comments to code
- Replaced htmlparser class with a function
- Fixed bug with filtering system that caused downloading of all links if filter didn't match anything

https://sites.google.com/site/gogdownloader/gogdownloader-0.21.tar.gz
Alright, will give this a try since GOG has disabled the current/old downloader.
Seems that after I create a new cookie.txt with --login, it won't download with -b -f lure. It errors with:

terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct null not valid

I can consistently reproduce this. The other question I have is that it doesn't seem to download additional content. Is this something that I'm missing or simply no longer supported. I see that it does in the OP with the jpg example screenshot.
To answer my second question, the other content is only available if your settings on gog.com are set to show your games in bookshelf mode not list mode. I switched it to bookshelf mode and gogdownloader -s now shows the extra content.

This did not fix the first issue though.
To further add to the confusion, the downloader only dies on free games... These seem to use the Amazon CDN and the others don't. I haven't tried them manually, but I will.
avatar
blackjudas: To further add to the confusion, the downloader only dies on free games... These seem to use the Amazon CDN and the others don't. I haven't tried them manually, but I will.
I'll take a look at this today. Hopefully I'll have a fixed version by tomorrow.
0.22
- Fixed downloading games from amazonaws instead of edgecastcdn
- Changed the downloader to use the shelf view (should fix the extras not showing problem)

https://sites.google.com/site/gogdownloader/gogdownloader-0.22.tar.gz

amazonaws requires valid signature to download anything. This signature changes based on the url and depends on secret key that is not available. This means that I can't generate valid signature to download the XML files which are needed to repair files.
Post edited March 21, 2012 by Sude
Thanks for the fixes, it works perfectly now! I may send you back some error checking code, but that depends on the time I have available and it's quite limited lately.
I was wondering if you had thought of adding an option to create a directory named after the game that's provided in the XML file? I'm simply using it to ensure I have a pristine local copy of all the games I bought and it would save me a little time. I wouldn't normally bother, but at times the extras overwrite each other since they could have the same name.

I guess I could poke around the source myself =) (I'll never get to it though)
avatar
blackjudas: I was wondering if you had thought of adding an option to create a directory named after the game that's provided in the XML file? I'm simply using it to ensure I have a pristine local copy of all the games I bought and it would save me a little time. I wouldn't normally bother, but at times the extras overwrite each other since they could have the same name.

I guess I could poke around the source myself =) (I'll never get to it though)
I've been meaning to rewrite the downloader using Boost which would give regex for filtering, easy to use filesystem functions and some other features but haven't had the time to actually do it. Using Boost it would be very simple to create directories automatically.
When I have the time to do a complete rewrite of the downloader I'll add that feature.

Currently the downloader is broken because of the changes to account page.
I already have a fix for this problem but it needs some testing and clean up before I release it.
0.23
- Make downloader work with new account page layout

https://sites.google.com/site/gogdownloader/gogdownloader-0.23.tar.gz
0.24
- Include unistd.h : fixes compiling on Arch Linux
- Use list view to get shelf data : fixes bug with downloader not showing all games because shelf view is loaded incrementally using ajax

https://sites.google.com/site/gogdownloader/gogdownloader-0.24.tar.gz
Unfortunately, version 0.24 still doesn't show all the games (the list view also utilizes AJAX). Fortunately, I found a way to fix it. You can get HTML code encapsulated in JSON in separate pages. Addresses are as follows:
https://www.gog.com/en/account/ajax?a=gamesListMore&s=title&q=&t=0&p=PAGE_NUMBER
where PAGE_NUMBER starts at 0 and ends when the "html" field is an empty string.

Thus, my little upgrade here:
http://mgol.eu/pliki/gogdownloader-0.24-mgol.tgz

For JSON parsing I've used libjsoncpp, so this is the additional dependency. This solution has the additional advantage of not downloading unnecessary HTML code as these AJAX responses provide only the code related to the game list.

I've also modified Makefile, adding jsoncpp to linker and changing incorrect usage:
1) .PHONY is used to only indicate targets that are not real files which obviously doesn't apply to gogdownloader
2) One of the main purposes of Makefile is not to enforce recompiling until one of source files changes. Thus, 'clean' shouldn't be added to a gogdownloader dependency.
Now it compiles the executable only if one of gogdownloader.h or gogdownloader.cpp file changes.

I added the -mgol suffix only to indicate that this is not the official 0.24 version. I hope Sude incorporates these changes to his future versions. :)
Post edited April 18, 2012 by mgol
0.25
- Incorporated the changes by mgol
- Fixed the bug with downloader not showing all games because of ajax calls
- Some Makefile changes
- Use libjsoncpp for JSON parsing
- Show progress of getting shelf data instead of just printing dots

https://sites.google.com/site/gogdownloader/gogdownloader-0.25.tar.gz