Stream toolLive

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