A desktop tool that generates animated line chart videos comparing Steam game player counts over time. Output is a 9:16 MP4 sized for TikTok, Instagram Reels, and YouTube Shorts.
- Type two to five Steam game names; an autocomplete picks the app ID from a local cache.
- The tool fetches
steamcharts.com/app/{appid}for each game and parses the monthly player count table. - An animated line chart renders to canvas, drawing left to right month by month, with a ranked label stack on the right.
- Frames are written to disk and encoded to MP4 with a bundled ffmpeg.
| Area | Technology |
|---|---|
| Shell | Electron |
| Frontend | Vanilla JavaScript, HTML, CSS (no build step) |
| Chart rendering | D3 scales on Canvas |
| Data fetching | Node.js fetch in main process, exposed via IPC |
| HTML parsing | cheerio |
| Steam app cache | better-sqlite3 |
| Video export | ffmpeg-static + fluent-ffmpeg |
| Packaging | electron-builder |
main.js Electron main process entry
preload.js contextBridge IPC exposure
/main
steamcharts.js HTTP fetch + cheerio parsing
steam-apps.js SQLite cache + autocomplete search
ffmpeg-export.js frame writing + ffmpeg invocation
/renderer
index.html
app.js UI logic
chart.js drawFrame(progress)
animation.js preview loop
export.js frame capture orchestration
style.css
npm install
npm startThe postinstall hook rebuilds better-sqlite3 against Electron's Node version.
- 1080 × 1920, 30fps
- H.264,
yuv420p, CRF 18 +faststartmetadata- Silent audio track (TikTok/Instagram require an audio stream)
Steamcharts has no public API and is operated by one person. The fetcher caches results for 30 days per app, rate-limits to one request every two seconds, identifies itself in the User-Agent, and backs off exponentially on HTTP 429. See claude.md for the full rules.
Pre-MVP. See the build order and MVP checklist in claude.md.
GPL v3. See LICENSE.
You're free to download, use, fork, and modify this software. If you redistribute it (modified or not), you must do so under GPL v3 and make the source available. This prevents closed-source commercial repackaging.