unsubbed.co

Tube Archivist

Released under GPL-3.0, Tube Archivist provides organize, search, and enjoy your YouTube collection. Subscribe, download, and track viewed content on...

A self-hosted YouTube media server, honestly reviewed. No marketing fluff, just what happens when you try to own your video library.

TL;DR

  • What it is: A self-hosted YouTube archiving and media server — subscribe to channels, download videos via yt-dlp, index them with ElasticSearch, and play them through a web UI [GitHub README].
  • Who it’s for: Homelab enthusiasts, obsessive tutorial collectors, and parents who want a curated video library for their kids without YouTube’s recommendation algorithm involved [1][2].
  • Cost savings: YouTube Premium runs $13.99–$22.99/month for offline access and ad-free viewing. Tube Archivist runs on a $6–10/month VPS (or free on existing hardware) with no per-video limits [GitHub README].
  • Key strength: Full-text search across subtitles — find the exact video where someone explained a concept, even across hundreds of hours of archived content [1].
  • Key weakness: You are permanently dependent on yt-dlp staying ahead of YouTube’s bot detection. If Google gets serious about blocking scrapers, this tool stops working. No workaround exists for this [3][GitHub README].

What is Tube Archivist

Tube Archivist is a self-hosted application that turns your server into a private YouTube media server. You point it at YouTube channels you care about, it downloads the videos using yt-dlp, indexes the metadata and subtitles in ElasticSearch, and serves everything through a web interface where you can search, browse, and play.

The origin story is unusually honest. Creator Simon — a self-taught developer who started with Bash scripts after switching from Windows to Linux — built the first version because his local tutorial collection had grown unmanageable. He was piping find output to rofi to search filenames. That stopped working when the archive grew and landed on a network share. So he built something more complete [1].

The Python codebase interfaces directly with yt-dlp (also Python) using native data types, which keeps the download logic tightly integrated. ElasticSearch does the heavy lifting for full-text indexing — you can search subtitle text across your entire archive in milliseconds even over multiple gigabytes of raw text [1]. Redis handles the task queue for scheduled downloads.

The project sits at 7,686 GitHub stars. It has a browser extension for Firefox and Chrome that lets you queue a video for archival with a single click, and official integrations for Jellyfin and Plex if you want your archived YouTube content inside your existing media server [GitHub README].

The license is GPL-3.0, not MIT. This matters if you’re thinking about embedding this in something commercial — you can’t without open-sourcing the derivative work.


Why people choose it

Two distinct audiences show up consistently in the community content around this project.

The archivist. People who download YouTube content before it disappears — channels get deleted, videos get pulled, creators die or go private. Having a local copy means you own the content you care about. The full-text subtitle search is what differentiates Tube Archivist from a raw yt-dlp script: you can type a phrase you half-remember from a video you watched two years ago and find it instantly [1].

The parent. One of the more detailed real-world accounts describes using Tube Archivist specifically to curate a video library for young children — download the Minecraft channels dad approved, serve them through an Echo Show in the playroom, keep the algorithm entirely out of the picture. The parent controls what’s in the library; kids can’t browse to anything outside it [2]. This is a surprisingly strong use case that standard media server solutions don’t handle well.

What both audiences have in common is frustration with YouTube itself: the recommendation algorithm pushing related content, ads interrupting videos, the constant threat of content disappearing, offline access requiring a subscription. Tube Archivist solves all of these in a single install — but the trade is operational complexity and a dependency on yt-dlp’s ongoing cat-and-mouse game with YouTube’s bot detection [3][GitHub README].


Features

Core functionality:

  • Subscribe to YouTube channels and download new videos on a schedule [GitHub README]
  • Manual downloads of individual videos by URL [GitHub README]
  • ElasticSearch-powered full-text search across video titles, descriptions, and subtitles — including millisecond search over multi-GB subtitle archives [1]
  • Track viewed/unviewed status per video [GitHub README]
  • Built-in web video player [GitHub README]

Browser extension:

  • Companion extension for Firefox and Chrome
  • Single-click queuing of a video for download from the YouTube page [GitHub README]

Third-party media server integration:

  • Jellyfin plugin: exposes your Tube Archivist archive inside Jellyfin [GitHub README]
  • Plex plugin: same for Plex [GitHub README]
  • Can also be accessed directly from the TA web UI on tablets, smart displays, or any device with a browser [2]

Access control:

  • LDAP authentication support for multi-user setups [GitHub README][3]
  • Forward auth proxy support (Authelia, Authentik) [GitHub README]
  • Cast support (Chromecast) [3]

Scheduler and automation:

  • Configurable scheduled download tasks [GitHub README]
  • Prometheus/OpenMetrics export for dashboards [3]
  • REST API for external automation [GitHub README][3]

Deployment targets:

  • Docker Compose (primary)
  • Unraid community app
  • Synology NAS (with caveats, see below)
  • Podman
  • TrueNAS

Pricing: SaaS vs self-hosted math

Tube Archivist has no SaaS tier and charges nothing. It’s GPL-3.0 open source, supported by donations. There is no premium version, no commercial license, no cloud offering [GitHub README].

The relevant comparison is what you’re replacing:

YouTube Premium: $13.99/month individual, $22.99/month family. Gives you ad-free viewing, background playback on mobile, and downloads within the app (DRM-protected, expire if you cancel, can’t be played outside the YouTube app).

Self-hosted Tube Archivist:

  • Software: $0
  • VPS to run it: $6–20/month depending on archive size and RAM (4GB RAM minimum for a mid-sized install) [GitHub README]
  • Storage: separate from RAM — a year of moderate downloading can run 1–5TB depending on quality settings and channel volume; cloud storage or local NAS costs vary
  • Your time to set up and maintain

The key difference from YouTube Premium is ownership. Downloaded files in Tube Archivist are actual MP4/MKV files on your disk. They don’t expire, they don’t require an internet connection, and they don’t disappear if you cancel a subscription. The tradeoff is that you can’t watch them on your phone with the YouTube app — you need a browser or a Jellyfin/Plex client.

If you’re already paying YouTube Premium primarily for offline access and ad-free viewing, a $6 VPS running Tube Archivist returns that $14–23/month in perpetuity once you’ve gotten past the setup.


Deployment reality check

The install path is Docker Compose with three containers: the main Tube Archivist app, ElasticSearch, and Redis. All three need to be running simultaneously [GitHub README].

Minimum hardware: 2GB RAM for testing, 4GB for a real installation. Dual-core with 4 threads minimum; quad-core recommended [GitHub README]. ElasticSearch is the hungry one — it’s not optional, it’s what powers all the search functionality.

What you actually need:

  • A Linux machine with Docker installed (VPS, homelab server, NAS, Raspberry Pi 4 with enough RAM)
  • Docker Compose
  • Volume mounts for: media files, ElasticSearch data, Redis data, TA cache
  • A reverse proxy (Caddy or nginx) if you want to access it outside your local network

What can go sideways:

Synology compatibility: Synology’s old kernel (4.4.x) doesn’t include the kernel modules newer ElasticSearch versions require. You’ll see seccomp unavailable errors. The workaround is pinning ElasticSearch to version 8.14.3, which is a fragile solution that may break when Tube Archivist updates require newer ES features [5].

yt-dlp dependency: This is the existential risk. Tube Archivist is built on top of yt-dlp, which works by reverse-engineering YouTube’s download mechanism. YouTube periodically changes things to break it; yt-dlp maintainers patch, YouTube changes again. This game has been going on for years and yt-dlp has stayed ahead — but there’s no guarantee. LibreSelfHosted’s listing explicitly flags that Tube Archivist “depends on a proprietary service outside the user’s control” [3]. If YouTube commits to blocking yt-dlp, your entire archive stops growing.

Storage planning: The tool doesn’t cap download quality. If you subscribe to channels that post in 4K and download everything, storage grows fast. Plan your volume mounts with room to expand.

Project maintenance: Simon mentioned in the developer interview that the hardest part of the project isn’t the programming — it’s managing a suddenly popular open source project: roadmap decisions, pull requests, bug reports, scope definition. The project has stayed active (docs note version checks, regular releases), but it’s essentially a one-maintainer project supported by donations [1].

Realistic time estimate: 45–90 minutes for someone comfortable with Docker Compose. For a first-time Docker user following the docs: 3–5 hours including debugging, volume permissions, and getting the reverse proxy working.


Pros and cons

Pros

  • Full-text subtitle search. This is the feature that separates it from “just running yt-dlp in a cron job.” Search by what was said, not just video titles [1].
  • You own the files. MP4/MKV files on your disk. No DRM, no expiry, no vendor lock-in [GitHub README].
  • Replaces YouTube Premium’s offline access without per-device limits or DRM restrictions.
  • Parental control use case. Curate exactly what channels are available; no algorithm, no related videos, no ads [2].
  • Jellyfin and Plex integration. If you already have a media server, your YouTube archive joins it [GitHub README].
  • Browser extension makes one-click archival as easy as bookmarking [GitHub README].
  • LDAP + forward auth support for multi-user homelab setups [3][GitHub README].
  • Active community. Discord server, dedicated subreddit, Unraid and Synology install guides [GitHub README].
  • Free, no subscriptions, donation-supported. The developer is transparent about being funded by users, not a commercial entity [1][GitHub README].

Cons

  • yt-dlp dependency is an existential risk. The tool cannot function without yt-dlp staying ahead of YouTube’s bot detection. This is not a theoretical risk — it has caused temporary outages in the past [3].
  • ElasticSearch is heavy. Requiring 2–4GB RAM for search on a personal video archive is a lot. You cannot swap it out for SQLite [GitHub README].
  • Three-container setup. Main app + ElasticSearch + Redis. More moving parts than most self-hosted tools. More things to break, more things to update.
  • GPL-3.0, not MIT. Can’t embed in a commercial product without open-sourcing it. Not a concern for personal use, but worth knowing.
  • Synology compatibility is rocky. Kernel version conflicts with newer ElasticSearch; workaround is fragile [5].
  • One primary maintainer. Not a company, not a YC-backed startup — a self-taught developer building what they needed and maintaining it under community pressure [1]. Long-term sustainability depends on continued donations and volunteer contributors.
  • No mobile app. You access it via browser. On mobile this works but it’s not a native app experience. Jellyfin/Plex clients help if you use those integrations.
  • Download speed is limited by YouTube. You’re not downloading from a CDN optimized for bulk pulls — you’re scraping YouTube. Large backcatalog downloads take time.

Who should use this / who shouldn’t

Use Tube Archivist if:

  • You watch YouTube tutorials regularly and want to own a searchable archive that doesn’t disappear when a creator deletes their channel.
  • You have kids and want to curate a video library they can access without touching the YouTube interface or algorithm.
  • You’re already running a homelab with Jellyfin or Plex and want YouTube channels integrated.
  • You’re paying for YouTube Premium primarily for offline access and want to eliminate that recurring bill.
  • You’re comfortable with Docker Compose and have a machine with at least 4GB RAM available.

Skip it if:

  • You want YouTube on your phone with background playback and seamless sync across devices — use YouTube Premium, it’s better for mobile.
  • Your server has less than 4GB RAM — ElasticSearch will make your life miserable.
  • You run on Synology — the kernel compatibility issues make this more frustrating than it’s worth unless you’re willing to pin ElasticSearch versions indefinitely [5].
  • You’re looking for a general-purpose video server for local files — Jellyfin or Plex is the right tool; Tube Archivist is specifically for YouTube content.
  • The yt-dlp dependency risk concerns you — if YouTube breaks scraping tomorrow, your archive stops growing and there’s no fallback.

Alternatives worth considering

  • Raw yt-dlp + a cron job: Free, lighter, no RAM requirements, no web UI. If you just want files on disk and don’t need search, this gets you 80% there with 5% of the complexity.
  • FreeTube: Desktop app for ad-free YouTube browsing with a subscription feed. No downloading to a server, but good for ad-free viewing without a subscription [not in provided sources].
  • Invidious: Self-hosted YouTube frontend that strips ads and tracking but doesn’t download or archive — streaming only. Much lighter than Tube Archivist.
  • Jellyfin: If you want a full media server for your own video files plus YouTube content, Jellyfin with the TA plugin is a good combination. Standalone, Jellyfin doesn’t archive YouTube.
  • Plex: Same story as Jellyfin. Commercial-but-free-tier media server. Tube Archivist has an official Plex integration [GitHub README].
  • ArchiveBox: Broader web archiving tool (not video-specific) that also uses yt-dlp for YouTube content. Better if you want to archive web pages, tweets, and videos together [4].

The realistic decision: if you want a managed, searchable YouTube archive with a decent UI, Tube Archivist is essentially the only serious self-hosted option in this category. The alternatives are either raw CLI tools or general-purpose archivers with worse YouTube-specific features.


Bottom line

Tube Archivist does exactly what it says: it turns your server into a private YouTube media server. The subtitle search is genuinely useful, the Jellyfin/Plex integrations are practical, and the use case for curated kids content is more compelling than it sounds until you’ve dealt with the YouTube algorithm pointing a six-year-old at conspiracy videos. The setup is more involved than a single-container install — ElasticSearch and Redis add real hardware requirements and operational surface area. And the yt-dlp dependency is a real risk you should think about before building a serious archive on top of this: you’re building on a scraper, not an API, and that’s always fragile. For homelab enthusiasts who want to own their video libraries and have the hardware to run it, the math is straightforward. For anyone looking for a lighter or more reliable path to ad-free YouTube viewing, YouTube Premium or Invidious are easier answers.


Sources

  1. Simon (Tube Archivist developer), noted.lol“Dev Debrief #2: An Interview With the Developer of Tube Archivist”. https://noted.lol/dev-debrief-tube-archivist/
  2. noted.lol“How I Control What Media My Kids Watch Using Tube Archivist”. https://noted.lol/how-i-control-what-media-my-kids-watch-using-tube-archivist/
  3. LibreSelfHosted“Tube Archivist project listing”. https://libreselfhosted.com/project/tube-archivist/
  4. SaaSHub“Self hosted YouTube media server – Tube Archivist” (Hacker News discussion summary). https://www.saashub.com/alternatives/post-news-ycombinator-2023-07-16-self-hosted-youtube-media-server-tube-archivist-2293351
  5. Tube Archivist Documentation“Synology Installation Instructions”. https://docs.tubearchivist.com/installation/synology/

Primary sources:

Features

Authentication & Access

  • LDAP / Active Directory

Integrations & APIs

  • Plugin / Extension System