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

×
high rated
Hello, I hope everyone's fine and healthy.

After being a "desktop" programmer for many years (mostly C++), I recently dived into web development (as a hobby - who knows...?).

So, I learned a lot about NodeJS (and JavaScript in general) and thought that I should put my new knowledge into practice by creating something useful. And I ended up creating a downloader for my GOG games :)

Now, I know there are already some excellent tools (e.g. gogrepo) already used by the community. My intention was not to replace them, but as I said I wanted to practice and see how far I can go.

The result is a NodeJS application, with a GUI. It is currently very basic (e.g. only handles games, not extras or movies) but of course can be extended to support more stuff in the future. There, you get a view of your library in tiles, with a basic pagination and search functionality. By clicking on a game tile you can view all available installers for it, grouped by OS and language, and start downloading all the files of an installer with a single click (kind of what I missed about the official old GOG downloader). I also implemented a simple download queue, where installers are pushed and handled with a max of 4 concurrent active downloads. There is also a pause/resume functionality which (I think) works as well. The next task is to implement the functionality to discover updates, so given a local directory the app will scan the folder structure and compare files to the corresponding ones retrieved from the GOG server.

Of course, there are lots of features missing (e.g. download extras, perform validation via md5, etc.) which will be added. Also, the current GUI is rather simple as I don't want to focus on presentation before implementing at least some important features.

Now, the only "limitation" is that all pages are rendered statically on the server (i.e. the application itself) which means that the downloads page will not be refreshed automatically - it needs to be refreshed manually (still you can see 'live' output from the server on the console). But this is not an issue for now, as I just wanted to have a visual representation of things to be able to see how it's going. When I implement more features, as a second major step I intend to turn the server application into a RESTful API and implement the views as a separate client application (which will of course be able to refresh itself dynamically). This will also allow other people to implement their own views as well.

To run this application, one would need to only install NodeJS of course (it is fairly light, ~70MB on my installation), but it is actually the only requirement. After that, an initial setup is needed for the app (NOT a system-wide setup, it is just a download of needed node modules in the app directory, currently ~15MB). This setup is an execution of a simple command and is needed only once. Then, you're good to go. Run the app, open your favorite browser and visit your new downloader server!

So, I would like your opinions. And sorry for the long post!
If you're having fun and it helps you train your programming skills, go for it. It's how I got into the whole "API surveillance" angle myself.

That being said, I think a lot of people would be interested in "yet another" GOG downloader, coming from GOG. Let's call it a "Galaxy Offline Installer Backup Tool". But we all know that's not going to happen, so, as is the case around here, community members such as yourself come to the rescue.

Having several options is usually great, so I don't think anyone will mind, quite the contrary.
Post edited April 19, 2021 by WinterSnowfall
low rated
Nope. The very point of buying here is that I don't need any more programs to get and play my games.
avatar
Breja: Nope. The very point of buying here is that I don't need any more programs to get and play my games.
Admittedly this can be done rather painlessly with browser extensions. But don't tell me you actually enjoy clicking 40 times to download your part-split Cyberpunk 2077 offline installers on GOG's marvelous website...
avatar
Breja: Nope. The very point of buying here is that I don't need any more programs to get and play my games.
avatar
WinterSnowfall: Admittedly this can be done rather painlessly with browser extensions. But don't tell me you actually enjoy clicking 40 times to download your part-split Cyberpunk 2077 offline installers on GOG's marvelous website...
I can't imagine any program could make me enjoy clicking on a Cyberpunk 2077 installer.


Seriously though, I really don't mind and I prefer a few clicks in my browser to bothering with any additional programs.
avatar
WinterSnowfall: Admittedly this can be done rather painlessly with browser extensions. But don't tell me you actually enjoy clicking 40 times to download your part-split Cyberpunk 2077 offline installers on GOG's marvelous website...
avatar
Breja: I can't imagine any program could make me enjoy clicking on a Cyberpunk 2077 installer.

Seriously though, I really don't mind and I prefer a few clicks in my browser to bothering with any additional programs.
I have to say, ever since joining I mostly did the same thing - downloading my games through Firefox (since that's my browser of choice). Never had any issues, save for a few failed downloads (but that's because of Windows 10). At the same time, I found GOG downloader helpful on several occasions.

To the OP, if you know what you're doing, then go for it.
avatar
Breja: Seriously though, I really don't mind and I prefer a few clicks in my browser to bothering with any additional programs.
gogrepo is not an additional program because with it you don't have to use your web browser at all anymore to download your installers. Yes, it is that marvellous. (And of course it does so many other things besides "just downloading" your GOG game installers, like checking what has changed or is new so that it only downloads that what needs to be downloaded, does integrity check for your installers, cleans your archive by moving obsolete files to another location (from which you can delete them if you want, or keep them, your choice) etc.

You can't buy or play your GOG games with it nor post to the GOG forums, but that is not its point anyway.

Anyway, my dream downloader tool to download my GOG games would be like gogrepoc.py, but with two additional features:

1. It would estimate the remaining download time (which is something I've meant to add to the tool myself for a long time; I was quite close at one point but then I got something else on my mind as I was laid off from my previous workplace; never really got back to implementing it after that... and I am sure Kalanyr would implement it much better into gogrepo anyway, as long as he would).

2. It would have optional support for peer-to-peer, ie. you are not downloading only from GOG servers, but also from other tool users, to maximize download speeds.

However I am unsure if that would need it so be officially made by GOG staff or they should at least support it, so that GOG would be the main tracker to make sure people can download (from other users) only those games that they actually have on their GOG accounts. Otherwise the tool would promote piracy.

E.g. Humble Bundle store has managed to do it, by allowing people to use third-party tools to download their HB game installers, like any bittorrent client. But I guess even then it is the Humble Bundle servers which act as trackers.
Post edited April 19, 2021 by timppu
avatar
Breja: The very point of buying here is that I don't need any more programs to get and play my games.
Not going to try to change your mind here, but to explain why I use a third-party program to download my games ;)

I have been using LGOGDownloader to download my GOG games for as long as I remember. The main reason for that is that I download all my games on a server I own, where I keep copies of all my DRM-free game installers, and for that having a command-line tool is very useful.

Another advantage is that it can spot what has recently been updated on GOG front, compare that to my local copies, and run the downloads of what I am missing. All of that unattended!

So I have it running every night, alongside similar tools for Humble Bundle and itch.io games, to make sure I always have local copies of the current installers for every DRM-free game I own.

Of course, I would not have started using this tool if it were not:
- published under a free/libre license
- packaged in Debian repositories (the Linux distribution I use), so validated by maintainers I trust
- unrelated to GOG/CD Projekt
- a simple tool with no grand vision of becoming a full-featured games client
Post edited April 19, 2021 by vv221
avatar
Panaias: ................

So, I would like your opinions. And sorry for the long post!
Go for it, it is always good to have a variety of choices.

As you probably know, I have made Windows based GUIs for gogrepo.py and most recently gogcli.exe.

And who knows, maybe yours will be better and I will turn to using it instead.

I'm looking forward to seeing what you produce.

P.S. Part of the reason I did my GUIs, was to see if I could come up with something acceptable ... at least to me. So an interesting experiment to some degree.

P.S.S. I would ignore any negative responses here when they turn up ... no idea why they bother.
Post edited April 21, 2021 by Timboli
avatar
Panaias: ................

So, I would like your opinions. And sorry for the long post!
avatar
Timboli: Go for it, it is always good to have a variety of choices.

As you probably know, I have made Windows based GUIs for gogrepo.py and most recently gogcli.exe.

And who knows, maybe yours will be better and I will turn to using it instead.

I'm looking forward to seeing what you produce.

P.S. Part of the reason I did my GUIs, was to see if I could come up with something acceptable ... at least to me. So an interesting experiment to some degree.

P.S.S. I would ignore any negative responses here when they turn up ... no idea why they bother.
Hey Timboli, I hope you are well!

I know you have created GUIs for both tools you've mentioned, good work there.

As I said, I wanted to practice my new knowledge and create something I could use. From this perspective, I won't quit developing it, I already invested some time in it and it slowly becomes nice. I know it will take a lot of time to reach e.g. gogrepo levels in terms of features but I'm not in a hurry (and I also don't have all the free time I want).

Besides "downloading", my other main concern was to create something with a built-in GUI (cross-platform) to avoid having to orchestrate multiple programs / installations / configurations etc. That will change of course when I turn the back-end into a RESTful API, but still the extra front-end will not need additional setup.

For the time being I will keep adding functionality whenever I have the time. When I'm done with handling base game installers, would you like to give it a try? I would love some extra feedback and currently don't want to upload the code anywhere before tidying it up a bit.

As for negative responses, well, I respect anyone's opinion but because someone doesn't want it doesn't mean I don't want it :)
Post edited April 21, 2021 by Panaias
avatar
Panaias: Hey Timboli, I hope you are well!
I am well and hope you are too.

avatar
Panaias: ........

When I'm done with handling base game installers, would you like to give it a try? I would love some extra feedback and currently don't want to upload the code anywhere before tidying it up a bit.
It all sounds great, and yeah sure, I will have a play with it when ready and give some feedback.
low rated
Seriously? I got downvoted for simply answering the OPs question? :D Oh, GOG forum, never change.
avatar
Panaias: By clicking on a game tile you can...start downloading all the files of an installer with a single click (kind of what I missed about the official old GOG downloader)..There is also a pause/resume functionality which (I think) works as well.
For these reasons alone I'd certainly give it a go. It is the single click download that I really miss though, the old GOG downloader was just so easy to use and lightweight too, I would love to see an alternative.
avatar
Breja: Seriously? I got downvoted for simply answering the OPs question? :D Oh, GOG forum, never change.
... And now you get downvoted for complaining about being downvoted. Another unwritten forum rule. ;)
(I think one also gets downvoted for pointing this out, tho)
avatar
Breja: Nope. The very point of buying here is that I don't need any more programs to get and play my games.
Two things about this for me:

- I have a lot of games. Even if I had downloaded them all by hand already, I have frequent updates. I don't want to do all of that by hand
- I think most downloaders verify both the md5 checksum of downloads and the integrity of zip files so I don't have to

Anyways, it doesn't need to be invasive. My downloader is pretty much a self-contained binary. The footprint it very minimal.

avatar
Breja: Seriously? I got downvoted for simply answering the OPs question? :D Oh, GOG forum, never change.
I'd ignore it. I don't really downvote personally (if I disagree with something, I'll reply), but to each their own. Does it really matter in the grand scheme of things? Surely, you don't mind having some opinions that are unpopular. I'd think it would be a bit phoney to only hold popular opinions (probably good to run for office though).

I think I would be annoyed if downvoting hid the post (some communities do that as an act of self-moderation), but I don't think its the case here.
Post edited April 21, 2021 by Magnitus