https://github.com/drkenreid/steam-stats-visualized
๐ฎ Spotify Wrapped, but for your Steam library. Paste your profile, get roasted.
https://github.com/drkenreid/steam-stats-visualized
data-science data-visualization gaming plotly portfolio python steam steam-api streamlit
Last synced: about 1 month ago
JSON representation
๐ฎ Spotify Wrapped, but for your Steam library. Paste your profile, get roasted.
- Host: GitHub
- URL: https://github.com/drkenreid/steam-stats-visualized
- Owner: DrKenReid
- License: mit
- Created: 2026-03-27T01:34:54.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2026-03-27T14:51:51.000Z (3 months ago)
- Last Synced: 2026-03-27T14:58:12.744Z (3 months ago)
- Topics: data-science, data-visualization, gaming, plotly, portfolio, python, steam, steam-api, streamlit
- Language: Python
- Size: 424 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# ๐ฎ Steam Stats Visualized
**Spotify Wrapped, but for your Steam library.** Paste your profile, get roasted.
> *"You own 665 games. You've played 344. The other 321 are just... vibes."*



---
## โจ Features
| Feature | Description |
|---------|-------------|
| ๐ญ **Gaming Personality** | Are you "The Hoarder", "The Completionist", or "The One-Game Andy"? |
| ๐ **Top 10 Games** | Interactive bar chart of your most-played games with roast commentary |
| ๐ฎ **Game Meme References** | ~50 game-specific memes (Factorio: "The factory must grow" ๐ญ) |
| ๐ป **Platform Breakdown** | Windows / Mac / Linux / Steam Deck playtime donut chart |
| ๐ **Backlog of Shame** | How many games you've never touched, with appropriate judgment |
| ๐ **Playtime Distribution** | Histogram showing the classic "200 games under 1 hour" pattern |
| ๐ฏ **Genre Breakdown** | Treemap of your library by genre |
| ๐ฐ **Cost Per Hour** | Best and worst value games in your library |
| ๐ธ **Most Expensive Unplayed** | The priciest game you've never opened |
| ๐
**Achievement Stats** | Completion rates across your top games |
| ๐น๏ธ **Recently Played** | What you've been up to in the last 2 weeks |
| ๐ค **Social Sharing** | Share buttons (Twitter, Reddit, Facebook, LinkedIn) on every section |
## ๐ธ Screenshots
Click to expand
### Gaming Personality + Profile

### Top 10 Games + Platform Breakdown

### Backlog of Shame + Playtime Distribution

### Genre Breakdown + Cost Analysis

### Achievement Stats + Recently Played

## ๐ Try It
Or run locally:
```bash
# Clone
git clone https://github.com/drkenreid/steam-stats-visualized.git
cd steam-stats-visualized
# Install dependencies
pip install -r requirements.txt
# Add your Steam API key (free: https://steamcommunity.com/dev/apikey)
cp .streamlit/secrets.toml.example .streamlit/secrets.toml
# Edit .streamlit/secrets.toml with your key
# Run
streamlit run app.py
```
Or with Docker:
```bash
docker build -t steam-stats .
docker run -p 8501:8501 steam-stats
```
Or with Make:
```bash
make run # Start the app
make test # Run tests
```
## ๐๏ธ Architecture
```
steam-stats-visualized/
โโโ app.py # Streamlit UI โ layout, sections, share buttons
โโโ src/
โ โโโ steam_api.py # Steam API client (Web API + Store API), caching
โ โโโ analytics.py # Data processing, metrics, commentary, personality
โ โโโ charts.py # Plotly chart builders (dark theme)
โโโ notebooks/
โ โโโ exploration.ipynb # Data science EDA walkthrough
โโโ tests/
โ โโโ test_analytics.py # Unit tests for analytics functions
โโโ .streamlit/
โ โโโ config.toml # Dark theme configuration
โ โโโ secrets.toml.example # API key template
โโโ assets/screenshots/ # App screenshots
โโโ requirements.txt
โโโ Dockerfile
โโโ Makefile
โโโ LICENSE (MIT)
```
### Design Decisions
- **Streamlit** over Flask/React: Zero-friction deployment, Python-native, free hosting via Streamlit Community Cloud. The app IS the repo.
- **Plotly** over Matplotlib: Interactive charts that users can hover, zoom, and explore. Dark theme consistency.
- **No database**: All data fetched live from Steam APIs. Caching via `@st.cache_data` (1-hour TTL) to avoid hammering rate limits.
- **No OAuth**: Users paste a profile URL โ no login required. Works with any public Steam profile.
- **Humor-driven**: The goal is shareability. People share things that make them laugh, not bar charts.
### Steam APIs Used
| Endpoint | Purpose |
|----------|---------|
| `ISteamUser/ResolveVanityURL` | Convert vanity name โ Steam ID |
| `ISteamUser/GetPlayerSummaries` | Profile info, avatar, account age |
| `IPlayerService/GetOwnedGames` | Full game list with playtime + platform breakdown |
| `IPlayerService/GetRecentlyPlayedGames` | Last 2 weeks activity |
| `ISteamUserStats/GetPlayerAchievements` | Per-game achievement progress |
| `store.steampowered.com/api/appdetails` | Genre tags, pricing (rate-limited) |
## ๐งช Testing
```bash
pytest tests/ -v
```
10 unit tests covering analytics functions (stats calculation, commentary generation, cost-per-hour, account age formatting).
## ๐ Data Science Notebook
The `notebooks/exploration.ipynb` notebook walks through the data exploration process:
- Fetching and cleaning Steam API data
- Statistical observations about gaming patterns
- Genre analysis methodology
- Playtime distribution analysis
This is the "portfolio piece" โ showing the data science thinking behind the visualizations.
## ๐ค Contributing
PRs welcome! Some ideas:
- Add more game meme references (see `GAME_MEMES` dict in `analytics.py`)
- Friend comparison (side-by-side stats)
- Gaming timeline (scatter plot of when games were last played)
- Shareable summary card (PNG export)
- More gaming personalities
## ๐ License
MIT โ do whatever you want with it.
---
*Built with [Streamlit](https://streamlit.io), [Plotly](https://plotly.com), and questionable life choices.*
## Related
- [Letterboxd Roasted](https://github.com/DrKenReid/Letterboxd-Roasted) โ Spotify Wrapped for your Letterboxd
- [Debt Payoff Simulator](https://github.com/DrKenReid/Debt-Payoff-Simulator) โ compare debt repayment strategies
- [kenreid.co.uk/data_science](https://www.kenreid.co.uk/data_science.html) โ all projects, publications, and CV
## Author
**Ken Reid** โ Data Scientist, photographer, and avid reader.
- [kenreid.co.uk](https://www.kenreid.co.uk) โ Portfolio & blog
- [@kenreid.co.uk](https://bsky.app/profile/kenreid.co.uk) โ Bluesky
- [@DrKenReid](https://github.com/DrKenReid) โ GitHub