SteamCloud Backups scans local Steam userdata folders and creates ZIP backups of each game's remote save directory.
- Reads settings from
config.yaml. - Scans Steam accounts under
<steam_path>/userdata. - Finds game save folders that contain a
remotedirectory. - Creates timestamped ZIP backups per game and Steam account.
- Resolves game names via Steam Store API when possible.
- Provides a Tkinter UI for scan, selection, backup, and settings updates.
main.pystarts the desktop UI (src.ui.run()).- Backups are stored under
<backup_dir>/<steam_id>/. - ZIP filename format:
<game_name>_<steam_id>_<YYYY.MM.DD_HH:MM>.zip - If game name lookup fails, filename uses
Unknown application. - Every run creates new ZIPs; old backups are not pruned.
- Scan is asynchronous (background thread), so the UI remains responsive while scanning.
- Python 3.9+
- Installed Steam client with local
userdata - Internet access (optional, only for game name lookup)
Python dependencies (from requirements.txt):
PyYAML==6.0.3Requests==2.32.5
pip install -r requirements.txtEdit config.yaml:
backup_dir: D:/Backups/Steam
steam_path: C:/Program Files (x86)/Steam
keep_versions: 5backup_dir: Folder where ZIP files are written.steam_path: Steam installation root (tool scans<steam_path>/userdata).keep_versions: Currently not used by the code.
Run from project root:
python main.pyAlternative:
python src/ui.pyExample console output:
✔ Backed up Portal 2 (AppID: 620) (SteamID: 7656119xxxxxxxxxx)
✔ Backed up Unknown application (AppID: 12345) (SteamID: 7656119xxxxxxxxxx)
main.py: App entrypoint (launches UI).src/config.py: Centralized config loading and validation.src/config_reader.py: Reads YAML config.src/steam_paths.py: Builds Steamuserdatapath.src/scanner.py: Detects save folders by account/AppID.src/steam_name_getter.py: Fetches game names from Steam API.src/zipper.py: Creates ZIP archives.src/ui.py: Tkinter UI (scan, select, backup, settings).
- Backup retention is not implemented (
keep_versionsis ignored). - No built-in validation for invalid
steam_pathor missing permissions. - API/network failures do not stop backup; they only affect displayed game names.
Scan Saves: Scans accounts/games and fills a tree view.Backup All: Backs up all discovered saves.Backup Selected: Backs up checked games only.Settings: Editbackup_dir,steam_path, andkeep_versionsin-app.- Progress bar, status text, and timestamped log panel.
See LICENSE.md.