I've previously discussed that I want to start archiving Steam releases as well, and we finally got a tool to do that!
With the coding help of members gus33000 and jagotu we've managed to put together two tools, one which will be distributed here to members, and one that I will use internally to download and archive the releases.
And I think it's time to release a test version of this little tool called DepotDumper.
It's based on the publically available code called Depot Downloader which is a project to reverse-engineer Steam, available on Github.
But to explain how it works I need to give a little quick n'dirty introduction to how Steam stores it's games - appid, depot and manifests.
- AppID: Each title has it's own identification number identifying the product on Steam.
- Depot: Each product can be split into several file sets. In some cases executables, video, data, audio etc can be divided to depots. In other cases multiple languages and platforms, such as English for Mac OS, or Italian for Linux etc. How it's split varies between the titles. Here's an example from the game System Shock 2:
Each depot is protected by a depot key which is unique to the depot, but not unique to the users library. Steam authenticates the depot against the account and uses the key internally to allow download. A depot key can not be traced to a Steam user.
Code: Select all
\---System Shock 2 [#238210] \---media_depot 228982 (VC 2008 Redist) 229020 (OpenAL 2070 Redist) 238211 (System Shock 2 - Windows English) 238212 (System Shock 2 - Windows German) 238213 (System Shock 2 - Mac English) 238214 (System Shock 2 - Mac German) 238215 (System Shock 2 - Linux English) 238216 (System Shock 2 - Linux German) 238217 (System Shock 2 Bonus Content)
- Manifest: Steam stores several versions of each depot. A manifest is basically a list of depots that belong to a certain title, and a title can have several manifests.
So what does DepotDumper do? It scans through your Steam library, saves a list of all the application IDs your account has, and the corresponding depot keys. It creates two files, one with the application IDs and title, and one with the depot number and key. I can then use these two files to download the games without the need for access to your account or credentials. Since the depot key isn't unique to your account it can also not be traced to the owner.
So how can you help BetaArchive?
If you provide me with these two files I can put them in my local database and use them to archive the titles for the future. I can also use the depot keys to download any other manifests if needed (for betas etc.) but that requires some extra help from the member.
For those of you worried about personal accounts etc:
- The tool is based on Steam's official Depot Downloader. It uses your credentials only with Steam and they are not sent anywhere else or stored locally. If you have SteamGuard activated your credentials will also be protected by this.
- The depot keys will be only used by me personally, and will not be shared or used by anyone else. Any requests of these files on Discord or on the forum will be considered a breach of our community rules.
- The depot keys can not be used to play any of the titles, it's only for archiving. You will still need to have the titles purchased on Steam to play them.
- I will not save or give out any info on who gave me any of the depot files, it all goes into an unnamed pool of files I keep in a protected and encrypted folder.
- The games downloaded will be kept in cold storage until the day Steam either decides to pull the game, or upgrade it beyond its original generation (i.e replace an original version with a remastered edition etc). They will be added to the cold storage database I am working on.
- I will only keep major titles, I won't bother with random indie games except for a few exceptions of well known and popular indie games. So it's not about dumping the whole Steam library, but to preserve the quality games and all its packages, only a fraction of Steam consists of quality titles.
- I will not need your Steam username or credentials, and I will never ask for them. If anyone asks for them in my name you will not give them out, regardless of reason. I do not need them to download a title.
DepotDumper requires .Net Core installed, I've included the runtime installer in the 'prereqs' folder.
If you have any questions please get in touch with me and I'll answer them as best as I can.