DepotDownloader
DepotDownloader copied to clipboard
Feature Request: download the original .manifest file
As for now, -manifest-only argument only creates a file list. But what if someone need checksums or whatever else from .manifest (like manifest creation date)? So, if we can download manifests, can we also make the original .manifest file by calling -manifest-only?
What exactly do you mean by original here? Because the original would be a binary format that needs something like SteamKit to parse correctly.
I assume you want some text representation with all the attributes from the manifest? If so, how should that look?
@xPaw I think they mean saving the original .manifest from Steam CDN servers (but with decrypted filenames) like the actual Steam client does instead of using the current pseudo-format with some of the original manifest data. I would like to second this notion as this feature is important for preservation purposes.
Why is a pseudo-format used anyway? Is there an issue with serializing/de-serializing the original manifests?
Why is a pseudo-format used anyway
DD has its own protobuf format for storing it, it is similar to Steam's, but not quite. DD using protobufs for manifests seems to predate Steam itself doing that. Steam used a different binary format before.
Dumping the raw binary manifest is pretty useless, what are you going to do with it? There aren't even any tools that support reading it directly (SteamKit has the functions to handle it obviously, but it's not directly user facing).
DD has its own protobuf format for storing it, it is similar to Steam's, but not quite. DD using protobufs for manifests seems to predate Steam itself doing that. Steam used a different binary format before.
So this is just legacy behavior from before Steam itself was using protobuf for manifests? Why not cut out the middleman and use Steam's protobuf then?
Dumping the raw binary manifest is pretty useless, what are you going to do with it? There aren't even any tools that support reading it directly (SteamKit has the functions to handle it obviously, but it's not directly user facing).
You could load and parse it in SteamKit. %) As I said, this is useful for potential preservation purposes as the current Steam servers may eventually get shut down. In fact, this already happened once, Steam2 servers got shut down around 2015(?) so we can't get any data pertaining to the old versions that used to be there anymore.
A use case I can think of, is using it to integrate self-made game backups back to steam. It needs .acf files to recognize the game (which can be easily generated), but it also needs the .manifest files in order to verify/update the game backup.