SteamFetch 0.0.4
dotnet tool install --global SteamFetch --version 0.0.4
dotnet new tool-manifest
dotnet tool install --local SteamFetch --version 0.0.4
#tool dotnet:?package=SteamFetch&version=0.0.4
nuke :add-package SteamFetch --version 0.0.4
SteamFetch CLI
A .NET 10 command-line tool to discover and download Steam library artworks (capsules, heroes, logos, headers) for a given app. It uses SteamKit2 to fetch app product info anonymously and constructs direct CDN URLs.
- No API key or login needed
- Supports fetching a single artwork, listing available artworks, and batch downloads from CSV
Install / Run
You can install the dotnet tool:
# Example (when published)
dotnet tool install -g SteamFetch
# Then run
steam_fetch --help
Commands
Top-level syntax:
steam_fetch [command] [options]
Available commands:
available— List available artworks (types, variants, languages) for an appsingle— Fetch a single artwork for an appbatch— Process a CSV of multiple app/artwork specs and download each
Use --help on any command to see details, e.g. steam_fetch single --help.
available
List available artworks (types, variants, languages) for an app and show their URLs.
steam_fetch available <appid> [--filter-type <TYPE>]
<appid>: Steam App ID (e.g., 570 for Dota 2)--filter-type: Optional type filter (e.g.,library_capsule,library_hero,library_logo,library_header)
Example:
steam_fetch available 570
steam_fetch available 570 --filter-type library_capsule
Output shows a table with columns: Type, Variant, Language, URL. The URL is clickable in supported terminals, and the display text is shortened (relative path) when possible.
Notes:
- Non-image metadata entries under
library_logosuch aslogo_positionare filtered out.
single
Fetch a single artwork by type, variant, and language. Either prints the URL or downloads the file if an output path is provided.
steam_fetch single <appid> <type> <variant> <language> [-o|--output <OUTPUT>]
<appid>: Steam App ID<type>: Artwork type (e.g.,library_capsule,library_hero,library_logo,library_header)<variant>: Artwork variant (commonlyimageorimage2x)<language>: Language key (e.g.,english,schinese,tchinese,japanese)-o|--output <OUTPUT>: File path or directory to save the image. If omitted, the URL is printed.
Examples:
# Print URL only
steam_fetch single 570 library_capsule image2x english
# Download into current directory, inferring filename from URL
steam_fetch single 570 library_capsule image2x english -o ./
# Download to a specific file
steam_fetch single 570 library_hero image english -o ./art/dota2-hero-en.jpg
Tips:
- If
--outputpoints to a directory (or ends with/or\), the filename is inferred from the URL. - Some combinations (e.g.,
library_logo/logo_position) are metadata and not image URLs; the tool will warn you.
batch
Process multiple downloads from a CSV. The CSV must have exactly 4 columns per row:
AppId,BaseSpec,FallbackSpec,OutputPath
AppId— Steam App ID (unsigned integer)BaseSpec— The primary spec to try firstFallbackSpec— A secondary spec to try if the base spec isn’t found. May be emptyOutputPath— File or directory path to save the result
Spec syntax for BaseSpec/FallbackSpec:
<type>:<variant>[:<language>]
- Language defaults to
englishwhen omitted - Common
variantexamples:image,image2x
Examples of CSV rows (comma-delimited):
570,library_capsule:image2x:english,,./out/
730,library_hero:image,library_capsule:image2x,./out/
440,library_logo:image2x:english,,./logos/
Usage:
# From a file
steam_fetch batch apps.csv
# From stdin
cat apps.csv | steam_fetch batch
# With a custom delimiter (e.g., semicolon)
steam_fetch batch apps.csv --delimiter ';'
Behavior:
- The tool enforces exactly 4 columns per row; invalid rows are skipped with a warning
FallbackSpecmay be empty. If the base spec returns no artwork, the fallback spec is tried- If
OutputPathis a directory (or ends with/or\), the filename is inferred from the URL - A live table is displayed showing progress and results; clickable file links are shown when downloads succeed
Discovering valid combinations
What values can you use for <type>, <variant>, and <language>? Use available to list them for a specific appid:
steam_fetch available 570
That output is your authoritative reference. Typical values include:
- Types:
library_capsule,library_hero,library_logo,library_header - Variants:
image,image2x(varies per type) - Languages: Steam language keys like
english,schinese,tchinese,japanese,spanish, etc.
If a combination isn’t found, single and batch will report no artwork or try the fallback.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.