Home

Awesome

DepotDownloader

Steam depot downloader utilizing the SteamKit2 library. Supports .NET 8.0

This program must be run from a console, it has no GUI.

Installation

Directly from GitHub

Download a binary from the releases page.

via Windows Package Manager CLI (aka winget)

On Windows, winget users can download and install the latest Terminal release by installing the SteamRE.DepotDownloader package:

winget install --exact --id SteamRE.DepotDownloader

via Homebrew

On macOS, Homebrew users can download and install that latest release by running the following commands:

brew tap steamre/tools
brew install depotdownloader

Usage

Downloading one or all depots for an app

./DepotDownloader -app <id> [-depot <id> [-manifest <id>]]
                 [-username <username> [-password <password>]] [other options]

For example: ./DepotDownloader -app 730 -depot 731 -manifest 7617088375292372759

By default it will use anonymous account (view which apps are available on it here).

To use your account, specify the -username <username> parameter. Password will be asked interactively if you do not use specify the -password parameter.

Downloading a workshop item using pubfile id

./DepotDownloader -app <id> -pubfile <id> [-username <username> [-password <password>]]

For example: ./DepotDownloader -app 730 -pubfile 1885082371

Downloading a workshop item using ugc id

./DepotDownloader -app <id> -ugc <id> [-username <username> [-password <password>]]

For example: ./DepotDownloader -app 730 -ugc 770604181014286929

Parameters

ParameterDescription
-app <#>the AppID to download.
-depot <#>the DepotID to download.
-manifest <id>manifest id of content to download (requires -depot, default: current for branch).
-ugc <#>the UGC ID to download.
-beta <branchname>download from specified branch if available (default: Public).
-betapassword <pass>branch password if applicable.
-all-platformsdownloads all platform-specific depots when -app is used.
-os <os>the operating system for which to download the game (windows, macos or linux, default: OS the program is currently running on)
-osarch <arch>the architecture for which to download the game (32 or 64, default: the host's architecture)
-all-archsdownload all architecture-specific depots when -app is used.
-all-languagesdownload all language-specific depots when -app is used.
-language <lang>the language for which to download the game (default: english)
-lowviolencedownload low violence depots when -app is used.
-pubfile <#>the PublishedFileId to download. (Will automatically resolve to UGC id)
-username <user>the username of the account to login to for restricted content.
-password <pass>the password of the account to login to for restricted content.
-remember-passwordif set, remember the password for subsequent logins of this user. (Use -username <username> -remember-password as login credentials)
-dir <installdir>the directory in which to place downloaded files.
-filelist <file.txt>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.
-validateInclude checksum verification of files already downloaded
-manifest-onlydownloads a human readable manifest for any depots that would be downloaded.
-cellid <#>the overridden CellID of the content server to download from.
-max-servers <#>maximum number of content servers to use. (default: 20).
-max-downloads <#>maximum number of chunks to download concurrently. (default: 8).
-loginid <#>a unique 32-bit integer Steam LogonID in decimal, required if running multiple instances of DepotDownloader concurrently.
-V or --versionprint 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.