# Tube Archivist — Self-Hosted YouTube Media Server > A self-hosted YouTube media server that downloads, indexes, and organizes YouTube videos. Tube Archivist provides a browsable archive with search, subscriptions, and playback. ## Install Save in your project root: # Tube Archivist — Self-Hosted YouTube Media Server ## Quick Use ```bash # Docker Compose (recommended) git clone https://github.com/tubearchivist/tubearchivist.git cd tubearchivist cp docker-compose.yml.example docker-compose.yml # Edit settings (passwords, paths) docker compose up -d # Access at http://localhost:8000 ``` ## Introduction Tube Archivist is a self-hosted application for downloading and managing YouTube videos as a personal media library. It uses yt-dlp for downloading, Elasticsearch for search and metadata indexing, and Redis for task queuing. The result is a browsable, searchable archive of YouTube content you control. ## What Tube Archivist Does - Downloads YouTube videos, channels, and playlists with configurable quality settings - Indexes all metadata (titles, descriptions, tags, subtitles) in Elasticsearch for full-text search - Manages subscriptions to YouTube channels with automatic download of new uploads - Provides a web-based media player with resume, playback speed, and subtitle support - Generates sponsor-block segment skipping using SponsorBlock community data ## Architecture Overview Tube Archivist is a Python Django application that coordinates several services. yt-dlp handles video downloading. Elasticsearch stores and indexes video metadata, channel info, and subtitles for search. Redis manages the task queue for background downloads and scans. The front end is a server-rendered Django template UI. Media files are stored on the local filesystem in an organized directory structure. ## Self-Hosting & Configuration - Requires Docker with three containers: Tube Archivist, Elasticsearch, and Redis - Configure download quality, format preferences, and subtitle languages in the web UI - Set media storage paths via Docker volume mounts - Schedule automatic downloads and channel scans with built-in task scheduler - Optional: integrate with Jellyfin or Plex via community plugins for unified media browsing ## Key Features - Full-text search across video titles, descriptions, subtitles, and channel names - Channel subscription management with automatic new video detection - Playlist archiving that preserves order and metadata - Built-in SponsorBlock integration for skipping sponsored segments - Video thumbnail and metadata caching for fast browsing ## Comparison with Similar Tools - **Jellyfin** — General media server that can play downloaded videos, but has no YouTube integration - **Invidious** — YouTube front end for privacy, streams but does not archive locally - **yt-dlp** — Command-line downloader without a media server UI or library management - **PeerTube** — Federated video hosting platform, not designed for YouTube archiving - **Stash** — Media organizer with different content focus, no YouTube-specific features ## FAQ **Q: How much storage does Tube Archivist require?** A: Storage depends on video quality and quantity. A 1080p video averages 1-3 GB per hour. The application itself and Elasticsearch index add minimal overhead compared to media files. **Q: Can I access my archive from mobile devices?** A: The web UI is responsive and works on mobile browsers. Community apps and Jellyfin/Plex integration provide additional mobile access options. **Q: Does Tube Archivist support subtitles?** A: Yes. It downloads subtitles (auto-generated and manual) and indexes them in Elasticsearch. You can search within subtitle text and display them during playback. **Q: How does the subscription feature work?** A: Add YouTube channel URLs in the subscriptions page. Tube Archivist periodically checks for new uploads and queues them for download based on your configured schedule and quality preferences. ## Sources - https://github.com/tubearchivist/tubearchivist - https://docs.tubearchivist.com --- Source: https://tokrepo.com/en/workflows/9bd08f11-3bca-11f1-9bc6-00163e2b0d79 Author: AI Open Source