With the creation of Actually Playing Games, we've been finding it rather useful to be able to check for a given SteamGifts user how much they actually play the games they win here. Obviously most SG users don't have a BLAEO account - and just viewing a users profile in Steam takes a while and is difficult to filter down to just SG wins. So I've written a userscript for Tampermonkey for Firefox or Chrome that, when viewing the wins page for a user, allows you to quickly fetch some statistics about how much (i.e. playtime) and how well (i.e. achievements achieved) that user does for their wins.

Download the userscript from Github

IMPORTANT: this extension requires a Steam API key to function. You need to go to this page and register for one if you do not already have one (the domain name can be one you make up - its not important).

To use it, once you've installed the userscript in GM/TM, just go to any user's gifts won page and click on the button labelled "Provide API key", paste your API key into the prompt (this is cached hereafter), and then click on the new button labelled "Fetch Playing Info". You'll see the additional rows of the table slowly fill up as the information comes back from the Steam API, as well as individual games having their info updated in the rows below. The extension caches all the results it can and tells you when the cache was last updated.

Caveats: there are some considerable omissions that this script cannot deal with or be worked around:

  • the script will not work for fetching stats about users whose profile information is private,
  • if a user plays their games in offline mode or through family sharing, that time will not be included in the stats.

Warning: if you use this extension too many times in a day, there is a possibility Steam will block your API key for a period of time and the results that come back will be incorrect or none at all.

Changelogs

2018-01-23: New feature! Do You Even Play, Bro? now queries How Long to Beat (HLTB) for each game, and enriches both the list of games and adds some summary statistics to the table. This makes it easier to compare a users playtime to the consensus about how long a game should take, especially useful for games without any achievements.
2017-12-15: The latest version of Greasemonkey for Firefox 57 has broken a number of things (internal API changes, as well as installing userscripts from GitHub). Rather than waiting for them to fix all these issues, I instead suggest Firefox 57 users move to Tampermonkey since it has neither of these issues.
2017-07-07: Added a new feature of charting a user's cumulative achievement percentage (put your cursor over the graph for more details). Users can switch between the two styles by clicking on the link next to "Games with Achievements".
2017-05-20: With many thanks to BarefootMonkey for spotting it, my script no longer includes DLC in the counts - so hopefully those of you who have won individual DLC or collections that included DLC should see your stats have improved.
2017-05-16: Just pushed out version 1.3.5 of this script. It's made some slight changes to how the "win counts" (now "games with...") section of the table, moving the absolute counts to title attributes (i.e. hover over the percentage to see the ratio) and adding a new count of games with ≥25% of achievements available obtained.
2016-11-08: I've released version 1.2.0 of the script that introduces the ability to fetch the list of games within a sub, which should reduce the inaccuracy of some users statistics.

View attached image.
8 years ago*

Comment has been collapsed.

this script makes users angry!

i love it T_T

View attached image.
7 years ago
Permalink

Comment has been collapsed.

I've just installed it. We'll see how it goes.
Prediction: increased depression

7 years ago
Permalink

Comment has been collapsed.

Somehow my (new) Greasemonkey on Firefox doesn't install the script. :(

7 years ago
Permalink

Comment has been collapsed.

Yep, the new version of Greasemoney doesn’t support this format of script or installing scripts from GitHub. I’d suggest moving to Tampermonkey for Firefox.

7 years ago*
Permalink

Comment has been collapsed.

It doesn't work with me anymore on Chrome :(

7 years ago
Permalink

Comment has been collapsed.

I’m afraid I’ll need a bit more detail from you to help you with this issue. What extension are you using (I would usually assume Tampermonkey on Chrome)? What version of the script do you have installed? Are there any errors that appear in the JavaScript console (press control+shift+i to open it) when you load a user’s won games?

7 years ago
Permalink

Comment has been collapsed.

Sorry for that. Yes I'm using Tampermonkey on Chrome.
The script version is 1.5.1
Whenever I click on update player's information, it keeps loading without returning anything. it doesn't give me any errors.

I deleted it and reinstalled it and it worked like magic :D Thank you for making this awesome script.♡

7 years ago*
Permalink

Comment has been collapsed.

Deleted

This comment was deleted 6 years ago.

6 years ago
Permalink

Comment has been collapsed.

Thanks for the info, I've fixed this bug in version 1.5.2.

6 years ago
Permalink

Comment has been collapsed.

View attached image.
6 years ago
Permalink

Comment has been collapsed.

The new feature with the HLTB stats is very cool! Two things:

1) It makes the script much slower. Would it be possible to make it optional? Maybe two buttons, one for "Fetch/update playing info with HLTB stats" and one just "Fetch/Update playing info".

2) Would it be possible to leave unplayed games out of the HLTB stats, or give them a separate column/note of number of unplayed games? Of course those games with 0 minutes playtime will be at less than the estimated playtime ;)

6 years ago
Permalink

Comment has been collapsed.

Came here just for point #1.

6 years ago
Permalink

Comment has been collapsed.

Fixed in the latest version (1.6.1) - checking the box will disable the HLTB enrichment and speed up the queries again.

6 years ago
Permalink

Comment has been collapsed.

Awesome. Thanks for the great script!

6 years ago
Permalink

Comment has been collapsed.

The good news is that all results from HLTB are cached for 30 days - so subsequent checks for the same games will be quicker. But I do understand your concerns and the next release will have a check box to disable HLTB queries. I’ll take unplayed wins out from the HLTB stats too.

Are there any other HLTB enrichment features you’d like to see? I was considering some sort of metric that describes how close a users playtimes are to HLTB expectations - but making it comprehensible seemed quite hard! In statistics terms it would be a form of standard error measurement - but I felt the average distance from the min/max was easier to explain.

6 years ago
Permalink

Comment has been collapsed.

Thanks, I saw that the new update fixed this, great!

The HLTB feature was pretty nifty, but not anything I would be using a lot. The most interesting thing with the script for me is the achievement stats, most of the time it says quite a lot about how users play their won games, but of course HLTB stats can be an interesting addition sometimes.

Would it be possible to show stats like games with ≥1 Achievement, Avg. Achievement Percentage and ≥25% complete on other places than the user profile for users who the script has been run with? I'm thinking like giveaway entry lists. Maybe some would find this a bit too intrusive? :)

6 years ago
Permalink

Comment has been collapsed.

Fully agreed with both of the suggestions tso184 offered above. Unfortunately the script has become significantly slower with the new update and having both options to scan would be extremely helpful to mitigate that in my opinion.

Thanks a lot for your hard work Kelnage, it's a great script.

6 years ago*
Permalink

Comment has been collapsed.

No worries Lenor :) As I’ve said above, the results are being cached - but I do understand that it is quite a bit slower when first run on a user. Would love to hear any other ideas you have for HLTB data?

6 years ago
Permalink

Comment has been collapsed.

thanks for the update ^^

View attached image.
6 years ago
Permalink

Comment has been collapsed.

Just noticed the new feature. Thanks for the addition, kelnage!

6 years ago
Permalink

Comment has been collapsed.

Thank you for the script. I'm wondering if you would consider changing the "Games with any Playtime" column to only count games with at least 3 minutes of play time? I have quite a few games that has a 1 minute play time because I was accidentally looping through them on Idle Master.
Surely playing for less than 3 minutes shouldn't really count as "playing"... Right?
Thanks for considering :)

6 years ago
Permalink

Comment has been collapsed.

Thanks for the feedback YukinNya - I can completely see where you're coming from. Where to set that cut-off is an interesting question though - why is someone who's "played" a game for 2 minutes less likely to have actually played it than say 3 or 4 minutes of playtime? I shall ponder this thought and perhaps make it an option rather than a default. Another possibility might be to make use of the HLTB estimate and use a percentage (say less than 1% of the HLTB estimate would be marked as unplayed - although obviously that only works for games that have HLTB estimates).

6 years ago
Permalink

Comment has been collapsed.

Small finding here:
Your script seems to take HLTB values always as hours, though there are short games or at least reports with less than one hour:

View attached image.
View attached image.
6 years ago
Permalink

Comment has been collapsed.

Thanks - you're completely correct, I have assumed all values coming from HLTB are hours (mostly because I couldn't find any games with shorter expected playtimes!). I will fix this in the next release.

6 years ago
Permalink

Comment has been collapsed.

I will fix this in the next release.

Thanks! :)

6 years ago
Permalink

Comment has been collapsed.

Released the fix this morning, thanks for your help. Old cached values will remain incorrect for the time being, but will expire after a little while.

6 years ago
Permalink

Comment has been collapsed.

Thanks! I just deleted the cached API and tested it. Still shows 54 hours. Or do you mean the cached data from HLTB?

6 years ago
Permalink

Comment has been collapsed.

Yeah, sorry - that button currently only deletes the Steam API cached data - I should fix that too!

6 years ago
Permalink

Comment has been collapsed.

No problem! Just wanted to make sure.

6 years ago
Permalink

Comment has been collapsed.

All Steam-links were changed to https which broke the script. Changing following lines fixes it ^^

25

var userID64 = $('[data-tooltip="Visit Steam Profile"]').attr("href").match(/https:\/\/steamcommunity.com\/profiles\/([0-9]*)/)[1];

247

var id = $ga_icon.attr("href").match(/https:\/\/store.steampowered.com\/([^\/]*)\/([0-9]*)\//);

484

var type = $link.attr("href").match(/https:\/\/store.steampowered.com\/([^\/]*)\/[0-9]*\//);

502

id = url.match(/https:\/\/store.steampowered.com\/([^\/]*)\/([0-9]*)\//),
6 years ago
Permalink

Comment has been collapsed.

Thanks for letting me know. Fixed in 1.6.4.

6 years ago
Permalink

Comment has been collapsed.

I installed it like the post says and it didn't show anything.
Made the changes Tristar mentioned and it still doesn't show anything :(

Edit: after restarting my browser many times and keep trying I got it to work now ^^

6 years ago*
Permalink

Comment has been collapsed.

Huh, weird. Which browser was that, Firefox or Chrome? Occasionally users have reported similar issues, but it certainly hasn't been universal.

6 years ago
Permalink

Comment has been collapsed.

Well, am using Waterfox, so Firefox before the newest add-on breaking update :P

6 years ago
Permalink

Comment has been collapsed.

Thanks for this great script. lately when I made a check it checked all the games but it stuck on 2 games left to check for some reason.

6 years ago
Permalink

Comment has been collapsed.

Deleted

This comment was deleted 5 years ago.

6 years ago
Permalink

Comment has been collapsed.

That is correct - there's no way for this script (or even a manual check) to work around the privacy settings (else they'd be pretty poor privacy settings). I'll keep this script up-to-date for those who want to check their own playtime (which are checked as the currently logged in user, so should be accessible regardless of privacy settings) - but generally I think this script is going to be a lot less useful now.

6 years ago
Permalink

Comment has been collapsed.

I would like to apply for the group but unfortunately I cannot get the jscript to load or work for me even after following all the directions

6 years ago
Permalink

Comment has been collapsed.

What browser are you using? And which user script extension?

6 years ago
Permalink

Comment has been collapsed.

tampermonkey and chrome I have everything installed it just says theres no script running

6 years ago
Permalink

Comment has been collapsed.

Okay. If you go to your won games page is there a button below the user information table? If not, please open up the debug console (I believe the keyboard shortcut is Ctrl+Shift+i), reload the current page (Ctrl+r) and let me know if any errors appear? Any what other user scripts are you using?

6 years ago
Permalink

Comment has been collapsed.

yep that fixed it... gonna revoke my applying my thing is too low for your requirements but thanks for the help

6 years ago
Permalink

Comment has been collapsed.

I've been noticing that lately a lot of users are showing up as having 0 playtime even though they have multiple games with achievements.
What's going on? Something to do with the new Steam security settings?

6 years ago
Permalink

Comment has been collapsed.

One of two options. They've either used the new security settings to hide their playtime, or they've used a tool like SAM to unlock the achievements (although my understanding of SAM is that the game needs to be running in order to get the achievements unlocked, so that may not be the case). If you could provide an example user, I'd be able to check.

6 years ago
Permalink

Comment has been collapsed.

It is possible make it to work with ESGST endless scrolling?

6 years ago
Permalink

Comment has been collapsed.

Yeah, this has bothered me for ages 😅
The workaround I ended up using was to disable endless scrolling on users' won pages (click the little cog icon next to endless scrolling and add ^/user/.*/giveaways/won to the list of exclusions), not as convenient perhaps, but at least "Do You Even Play, Bro?" still works 😏

6 years ago
Permalink

Comment has been collapsed.

Since the poster above me brought up ESGST, there's another bug that's bothered me for a while, ESGST adds extra info to the giveaways on a user's won page including a link the the giveaway's winners page along with the number of winners.

When your script has been run on that user's page however, something 'confuses' ESGST and it incorrectly shows some giveaways as having multiple winners even though they only had one copy (the number of points seems to be read as number of copies). I don't know if this is due to an error in ESGST or your script or just an unfortunate conflict. I'll now go and make a similar post on the ESGST thread 😉
 

View attached image.
6 years ago
Permalink

Comment has been collapsed.

It's likely a conflict between my script and ESGST - it's probably parsing the fields I've added to the page as if they are normal SG data, hence its trying to parse the points as the number of copies, since it sees the data my script adds and assumes it is the points values.

Strictly speaking I would say it was a bug in ESGST - but parsing SG HTML is a hard enough job when you're the only script running on the page, so it wouldn't surprise me that they don't play well together.

I know ESGST is a popular extension, so if I do find some free time I may be able to look at making the two more compatible - but it would be quite a bit of work, without any certainty that ESGST wouldn't change in the future and make my work redundant...

6 years ago
Permalink

Comment has been collapsed.

Well, let's wait and see what revilheart has to say about it, he may be able to fix it more easily on his end 🙂
I'm surprised this hasn't been mentioned by someone before, a lot of people use your script too... 😀

6 years ago
Permalink

Comment has been collapsed.

Revilheart's fixed the conflict at his end 😃

6 years ago
Permalink

Comment has been collapsed.

Strange - it`s not working for me. I tried using Fox and Chrome ._.

6 years ago
Permalink

Comment has been collapsed.

For completed all my game i need 3 years, 3 months, 2 weeks and 4 days, i think i will never play all of my game but my child why not.

5 years ago
Permalink

Comment has been collapsed.

Deleted

This comment was deleted 5 years ago.

5 years ago
Permalink

Comment has been collapsed.

Deleted

This comment was deleted 5 years ago.

5 years ago
Permalink

Comment has been collapsed.

I'm constantly getting stuck at the "Retrieving ____'s logged playing times" message. It doesn't seem to have any consistency to when it will get past this message and when it wont.

5 years ago
Permalink

Comment has been collapsed.

Sign in through Steam to add a comment.