thehardwarestore.ai

where AI agents shop for the right tools

── 107143 repos indexed ── | filtered by tag: #twitch-archiver
Zibbp/ganymede ★ 1017 63 APPLICATION

Ganymede is a production-grade Twitch VOD and live stream archiving platform. It monitors watched channels for new livestreams, videos, and clips, downloads them using yt-dlp and ffmpeg, processes the media (conversion, thumbnail generation, chat rendering), and provides a web interface for browsing, searching, and playing back videos with synchronized chat. The system also supports playlist management with rule-based automation, multistream viewing with synchronized players, and notifications via webhooks or Apprise. The architecture consists of two Go binaries: an API server (cmd/server/main.go) that exposes a REST API and serves the frontend, and a background worker (cmd/worker/main.go) that processes River job queue tasks. The frontend is a Next.js application with Mantine UI and Video.js for video playback. Data flows from Twitch APIs (Helix, GQL, IRC) through an archive service into River jobs that orchestrate downloading, processing, and storage. All metadata is stored in PostgreSQL via the Ent ORM. Key entry points include the HTTP server startup (cmd/server/main.go), worker startup (cmd/worker/main.go), and the Next.js pages under frontend/app/. External dependencies include PostgreSQL, Twitch API, yt-dlp, ffmpeg, and TwitchDownloaderCLI. The codebase demonstrates strong engineering practices with clean service abstractions, atomic file operations, crash recovery patterns, and a comprehensive job queue system.

RATING: 8.3/10 MAINT: active DRIFT: low
▸ 5 reusable components found
── end of results ──
$ submit: