Skip to main content

Tube Archivist

A self-hosted YouTube archive with search and media management.

About

Tube Archivist is a self-hosted application for downloading, indexing, and managing YouTube videos. It uses Elasticsearch for full-text search across your archived content and provides a Netflix-style web UI for browsing channels and videos. Self-hosting gives you a permanent, searchable personal archive of YouTube content independent of YouTube's availability.

AlternativeTo

Cloud Hosted

ToolOpen SourceFree TierMonthly Cost
YouTube PremiumNoNoFrom $13.99/mo

Self Hosted

ToolOpen SourceFull FeaturesNotes
yt-dlpYesYesCLI only; no web UI or indexing
InvidiousYesYesProxies YouTube; does not archive locally

Installation

From kustomize build k8s/apps/talos/tube-archivist:

  • Deployments: tubearchivist (main app), archivist-es (Elasticsearch), and Valkey (Redis)
  • Images: bbilly1/tubearchivist (pinned by digest), bbilly1/tubearchivist-es (custom ES), valkey/valkey:9.0.3-alpine
  • Storage: Longhorn PVC (cache) for Elasticsearch data; NFS PVs from TrueNAS for downloads and videos
  • Config: ES_URL, REDIS_CON, HOST_UID, HOST_GID, TA_HOST from env/secret
  • Networking: ClusterIP services for app and ES; HTTPRoute via gateway

Administration

  • Backups: k8up Schedule backs up Elasticsearch Longhorn PVC to Hetzner S3
  • OpenID/SSO: No OIDC configuration present in manifests
  • Security: Secrets SOPS-encrypted with age; NFS mounts from TrueNAS

Usage

Subscribe to YouTube channels in the UI and trigger downloads. Tube Archivist queues downloads via Redis and stores videos on the NFS share. Search your archive using the Elasticsearch-backed full-text search. Browser extension can queue videos from YouTube directly.

Metadata

Kubernetes Metadata
  • Image: bbilly1/tubearchivist@sha256:dfe723cf008520e1758ecc3e59e6ea8761dd10d5bb099cd87289e80f5bd66567
  • Image: bbilly1/tubearchivist-es@sha256:9da63fb1973ec3d57daf6916be948eddd0d8a404cc8e447c938480c85fe2c554
  • Image: valkey/valkey:9.0.3-alpine@sha256:e1095c6c76ee982cb2d1e07edbb7fb2a53606630a1d810d5a47c9f646b708bf5