TwitchArchivist
Windows service that archives Twitch VODs automatically after each stream
About
TwitchArchivist is a Windows-oriented ASP.NET Core application that watches Twitch channels through EventSub, queues an archive job when a stream ends, and downloads the VOD with TwitchDownloaderCLI. Channel-to-directory mappings and jobs are tracked in SQLite, and a built-in localhost web UI handles mappings, diagnostics, logs, and job history. It runs as a Windows Service in production.
Features
- Listens for Twitch stream.online and stream.offline EventSub events
- Queues archive jobs when a stream ends and waits for the VOD to become discoverable
- Downloads VODs by invoking an existing TwitchDownloaderCLI installation, with one-click managed setup from the diagnostics page
- Channel-to-directory mappings in SQLite with optional filename aliases and Helix-backed login autocomplete
- Optional auto-prune of older successful VODs per channel, with an additional gzip retention tier
- Localhost web UI: dashboard, channels, jobs, diagnostics, and logs pages
- Health and runtime JSON endpoints (/healthz, /api/runtime-status)
- EventSub transport via direct WebSocket or conduit-backed WebSocket
Platforms
- Windows service
- Web UI (localhost)
Tech stack
- C#
- ASP.NET Core 10
- EF Core
- SQLite
- Razor Pages
- Twitch EventSub/Helix
- TwitchDownloaderCLI