Steam depot downloader utilizing the SteamKit2 library.
DepotDownloader is a command-line tool designed to download Steam depots using the SteamKit2 library. It enables efficient downloading of specific depots, workshops, and pubfiles, providing flexibility for developers and content creators.
Key features include support for .NET 8.0, comprehensive depot download capabilities with parameters for OS, architecture, and language preferences, and flexible authentication options such as username/password, QR login, or session persistence via -remember-password. The tool also integrates seamlessly with winget for easy installation.
Ideal for developers, modders, and content creators seeking to access Steam game files without installing Steam itself. DepotDownloader offers a powerful solution for efficiently downloading specific content, configuring downloads to meet individual needs, and streamlining the process through command-line interface and winget integration.
README
DepotDownloader
Steam depot downloader utilizing the SteamKit2 library. Supports .NET 8.0
This program must be run from a console, it has no GUI.
if set, remember the password for subsequent logins of this user. (Use -username -remember-password as login credentials)
-qr
display a login QR code to be scanned with the Steam mobile app
-no-mobile
prefer entering a 2FA code instead of prompting to accept in the Steam mobile app.
-loginid <#>
a unique 32-bit integer Steam LogonID in decimal, required if running multiple instances of DepotDownloader concurrently.
Downloading
Parameter
Description
-app <#>
the AppID to download.
-depot <#>
the DepotID to download.
-manifest
manifest id of content to download (requires -depot, default: current for branch).
-ugc <#>
the UGC ID to download.
-pubfile <#>
the PublishedFileId to download. (Will automatically resolve to UGC id)
-branch
download from specified branch if available (default: Public).
-branchpassword
branch password if applicable.
Download configuration
Parameter
Description
-all-platforms
downloads all platform-specific depots when -app is used.
-os
the operating system for which to download the game (windows, macos or linux, default: OS the program is currently running on)
-osarch
the architecture for which to download the game (32 or 64, default: the host's architecture)
-all-archs
download all architecture-specific depots when -app is used.
-all-languages
download all language-specific depots when -app is used.
-language
the language for which to download the game (default: english)
-lowviolence
download low violence depots when -app is used.
-dir
the directory in which to place downloaded files.
-filelist
the name of a local file that contains a list of files to download (from the manifest). prefix file path with regex: if you want to match with regex. each file path should be on their own line.
-validate
include checksum verification of files already downloaded.
-manifest-only
downloads a human readable manifest for any depots that would be downloaded.
-cellid <#>
the overridden CellID of the content server to download from.
-max-downloads <#>
maximum number of chunks to download concurrently. (default: 8).
-use-lancache
forces downloads over the local network via a Lancache instance.
Other
Parameter
Description
-debug
enable verbose debug logging.
-V or --version
print version and runtime.
Frequently Asked Questions
Why am I prompted to enter a 2-factor code every time I run the app?
Your 2-factor code authenticates a Steam session. You need to "remember" your session with -remember-password which persists the login key for your Steam session.
Can I run DepotDownloader while an account is already connected to Steam?
Any connection to Steam will be closed if they share a LoginID. You can specify a different LoginID with -loginid.
Why doesn't my password containing special characters work? Do I have to specify the password on the command line?
If you pass the -password parameter with a password that contains special characters, you will need to escape the command appropriately for the shell you are using. You do not have to include the -password parameter on the command line as long as you include a -username. You will be prompted to enter your password interactively.
I am getting error 401 or no manifest code returned for old manifest ids
Try logging in with a Steam account, this may happen when using anonymous account.
Steam allows developers to block downloading old manifests, in which case no manifest code is returned even when parameters appear correct.
Why am I getting slow download speeds and frequent connection timeouts?
When downloading old builds, cache server may not have the chunks readily available which makes downloading slower.
Try increasing -max-downloads to saturate the network more.