Skip to content

MCbabel/Steam-Manifest-Downloader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

92 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

๐ŸŽฎ Steam Manifest Downloader

A sleek desktop app for downloading Steam game depots using manifest data.

Version License Platform Built with Tauri Downloads Lines of Code

Upload .lua files, search across GitHub repos, and let the app handle manifests, depot keys, and downloads โ€” all in one click.

Warning

โš ๏ธ Legal Disclaimer

This project does NOT support or encourage piracy in any way.

  • DepotDownloaderMod must ONLY be used with your own legally obtained Steam keys.
  • This tool is intended for legitimate use cases only (e.g., downloading your own purchased content, archiving, backup, etc.).
  • The developer takes no responsibility for any misuse of this tool.
  • By using this software, you agree to comply with all applicable laws and Steam's Terms of Service.

โœจ Features

Feature
๐Ÿ“‚ Drag & drop .lua file upload
๐Ÿ” Multi-repo search via Internet Archive
๐Ÿ“ฆ Automatic manifest download from Internet Archive
๐Ÿ”‘ Automatic depot keys generation
โšก Integrated DepotDownloader execution
๐Ÿ“Š Real-time download progress tracking
๐ŸŽฎ Steam Store API integration โ€” game names + cover art
๐ŸŒ™ Dark / Light theme support
โš™๏ธ Configurable download location & GitHub token
๐Ÿ”’ Fully self-contained โ€” DepotDownloaderMod embedded

๐Ÿš€ Quick Start

How it works โ€” in 5 steps:

  1. ๐Ÿ“ฅ Download the installer from Releases
  2. ๐Ÿ“‚ Upload your .lua file or search for a game
  3. โœ… Select the depots and manifests you want
  4. ๐Ÿš€ Click Download โ€” everything happens automatically
  5. โœจ Done! Files are in your configured download folder

๐Ÿ’ป System Requirements

Requirement Details
๐Ÿ’ป Operating System Windows 10 / 11 (64-bit) or a modern Linux distro (glibc โ‰ฅ 2.35)
โš™๏ธ Runtime (Windows) .NET 9.0 Runtime โ€” required by DepotDownloader
๐Ÿ“ฆ Runtime (Linux) webkit2gtk-4.1, libayatana-appindicator3, librsvg2 (install commands below)
๐ŸŒ Network Internet connection

๐Ÿ“ฅ Installation

๐ŸชŸ Windows

  1. Head to the Releases page and download the latest .exe installer (NSIS)
  2. Run the installer โ€” installs per-user, no admin required
  3. Launch Steam Manifest Downloader from the Start Menu

Note

Make sure you have the .NET 9.0 Runtime installed. The app will warn you on first launch if it's missing.

๐Ÿง Linux

Arch / CachyOS / Manjaro โ€” AUR

The cleanest path on Arch-based distros: an official AUR package handled by pacman. Two variants:

# Precompiled โ€” installs in seconds, pulls the AppImage binary from the GitHub release
paru -S steam-manifest-downloader-bin

# From source โ€” recompiles the Rust binary locally (~5 min on a modern CPU)
paru -S steam-manifest-downloader

Both packages provide/conflict each other, so you only ever have one installed. The -bin flavor is recommended unless you want a reproducible local build.

Sources: steam-manifest-downloader-bin ยท steam-manifest-downloader. Updates flow through your package manager (paru -Syu), and the in-app updater detects this and points you back at it instead of fetching an AppImage.

Other distros โ€” AppImage

Download the latest .AppImage from Releases.

Tauri apps on Linux don't bundle their own browser engine โ€” they render the UI through the system WebKitGTK. Install the runtime for your distro:

Ubuntu / Debian (22.04+ / 12+)
sudo apt install libwebkit2gtk-4.1-0 libayatana-appindicator3-1 librsvg2-2
Arch / CachyOS / Manjaro
sudo pacman -S webkit2gtk-4.1 libayatana-appindicator librsvg
Fedora
sudo dnf install webkit2gtk4.1 libappindicator-gtk3 librsvg2
openSUSE (Tumbleweed / Leap 15.6+)
sudo zypper install libwebkit2gtk-4_1-0 libayatana-appindicator3-1 librsvg-2-2

Then make the AppImage executable and launch it:

chmod +x Steam\ Manifest\ Downloader_*_amd64.AppImage
./Steam\ Manifest\ Downloader_*_amd64.AppImage

Note

On NixOS, portable binaries can't find system libs through the normal loader paths. Launch via steam-run ./Steam\ Manifest\ Downloader_*_amd64.AppImage, or wrap the binary in a Nix derivation that lists webkitgtk_4_1, libayatana-appindicator, librsvg and gtk3 as build inputs.

๐Ÿ”ง Building from Source

Prerequisites

  • Rust (latest stable) + Cargo โ€” Install via rustup
  • Tauri CLI โ€” cargo install tauri-cli
  • .NET SDK 9.0 โ€” Only needed if building DepotDownloaderMod from source (Download)
  • Linux additional: libwebkit2gtk-4.1-dev, libappindicator3-dev, librsvg2-dev, patchelf (for AppImage)

Step 1: Building DepotDownloaderMod (optional)

The project embeds DepotDownloaderMod binaries at compile time. Pre-built versions are already included in the repo:

  • DepotDownloaderMod-Windows/ โ€” Windows build (framework-dependent, requires .NET runtime)
  • DepotDownloaderMod-linux-full/ โ€” Linux build (self-contained, no runtime needed)

If you want to build DepotDownloaderMod yourself:

Source: github.com/SteamAutoCracks/DepotDownloaderMod

Windows (framework-dependent)

git clone https://github.com/SteamAutoCracks/DepotDownloaderMod.git
cd DepotDownloaderMod
dotnet publish -c Release -o ./publish-windows

Copy all files from publish-windows/ to DepotDownloaderMod-Windows/ in this project:

  • DepotDownloaderMod.exe
  • DepotDownloaderMod.dll
  • DepotDownloaderMod.deps.json
  • DepotDownloaderMod.runtimeconfig.json
  • SteamKit2.dll
  • protobuf-net.Core.dll
  • protobuf-net.dll
  • QRCoder.dll
  • System.IO.Hashing.dll
  • ZstdSharp.dll

Linux (self-contained, NO trimming)

git clone https://github.com/SteamAutoCracks/DepotDownloaderMod.git
cd DepotDownloaderMod
dotnet publish -c Release -r linux-x64 --self-contained true \
    -p:PublishSingleFile=true -o ./publish-linux

[!CAUTION] Do NOT use -p:PublishTrimmed=true โ€” .NET trimming removes reflection metadata needed by SteamKit2/protobuf-net, causing "A task was canceled" errors at runtime.

Copy publish-linux/DepotDownloaderMod to DepotDownloaderMod-linux-full/DepotDownloaderMod in this project.


Step 2: Building the Tauri App

Windows

cargo tauri build

Output:

  • NSIS installer: src-tauri/target/release/bundle/nsis/
  • Portable executable: src-tauri/target/release/steam-manifest-downloader.exe

Linux (Arch/CachyOS/etc.)

NO_STRIP=true APPIMAGE_EXTRACT_AND_RUN=1 cargo tauri build

Output: src-tauri/target/release/bundle/appimage/Steam Manifest Downloader_1.0.0_amd64.AppImage

[!NOTE] NO_STRIP=true prevents stripping symbols from the embedded .NET binary. APPIMAGE_EXTRACT_AND_RUN=1 is needed on some distros for the AppImage bundler.


Project Structure (for reference)

The include_bytes! macro in src-tauri/src/services/embedded_tools.rs embeds the DDM binaries at compile time:

  • Windows build reads from DepotDownloaderMod-Windows/
  • Linux build reads from DepotDownloaderMod-linux-full/

[!IMPORTANT] The DDM binary files must be in place before running cargo tauri build. The Rust compiler reads them via include_bytes! at compile time โ€” if the files are missing, the build will fail.


๐Ÿ› ๏ธ Tech Stack

Rust Tauri HTML5 CSS3 JavaScript

Layer Technology
Backend Rust, reqwest, tokio, serde
Frontend HTML / CSS / JS (vanilla)
Framework Tauri v2
Downloader DepotDownloaderMod (.NET 8)

๐Ÿ“ Project Structure
DepoDownloaderWebApp/
โ”œโ”€โ”€ public/                     # Frontend (HTML/CSS/JS)
โ”‚   โ”œโ”€โ”€ index.html              # Main UI
โ”‚   โ”œโ”€โ”€ css/style.css           # Styles & themes
โ”‚   โ””โ”€โ”€ js/app.js               # Application logic
โ”œโ”€โ”€ src-tauri/
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ main.rs             # Tauri entry point
โ”‚   โ”‚   โ”œโ”€โ”€ commands/           # Tauri command handlers
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ download.rs     # Download orchestration
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ search.rs       # Game search
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ file_ops.rs     # File operations
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ settings.rs     # App settings
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ system.rs       # System utilities
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ window.rs       # Window controls
โ”‚   โ”‚   โ””โ”€โ”€ services/           # Business logic
โ”‚   โ”‚       โ”œโ”€โ”€ github_api.rs   # GitHub API client
โ”‚   โ”‚       โ”œโ”€โ”€ manifest_hub_api.rs
โ”‚   โ”‚       โ”œโ”€โ”€ steam_store_api.rs
โ”‚   โ”‚       โ”œโ”€โ”€ depot_runner.rs # DepotDownloaderMod runner
โ”‚   โ”‚       โ”œโ”€โ”€ lua_parser.rs   # .lua file parser
โ”‚   โ”‚       โ””โ”€โ”€ ...
โ”‚   โ”œโ”€โ”€ Cargo.toml              # Rust dependencies
โ”‚   โ””โ”€โ”€ tauri.conf.json         # Tauri configuration
โ”œโ”€โ”€ DepotDownloaderMod/         # Embedded .NET tool
โ”œโ”€โ”€ assets/                     # App icons
โ””โ”€โ”€ README.md

๐Ÿ“„ License

License

This project is licensed under the GPL-2.0 License.


๐Ÿ™ Credits & Acknowledgments


Made with โค๏ธ and ๐Ÿฆ€

About

๐ŸŽฎ Modern desktop app for downloading Steam depot manifests using DepotDownloaderMod. Upload .lua files, select manifests, and download with real-time progress tracking. Built with Tauri v2 (Rust + WebView).

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors