Skip to main content

Export your full Steam game library to a CSV file with rich metadata from four APIs.

Project description

Steam Library Exporter

CI Version Python License Platform Last Commit Open Issues

Export your full Steam game library to a CSV file with rich metadata from four APIs.


Why?

Steam shows you your library — it doesn't let you query it. This tool pulls playtime, genres, prices, reviews, Metacritic scores, community tags, and estimated ownership data into a single flat CSV you can open in Excel, pandas, Google Sheets, Tableau, or any BI tool.


Features

Feature Description
24 metadata columns appid, name, playtime, genres, developers, publishers, release date, Metacritic score, prices, review counts, SteamSpy tags, and more
Four API sources Steam Web API, Steam Store API, Steam Reviews API, SteamSpy
Sorted output Games ordered by your playtime (most played first)
Optional SteamSpy Skip with --no-steamspy to cut export time by ~25%
Partial export Use --limit N to test with a small batch before running the full library
Custom output path Override the default steam_library.csv filename with --output
Cross-platform Runs on Windows, macOS, and Linux wherever Python 3.10+ is installed

Quick Start

1. Install

git clone https://github.com/davidmalko87/steam-library-exporter.git
cd steam-library-exporter
pip install -r requirements.txt

2. Configure

You need two things:

Item How to get it
Steam Web API key steamcommunity.com/dev/apikey (free)
Steam64 ID steamid.io — 17-digit number

Set both Profile and Game details to Public in Steam → Settings → Privacy.

3. Run

# Quick test — top 5 games by playtime
python steam_export.py --key YOUR_API_KEY --steamid YOUR_STEAM64_ID --limit 5

# Full library export
python steam_export.py --key YOUR_API_KEY --steamid YOUR_STEAM64_ID

# Faster — skip SteamSpy data
python steam_export.py --key YOUR_API_KEY --steamid YOUR_STEAM64_ID --no-steamspy

# Custom output filename
python steam_export.py --key YOUR_API_KEY --steamid YOUR_STEAM64_ID --output my_games.csv

Configuration Reference

Flag Required Default Description
--key KEY Yes Steam Web API key
--steamid STEAMID Yes Steam64 ID (17-digit number)
--output OUTPUT No steam_library.csv Output CSV file path
--no-steamspy No off Skip SteamSpy API calls (faster export)
--limit N No 0 (all) Export only the top N games by playtime

Output Columns

appid, name, playtime_hours, playtime_2weeks_hours, type, developers, publishers, genres, categories, release_date, metacritic_score, price_current, price_initial, is_free, short_description, header_image, total_positive, total_negative, review_score_desc, total_reviews, estimated_owners, avg_playtime_global, median_playtime_global, steamspy_tags

Sample rows

appid,name,playtime_hours,metacritic_score,genres,price_current,review_score_desc,estimated_owners
570,Dota 2,1842.3,90,Action;Free to Play,0.0,Overwhelmingly Positive,100000000-200000000
730,Counter-Strike 2,634.1,83,Action,0.0,Very Positive,50000000-100000000
1091500,Cyberpunk 2077,112.7,86,Action;RPG,29.99,Very Positive,10000000-20000000

Project Structure

steam-library-exporter/
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   └── feature_request.yml
│   ├── workflows/
│   │   └── ci.yml
│   └── PULL_REQUEST_TEMPLATE.md
├── steam_export.py      # CLI entry point and all logic
├── requirements.txt     # Python dependencies
├── CHANGELOG.md         # Version history
├── CONTRIBUTING.md      # Development and versioning guide
├── LICENSE              # MIT
└── README.md

Known Limitations

  • Rate limits: Steam Store API requires ~1.5 s between requests. A 200-game library takes roughly 13 minutes.
  • Private profiles: The tool cannot read libraries set to Private in Steam Privacy Settings.
  • Free-to-play games: Some F2P titles may lack price data in the Store API response.
  • SteamSpy accuracy: Estimated ownership ranges are approximate (SteamSpy infers data, Steam does not publish it).
  • No incremental export: The script always fetches and writes the full library from scratch.

Security

Never commit your API key. The .gitignore excludes common credential files (.env, *.key), but always verify before pushing.

Your Steam Web API key is read-only and scoped to public data, but treat it like any credential.


License

MIT © 2026 David Malko


Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

steam_library_exporter-1.0.0.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

steam_library_exporter-1.0.0-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file steam_library_exporter-1.0.0.tar.gz.

File metadata

  • Download URL: steam_library_exporter-1.0.0.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for steam_library_exporter-1.0.0.tar.gz
Algorithm Hash digest
SHA256 dd8b3ddbe661716e1fb470408c99ec333e593ded87f797e6d5fb6ae23e2ec257
MD5 f3f26b20266b78224425201689d15981
BLAKE2b-256 0eb6c3ca30b15e77771105d009578ad4e2d19c3b1e2ef15304a1ac89245f8fdb

See more details on using hashes here.

File details

Details for the file steam_library_exporter-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for steam_library_exporter-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c9838066760c2ae7c15e9b04741d08cb06cb3dd819825e9fc62394d367a07d3b
MD5 efb5f38db0f054e69bf42480127c2029
BLAKE2b-256 b37c94dd06d52f57964afa54f96064157f9ef7e5f050ac88476a67459f746d7a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page