A Streamlit app that helps you discover games in your Steam library that you haven't played much. Perfect for when you can't decide what to play!
We all buy too many games and play too few. This tool helps you rediscover what you already own โ and maybe even finish it.
โPlay your backlog. You already paid for it.โ
- ๐ฏ Randomly select games from your Steam library
- โฑ๏ธ Filter by playtime (default: less than 2 hours)
- ๐ผ๏ธ Display game images and detailed information
- ๐ Show game ratings, genres, and system requirements
- ๐ Achievements: See your total and completed achievements for each game, with a progress bar (Online Mode only)
- ๐ View comprehensive game details including DRM, languages, and pricing
- ๐พ Offline Mode - Works without internet after initial setup
- ๐๏ธ Smart Caching - Automatically caches game data for faster loading
- ๐ฒ Exclude Rolled Games - Option to avoid repeating previously selected games
- โ๏ธ Collapsible Setup - Clean interface with setup hidden by default
- Python 3.7 or higher
- A Steam account
- Steam API key (only needed for initial setup)
- Your SteamID64
- Python 3.7 or higher installed on your system
- Git (optional, for cloning the repository)
Option A: Clone the repository (if you have Git)
git clone [email protected]:ALLATSEA27/steam-game-randomizer.git
cd steamrecommender
Option B: Download and extract
- Download the ZIP file from the repository
- Extract it to a folder on your computer
- Open terminal/command prompt and navigate to the extracted folder
# Create a virtual environment
python3 -m venv venv
# Activate the virtual environment
source venv/bin/activate
# Your prompt should now show (venv) at the beginning
# Create a virtual environment
python -m venv venv
# Activate the virtual environment
venv\Scripts\activate
# Your prompt should now show (venv) at the beginning
pip install -r requirements.txt
streamlit run cached_app.py
The app will open in your default web browser at http://localhost:8501
When you're done using the app, you can deactivate the virtual environment:
deactivate
- Go to Steam Community Developer Portal
- Sign in with your Steam account if not already signed in
- You'll see a page asking for your domain name
- For local use, enter:
localhost
or127.0.0.1
- Click "Register"
- Your API key will be displayed (it looks like:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
) - Important: Keep this key private and don't share it
- Copy the key for use in the app
- Go to SteamID.io
- Enter your Steam username or profile URL
- Copy the SteamID64 (the long number)
- Go to your Steam profile page
- Right-click on your profile and select "Copy Page URL"
- The URL will look like:
https://steamcommunity.com/profiles/76561198012345678/
- The number at the end is your SteamID64:
76561198012345678
- Open Steam
- Go to your profile
- Click "Edit Profile"
- Look for "Steam ID" in the profile settings
- Start the app by running
streamlit run cached_app.py
- Click "โ๏ธ Setup & Configuration" to expand the setup section
- Select "Online Mode" to fetch fresh data
- Enter your Steam API key (from the steps above)
- Enter your SteamID64 (from the steps above)
- Click "๐ Fetch Fresh Data" to load your game library
- Optionally click "๐ฅ Download All Game Details" to cache detailed information for offline use
For easier and more secure local use, you can create a .env
file in your project folder:
STEAM_API_KEY=your_steam_api_key_here
STEAM_ID64=your_steamid64_here
- The app will automatically load these values and pre-fill the input fields.
- Your
.env
file is private and should not be committed to git (it's in.gitignore
). - You can still edit the fields in the app if you want to use different credentials.
- Select "Offline Mode" in the setup section
- Enter your SteamID64 (no API key needed)
- Click the "๐ฒ" button to get a random game
- Adjust settings in the sidebar as needed
- ๐ฏ Randomizer Settings (in sidebar):
- Adjust max playtime filter (0-100 hours)
- Toggle "Exclude rolled games" to avoid repeats
- ๐๏ธ Cache Management (in sidebar):
- View cache statistics
- Clear cache if needed
- Reset rolled games list
- Refresh game details (Online Mode only)
- Purpose: Initial setup and data updates
- Requirements: Steam API key + SteamID64
- Features:
- Fetch fresh game data from Steam
- Update existing cached data
- Download all game details for offline use
- Refresh individual game details
- Purpose: Daily use after initial setup
- Requirements: SteamID64 only
- Features:
- Use cached game data (no internet required)
- Full randomizer functionality
- View all cached game details
- Perfect for quick game selection
- Make sure your Steam profile is set to public
- Verify your SteamID64 is correct
- Check that your API key is valid (Online Mode only)
- Verify your API key is correct
- Make sure you entered
localhost
when registering for the API key - Check your internet connection
- Switch to Online Mode and fetch data first
- Make sure you've successfully downloaded your game library at least once
- Try increasing the playtime limit using the sidebar slider
- Some games might not have playtime data if never launched
- Check if "Exclude rolled games" is filtering out too many games
- This is normal for some games - Steam doesn't have images for all games
- The app will still show all other game information
- Use the sidebar cache management tools
- Clear cache and re-download if needed
- Check cache statistics for troubleshooting
- Your Steam API key is only used locally and never stored
- Game data is cached locally on your machine
- No personal data is collected or transmitted
- The app runs entirely on your local machine
- Cache files are stored in a
cache/
folder in the app directory
- Basic Info: Name, playtime, app ID
- Media: Game header image with fallback options
- Ratings: Metacritic score, Steam recommendations count
- Achievements: Total and completed achievements with a progress bar (Online Mode only, if supported by the game)
- Details: Release date, genres, short description
- System: PC requirements (minimum/recommended), DRM notice, age rating
- Support: Languages, categories (Single-player, Multi-player, etc.)
- Pricing: Current price, sale information
- Platforms: Windows, Mac, Linux support
- Features: Controller support, cloud saves, family sharing, remote play
- Links: Direct link to Steam store page
- Playtime Filter: Adjustable slider (0-100 hours) in sidebar
- Exclude Rolled Games: Toggle to avoid repeating selections
- Session Persistence: Rolled games tracked across sessions
- Smart Caching: Game data cached for 7 days, details for 30 days
- Automatic Caching: Game lists and details cached automatically
- Cache Statistics: View file count and total size
- Cache Controls: Clear cache, refresh details, reset rolled games
- Offline Capability: Full functionality without internet after setup
Feel free to submit issues, feature requests, or pull requests to improve the app!
This project is open source and available under the MIT License.
Happy Gaming! ๐ฎ