// the find
Zibbp/ganymede
Twitch VOD and Live Stream archiving platform. Includes a rendered and real-time chat for each archive.
Ganymede is a self-hosted Go/Next.js platform for archiving Twitch VODs and live streams, with a rendered, replayable chat alongside the video. It's aimed at streamers or communities who want a permanent, self-owned copy of their content and chat history rather than relying on Twitch's retention window.
Files are written in a plain directory structure that's viewable without Ganymede running, which is the right call for anything marketed as long-term archival. Real-time chat playback synced to the VOD is a real feature, not a checkbox — most archivers punt on chat entirely. It builds on TwitchDownloader and yt-dlp instead of reimplementing Twitch's download quirks, and the data layer is ent-generated rather than hand-rolled SQL. SSO/OIDC, webhook notifications, and a recoverable queue system suggest this has actually been run in production, not just demoed.
Live capture relies on FFmpeg progress-based stall detection with a tunable timeout — the existence of dedicated env vars just to tweak that threshold suggests it's been a recurring source of false stops/flaky captures. Storage is entirely the operator's problem: 50GB+ minimum, no built-in retention or pruning policy, so a 'watch this channel' setup can quietly grow unbounded. First boot ships with admin/admin and the security step is 'remember to change it' — an easy way to expose an open archive if someone skips step 5. No mention of transcoding to reduce storage footprint beyond raw custom FFmpeg params, so there's real infra work before this scales past a hobby deployment.