{"id":26519906,"url":"https://github.com/oblassgit/refurbished-steam-deck-notifier","last_synced_at":"2026-02-17T00:02:27.409Z","repository":{"id":282550125,"uuid":"948949081","full_name":"oblassgit/refurbished-steam-deck-notifier","owner":"oblassgit","description":"Script to track stock changes and notify via discord webhook.","archived":false,"fork":false,"pushed_at":"2025-07-02T12:07:20.000Z","size":86,"stargazers_count":36,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-23T13:38:23.148Z","etag":null,"topics":["notifications","steam","steam-api","steamdeck"],"latest_commit_sha":null,"homepage":"https://oblassgit.github.io/refurbished-steam-deck-notifier/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oblassgit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"looti","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2025-03-15T10:29:20.000Z","updated_at":"2025-09-18T23:32:37.000Z","dependencies_parsed_at":"2025-09-23T13:32:47.779Z","dependency_job_id":null,"html_url":"https://github.com/oblassgit/refurbished-steam-deck-notifier","commit_stats":null,"previous_names":["oblassgit/refurbished-steam-deck-notifier"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/oblassgit/refurbished-steam-deck-notifier","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oblassgit%2Frefurbished-steam-deck-notifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oblassgit%2Frefurbished-steam-deck-notifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oblassgit%2Frefurbished-steam-deck-notifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oblassgit%2Frefurbished-steam-deck-notifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oblassgit","download_url":"https://codeload.github.com/oblassgit/refurbished-steam-deck-notifier/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oblassgit%2Frefurbished-steam-deck-notifier/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29525459,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T21:45:09.491Z","status":"ssl_error","status_checked_at":"2026-02-16T21:44:58.452Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["notifications","steam","steam-api","steamdeck"],"created_at":"2025-03-21T11:35:00.700Z","updated_at":"2026-02-17T00:02:27.292Z","avatar_url":"https://github.com/oblassgit.png","language":"Python","funding_links":["https://ko-fi.com/looti","https://ko-fi.com/Y8Y41BZ8SM"],"categories":[],"sub_categories":[],"readme":"[![Latest Release](https://img.shields.io/github/v/release/oblassgit/refurbished-steam-deck-notifier?include_prereleases)](https://github.com/oblassgit/refurbished-steam-deck-notifier/releases)\n[![Python Version](https://img.shields.io/badge/python-3.8%2B-blue.svg)](https://www.python.org/)\n[![License](https://img.shields.io/github/license/oblassgit/refurbished-steam-deck-notifier)](https://github.com/oblassgit/refurbished-steam-deck-notifier/blob/main/LICENSE)  \n[![GitHub Stars](https://img.shields.io/github/stars/oblassgit/refurbished-steam-deck-notifier?style=social)](https://github.com/oblassgit/refurbished-steam-deck-notifier/stargazers)\n[![Forks](https://img.shields.io/github/forks/oblassgit/refurbished-steam-deck-notifier?style=social)](https://github.com/oblassgit/refurbished-steam-deck-notifier/network/members)\n[![Discord](https://img.shields.io/discord/1142517154370043974?label=Discord\u0026logo=discord\u0026style=flat)](https://discord.gg/5gpFTMkvJn)\n[![Ko-fi](https://img.shields.io/badge/Buy%20me%20a%20coffee-Ko--fi-FF5E5B?logo=kofi\u0026logoColor=white\u0026style=flat)](https://ko-fi.com/looti)\n# Refurbished Steam Deck Notifier\n\nThis script checks the availability of refurbished Steam Decks on Steam and sends notifications to a specified Discord webhook. It queries Steam's API and compares the current stock status with previously stored values.\n\n## 🚀 Features\n\n* Checks the availability of refurbished Steam Decks for a configurable country\n* Sends notifications via a **Discord webhook** when stock availability changes\n* Supports different Steam Deck models (LCD \u0026 OLED versions)\n* Prevents duplicate notifications by storing the last known stock status\n* **Optional CSV logging** for availability statistics\n* **Configurable Discord role pings** via JSON file\n* **Command-line arguments** for easy configuration\n* **Prebuilt executables** for users who don’t want to install Python\n\n## 📋 Requirements (for Python script users)\n\n### Install Dependencies\n\nEnsure you have **Python 3.x** installed. Then, install the required dependencies using:\n\n```bash\npip install requests discord-webhook\n```\n\n## 🛠 Setup \u0026 Usage\n\n### Option 1: Use the Prebuilt Executable (No Python Needed)\n\nDownload the prebuilt executable for your platform (Windows, Linux, etc.). The file is typically named:\n\n```\nsteam_deck_notifier.exe (Windows)\nsteam_deck_notifier (Linux/macOS)\n```\n\n#### How to Run\n\nRun it via terminal/command prompt:\n\n```bash\n./steam_deck_notifier --webhook-url \"https://discord.com/api/webhooks/YOUR_WEBHOOK\"\n```\n\nYou can pass the same arguments as you would for the Python version.\n\n### Option 2: Run the Python Script\n\n```bash\npython steam_deck_checker.py --webhook-url \"https://discord.com/api/webhooks/YOUR_WEBHOOK\"\n```\n\n### Command Line Arguments\n\n* `-h`: Provides list of possible Arguments\n* `--webhook-url`: Discord webhook URL for notifications (**required**)\n* `--country-code`: Country code for Steam API (default: `DE`, **important**)\n* `--role-mapping`: JSON file containing Discord role mappings (optional)\n* `--csv-dir`: Directory path for daily CSV log files (optional)\n\n### Full Example\n\n```bash\npython steam_deck_checker.py \\\n  --country-code US \\\n  --webhook-url \"https://discord.com/api/webhooks/YOUR_WEBHOOK\" \\\n  --role-mapping roles.json \\\n  --csv-dir csv-logs\n```\n\n### Discord Role Mapping (Optional)\n\nCreate a `roles.json` file like this to ping specific Discord roles when stock is available:\n\n```json\n{\n  \"903905\": \"1343233406791716875\",\n  \"903906\": \"1343233552896229508\",\n  \"903907\": \"1343233731795881994\",\n  \"1202542\": \"1343233909655343234\",\n  \"1202547\": \"1343234052957802670\"\n}\n```\n\n**Format:** `\"package_id\": \"discord_role_id\"`\n\n### Country Codes\n\nFind valid country codes [here](https://github.com/RudeySH/SteamCountries/blob/master/json/countries.json)\n\n## 💪 Steam Deck Models Monitored\n\nThe script checks availability for these models:\n\n* **64GB LCD** (Package ID: 903905)\n* **256GB LCD** (Package ID: 903906)\n* **512GB LCD** (Package ID: 903907)\n* **512GB OLED** (Package ID: 1202542)\n* **1TB OLED** (Package ID: 1202547)\n\n## 🔧 How It Works\n\n1. Requests stock status for Steam Deck models via Steam’s API\n2. Compares new status with the last known state stored in text files\n3. Sends a Discord notification if availability changes\n4. Optionally pings configured roles via `roles.json`\n5. Optionally logs the check results to a CSV file\n\n## 📊 CSV Logging\n\nWhen using `--csv-dir`, the script writes one CSV file for each day to the specified directory, with these fields:\n\n* `unix_timestamp`: Time of check\n* `storage_gb`: 64, 256, 512, or 1024\n* `display_type`: LCD or OLED\n* `package_id`: Steam product identifier\n* `available`: `True` or `False`\n\n## ⏲️ Running Periodically\n\nThis script/executable **does not run continuously**. Use cron (Linux/macOS) or Task Scheduler (Windows) to automate execution.\n\n### Example (Linux/macOS)\n\nEdit your crontab with:\n\n```bash\ncrontab -e\n```\n\nAdd this line to check every 3 minutes:\n\n```bash\n*/3 * * * * /path/to/steam_deck_notifier --webhook-url \"YOUR_WEBHOOK\" \u003e\u003e /path/to/logfile.log 2\u003e\u00261\n```\n\n## 📦 Dependencies \u0026 Attribution\n\nThis project uses the excellent [**python-discord-webhook**](https://github.com/lovvskillz/python-discord-webhook) library by [lovvskillz](https://github.com/lovvskillz)\nLicensed under the MIT License.\n\nIt also makes use of Valve’s public Steam Store API — specifically the  \n[`CheckInventoryAvailableByPackage`](https://api.steampowered.com/IPhysicalGoodsService/CheckInventoryAvailableByPackage/v1?origin=https:%2F%2Fstore.steampowered.com) endpoint ([documentation](https://steamapi.xpaw.me/#IPhysicalGoodsService)). Data and trademarks belong to [Valve Corporation](https://www.valvesoftware.com/), owners of Steam and Steam Deck.\n\nBig thanks to all contributors and maintainers of the open-source packages used in this project.\n\n## ❤️ Support\n\nIf this project helps you, consider supporting via [**Ko-fi**](https://ko-fi.com/Y8Y41BZ8SM)\n\n## 🥇 Special Thanks\n\nHuge thanks to [leo-petrucci](https://github.com/leo-petrucci) for helping improve the codebase and guiding proper Steam API usage!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foblassgit%2Frefurbished-steam-deck-notifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foblassgit%2Frefurbished-steam-deck-notifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foblassgit%2Frefurbished-steam-deck-notifier/lists"}