TubeArchivist is a self-hosted YouTube media server that downloads, indexes, and serves YouTube video content. In production, it runs as a Docker-based stack with a Django REST API backend, React/TypeScript frontend, Celery task queue, Redis broker, and Elasticsearch for metadata storage and full-text search. The system subscribes to YouTube channels and playlists via yt-dlp, extracts comprehensive metadata (including subtitles, comments, SponsorBlock segments, and thumbnails), and provides a web UI for browsing, searching, streaming video, and managing downloads. It supports multiple authentication modes (single user, LDAP, forward proxy), scheduled tasks for rescanning subscriptions and backups, and integrates with Apprise for notifications and a membership/SponsorBlock API for ad-skipping. The architecture follows a modular Django app pattern (video, channel, playlist, download, task, appsettings, user, stats) with consistent use of base views, serializers, and search processors. The frontend uses Zustand for state management and a custom API client with CSRF handling. The codebase is actively maintained with comprehensive test coverage and CI/CD pipelines.
Ganymede is a media management system focused on archiving and managing Twitch content (VODs, live streams, clips) with a Go backend using Ent ORM, Echo framework, and River job queue, and a Next.js frontend with Mantine UI. It provides video archiving, playlist management, user authentication, API keys, and administrative interfaces. The system processes media through a pipeline involving yt-dlp, FFmpeg, and TwitchDownloaderCLI, storing metadata in PostgreSQL and files on disk. It includes features like chat archiving, chapter detection, muted segment detection, and rule-based playlist automation.