Discord community member AquaRegia created this script. I decided to post it here so people can play around and figure things out. I have not use Tampermonkey. I’m not endorsing it. I’m just letting people know its there.
A lot of the communication between the client (Chrome browser) and the Stadia servers happens through an API. The client sends a request for the games/achievements/friends/etc. and the server responds with the requested information in an easy-to-use structure. By intercepting these API calls you can look at the information in its rawest form, before the browser has decided how (or if) to show it to the user.
Tampermonkey is a Chrome extension that allows you to add, remove, and edit functionality on an existing web page.
The following Tampermonkey script intercepts every API call on Stadia, and neatly puts them together into an object called StadiaAPI. After installing (and refreshing the page), open the Chrome developer tools (ctrl+shift+j) and type “StadiaAPI” into the console. This will display everything the browser has received through the API:
They all have arbitrary names, but I’ve managed to figure out the content for some of them, here are some examples:
sis9oc – All of your achievements from the latest game you played
Z5HRnb – Friends list
LV6ate – All of your games
After typing “StadiaAPI” you can click on the arrows to expand every object. All values are unlabeled, so it takes som detective work to figure out what they represent. They’re always in the same order however, so once you’ve figured it out you’ll always know where to look. Here’s an example:
With just a little bit of coding knowledge you can then use this data any way you like. For example, you can type:
StadiaAPI.LV6ate_0.map(e => [e, e ? new Date(e*1000).toISOString() : "Never"])
to show a list of all of your games and the last time you played them:
Using a similar technique AquaRegia created another Tampermonkey script that intercepts game information and creates graphs that show you the game time on all of your games, it can be found here:
What can you figure out using this method. Tweet it at me @RunJumpStomp on Twitter