Revadike Posted May 20, 2017 Report Posted May 20, 2017 https://github.com/DoctorMcKay/node-steam-user#getownedapps First of all, it might be worth mentioning in the documentation that this is a synchronous function and doens't have a callback like most other functions have.Aside from that, it came to my attention that GetOwnedApps returned more apps than I own myself. Now, I have a suspicion that these extra unowned apps are in fact apps that are family shared to me.Is this true? Quote
Dr. McKay Posted May 21, 2017 Report Posted May 21, 2017 I don't think family sharing applies since it's per-machine. Are you sure that they aren't just free apps? Quote
Revadike Posted May 21, 2017 Author Report Posted May 21, 2017 I don't think family sharing applies since it's per-machine. Are you sure that they aren't just free apps?No, some of them are even wishlisted games. And it's pretty hard to determine if they are from Family Sharing myself. One of my sharers is not my friendlist, so I can't simply check for every game if one of my friends (sharers) owns them.Anyway, I'll regenerate the list on a PC without family sharing. See what it gives. Quote
Revadike Posted May 21, 2017 Author Report Posted May 21, 2017 (edited) Okay, I did some tests and it appears that indeed family sharing was a factor here. If family sharing was enabled on the PC getOwnedApps returned around 14K appids, and if family sharing was disabled, it returned around 10K appids. This seems about right, since with no family sharing I have 5K games in my library and with family sharing, I have 7K. But it appears getOwnedGames still returns some games I don't own, regardless if family sharing is enabled or not. These games include Train: Simulator, Call of Duty: Infinite Warfare, Shank 2, Mordheim: City of the Damned, etc... I can't exactly tell how many "faulty" appids were returned, since they include tools, dedicated servers, "steam for linux" and that kind of stuff, that the steam store's dynamic userdata don't include. But if I included those, there were around 26 of 2000 appids I checked faulty. My guess is that they are/were maybe part of free weekend packages and somehow still detected as owned. Or maybe those free-on-demand packages I am adding to my account are messing things up. For example, https://steamdb.info/app/276810/subs/ is detected as Free in SteamDB. Probably because of its free on demand package. However, in reality, you can't own it unless you paid for it.Hopefully, I was able to provide some useful information in order to improve GetOwnedApps to return more accurate results. Edited May 21, 2017 by Royalgamer06 Quote
Revadike Posted May 21, 2017 Author Report Posted May 21, 2017 (edited) Actually, this is the full list of apps with type = game, that are not included in the appid list provided by store.steampowered.com/dynamicstore/userdata: Train Simulator (24010) Shank 2 (102840) Red Orchestra 2 - Dedicated Server (212542) Eets Munchies (214550) Killing Floor Dedicated Server - Win32 (215350) Killing Floor Dedicated Server - Linux (215360) Serious Sam 3 - Linux DedServer (216280) Steam for Linux (221410) Rising Storm Beta Dedicated Server (238690) Cities: Skylines (255710) Just Cause 2: Multiplayer Mod (259080) Estranged: Act I (261820) Half-Life: Before (261980) Secret Ponchos (265750) Line of Defense (266620) Panzer Corps (268400) Mordheim: City of the Damned (276810) F1 2015 (286570) Conflicks - Revolutionary Space Battles (288260) Call of Duty: Infinite Warfare (292730) Nobunaga's Ambition: Souzou (292990) Sunless Sea (304650) Duck Game (312530) Euro Fishing (314520) Sword Coast Legends (325600) RIDE: Game (345660) Cobalt (357340) Tom Clancy's The Division (365590) Dead Star (366400) NOBUNAGA'S AMBITION: Sphere of Influence (392470) Backgammon Blitz (395900) SMASH+GRAB (412720) Moonshot (426930)So, 33 apps are incorrect from a list of 5298 apps with type "game" returned by GetOwnedGames (family sharing disabled).However, some of these I do actually own (from sub 0), like Killing Floor Dedicated Server and Just Cause 2: Multiplayer Mod, but they are in this list because steam dynamic store api don't include these appids.But for most of them, I don't own them. They are not listed in my steam client library with family sharing disabled.My guess is they were/are part of some of the free on demand packages I own, but no longer available for me. So, either free weekends, demos or betas. So, what do you think? Can you clarify these results? Would it be possible to update GetOwnedApps to return more accurate results? Edited May 21, 2017 by Royalgamer06 Quote
Dr. McKay Posted May 21, 2017 Report Posted May 21, 2017 Please dump your licenses property to JSON and either post it here or PM it to me. Quote
Revadike Posted May 21, 2017 Author Report Posted May 21, 2017 (edited) â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢licenses.json.txt Edited May 22, 2017 by Royalgamer06 Quote
Dr. McKay Posted May 22, 2017 Report Posted May 22, 2017 Thanks. Looks like there's an expiry time in those packages which is being ignored. Let me take a look at the code. Revadike 1 Quote
Revadike Posted May 22, 2017 Author Report Posted May 22, 2017 Awesome. Everything seems fine now! Quote
Revadike Posted May 23, 2017 Author Report Posted May 23, 2017 (edited) Hi, back on topic.Would it be possible to add an option or different method to exclude family shared games or at least a boolean to tell if an app is family shared or not? Edited May 23, 2017 by Royalgamer06 Quote
Dr. McKay Posted May 24, 2017 Report Posted May 24, 2017 Did you copy the sentry file from your Steam installation to use with node-steam-user? Quote
Revadike Posted May 24, 2017 Author Report Posted May 24, 2017 Did you copy the sentry file from your Steam installation to use with node-steam-user?No Quote
Dr. McKay Posted May 24, 2017 Report Posted May 24, 2017 You really, really shouldn't be getting family shared games. I'll have to look into this when I get a chance. Revadike 1 Quote
Revadike Posted May 24, 2017 Author Report Posted May 24, 2017 You really, really shouldn't be getting family shared games. I'll have to look into this when I get a chance.Well, I am not using any sentry file to my knowledge, but I am sharing the node.js program with SteamCMD.Anyway, I've seen this behavior before, it happens to devices sharing the same network and steam account as the PC with all the shared games. Actually, it even happens across networks. All the shared games are available. Quote
Revadike Posted June 15, 2017 Author Report Posted June 15, 2017 I want to get back to Steam Family Sharing behavior. Let me explain how it works. Let there be a steam user, called the host, on a device (PC) with shared libraries, called the host device. As long as the host is logged in to that host device, Steam will make all the shared games available to any device on any network where the host is logged in. Don't ask me why Steam is doing this, but some speculate it has something to do with Steam streaming. Anyway, this can cause GetOwnedApps to also include shared games. Now, I came up with a method that can exclude shared games. You could query store.steampowered.com/dynamicstore/userdata/?v=VERSION to get the owned games (and packages) that guaranteed aren't shared and use the 'v' parameter to get the most up-to-date list. However, this may belong more to node-steamcommunity, as it uses web API, but I leave that choice to you. If you decide to include into steam-user, you could add an options-object or a boolean for getOwnedGames, to exclude Family Shared Games, through this method. Do you rather want me to open an issue about this on GitHub? Quote
Dr. McKay Posted June 15, 2017 Report Posted June 15, 2017 node-steamstore has a method which retrieves that URL. But yes, please do open an issue on GitHub (linking to this thread) about this as there should be some level of support for distinguishing family-shared games. Quote
Revadike Posted June 29, 2018 Author Report Posted June 29, 2018 https://github.com/DoctorMcKay/node-steam-user/issues/128 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.