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

×
avatar
adaliabooks: A lot of this data is probably already available through Magog you know... Hell I can give you a list that should contain all the known game ids if that helps...
avatar
WinterSnowfall: Thanks. I'm aware some/most of what I'm collecting is already available somewhere else.

I know about Magog and the treasure trove of data that I could tap into :)... what I'm doing with my scripts is more of a personal scripting exercise (have to refresh on my skills a bit) with the side-effect of potentially producing some interesting data dumps. I'm not trying to reinvent the wheel, but I need to write some customizable pythonic REST interfaces and couldn't think of a better way to do it (and test it :).
Yeah, I'd kind of assumed that was the case but thought I'd mention it anyway :)
avatar
adaliabooks: Yeah, I'd kind of assumed that was the case but thought I'd mention it anyway :)
And another point is, if I'm not mistaken and I'm very inclined to think I'm not, Magog does not gather game-related info by using the RESTful APIs provided by GOG, or at least not in the same way as I'm currently doing it, by querying for each id individually across the entire range (which is normal, since it would take ages).

Of course, I'm aware that I'm mostly banging my head against a wall here, since below 0.00001% of my queries will return a valid response & data... but then again you can never know what portions of the wall will potentially give in before knocking your head against them :).
My first interesting find: http://api.gog.com/products?ids=1113697773

As far as I know there was no previous indication that we might see "Homeworld: Deserts of Kharak" on GOG.
avatar
WinterSnowfall: My first interesting find: http://api.gog.com/products?ids=1113697773

As far as I know there was no previous indication that we might see "Homeworld: Deserts of Kharak" on GOG.
Great Work! I am also very interested in learning how to search through the apis. I am going to read up on that topic. If it looks like someting I might be able to learn then i would like to help out as well.
avatar
llamas: Great Work! I am also very interested in learning how to search through the apis. I am going to read up on that topic. If it looks like someting I might be able to learn then i would like to help out as well.
Thanks. Calling the APIs is not hard at all - RESTful services are designed to be straight forward. You can also find a pretty much complete (yet unofficial) API reference here. How to optimize these calls and what to do with the data you get in return, in a programming language of choice, is the tricky part.

Right now I've gotten my Python script to a point where I'm scanning roughly about 10000 ids every 3 seconds - and that's by using 8 query threads with locking I/O. I could potentially push it even further, but to be honest I'm quite happy with the way it's currently getting things done.

When I'm done improving it, I'll consider sharing it with everyone. In essence it's nothing too complicated - these things are not rocket science anyway.

Be warned though it's always more fun to code such things yourself, especially if you're into coding, rather than looking over stuff other people have written :).
Found the maximum density area for ids - between ids 1207658645 and 1207667273 (a 8628 entries wide id space) there are 1350+ entries populated, most of them in ordered/nicely iterated sequences.

I think these were the games GOG had on offer when the Galaxy implementation was initially started, or perhaps they were later migrated in bulk... again, I'd probably exclude them from any analysis of how the ids are distributed for newly on-boarded games.

Going to let it run up to about 2.5 billion to see what else I can find, then I'll publish my results and full data dumps.
avatar
WinterSnowfall: Found the maximum density area for ids - between ids 1207658645 and 1207667273 (a 8628 entries wide id space) there are 1350+ entries populated, most of them in ordered/nicely iterated sequences.

I think these were the games GOG had on offer when the Galaxy implementation was initially started, or perhaps they were later migrated in bulk... again, I'd probably exclude them from any analysis of how the ids are distributed for newly on-boarded games.

Going to let it run up to about 2.5 billion to see what else I can find, then I'll publish my results and full data dumps.
Just for reference, 2086050016 is the highest ID I have on my list (not sure if that's library or catalogue id mind or which you are checking) and actually I only have about 12 in the 20.. range. I thought more of the new games fell into that range of numbers but obviously not. Makes it even more odd that some do though.
avatar
adaliabooks: Just for reference, 2086050016 is the highest ID I have on my list (not sure if that's library or catalogue id mind or which you are checking) and actually I only have about 12 in the 20.. range.
Ok, cool, I'll stop at 2.1 billion then :).

The library ids are the unique ones, right? The product APIs most likely work with library ids then (they're simply returned as "id" in the JSON payload). In fact, I think the unbundling was performed specifically to address this new uniquely-identified product data model needed by Galaxy.

avatar
adaliabooks: I thought more of the new games fell into that range of numbers but obviously not. Makes it even more odd that some do though.
It's odd as hell, but there has to be some logic behind it. I mean they're not just using a trained monkey to pull out random ids from a top hat every time a new game needs to be added, right? Right???
Post edited February 01, 2017 by WinterSnowfall
avatar
WinterSnowfall: Ok, cool, I'll stop at 2.1 billion then :).

The library ids are the unique ones, right? The product APIs most likely work with library ids then (they're simply returned as "id" in the JSON payload). In fact, I think the unbundling was performed specifically to address this new uniquely-identified product data model needed by Galaxy.

It's odd as hell, but there has to be some logic behind it. I mean they're not just using a trained monkey to pull out random ids from a top hat every time a new game needs to be added, right? Right???
I doubt you'll find anything beyond that, but it's up to you whether you check further :)

Eh... they are all unique as far as I'm aware. I think some of the API methods work with catalogue and library IDs so you may be getting both. The catalogue ones are for the games you can purchase, the library ones are different for games that come bundled but also for some other random games that have different ids in the catalogue and library.

I hope so... but this is gog, so it really wouldn't surprise me if that was actually the case.
I'll be very interested to see any patterns you do find, I've had a couple of attempts (just looking at small groups) and not been able to see any logic behind it but it might be easier to spot things if you look at the whole data set at once.
Testing, testing, 1, 2, 3... testing, testing: http://api.gog.com/products?ids=1368215233 :)
avatar
WinterSnowfall: Testing, testing, 1, 2, 3... testing, testing: http://api.gog.com/products?ids=1368215233 :)
Sadly we can not get this game. :-(
Could somebody explain to me, in tech-idiot terms, what the heck is going on over here?
avatar
zeogold: Could somebody explain to me, in tech-idiot terms, what the heck is going on over here?
WinterSnowfall use brute-force scripts to find ALL GOG games, including those are not announced/released yet.
avatar
zeogold: Could somebody explain to me, in tech-idiot terms, what the heck is going on over here?
avatar
kbnrylaec: WinterSnowfall use brute-force scripts to find ALL GOG games, including those are not announced/released yet.
Ah. Thank you.
avatar
zeogold: Could somebody explain to me, in tech-idiot terms, what the heck is going on over here?
The REST-API of GOG is a quick way to load game data from the database. This is usually interpret by a webbrowser to display a game (with images and text etc) without having to refresh the complete page. This saves time and a lot of data transfer. :)

Now when GOG is preparing the release of a game they need to add it to the database of course. What SCPM and Wintersnowfall are doing is checking numbers to see if there is a database entry attached to it. This way to can try to find a scoop for soon to be released games.