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.