tubearchivist is a free, open source digital asset management (dam) project written in Python and released under GPL-3.0. It has 8,451 GitHub stars, 420 forks and 25 open issues, and was last pushed 21 days ago. On this registry it ranks #4 of 25 tracked projects in Digital Asset Management (DAM), with 5 head-to-head comparisons available. It gained 5 stars over the last 3 tracked days.

What is tubearchivist?

Tube Archivist is a self hosted YouTube media server that downloads videos with yt-dlp, indexes them with metadata from YouTube, and serves them back through a searchable web interface, built for people whose personal YouTube archive has grown past the point where folders and filenames still work.

What it is

Tube Archivist is a Python application in the Content & Publishing / Digital Asset Management category, released under GPL-3.0 and distributed as a Docker stack. It runs as a container alongside ElasticSearch, Redis and Nginx, so a self-hoster gets a web interface for subscribing to channels, pulling videos down with yt-dlp, indexing them, playing them back and tracking which ones have been watched.

The concrete problem it solves is stated plainly in its own README: once a YouTube video collection grows, it becomes hard to search and find a specific video. Tube Archivist replaces that manual hunt through downloaded files by indexing the collection with metadata pulled from YouTube, so videos become searchable, organised and playable offline through a convenient web interface rather than through a file browser.

Key capabilities

  • Subscribes to YouTube channels and pulls new videos automatically with yt-dlp, the same downloader the project names as its download engine.
  • Indexes the collection into ElasticSearch and exposes full search across it, rather than relying on filenames on disk.
  • Plays archived videos directly in the web interface, so watching does not require leaving the application.
  • Tracks viewed and unviewed videos, keeping a record of what has already been watched.
  • Ships a companion browser extension, Tube Archivist Companion, for Firefox and Chrome.
  • Offers Jellyfin and Plex plugins, so an existing media server library can include the archive.
  • Supports forwarded authentication in reverse proxies through TA_ENABLE_AUTH_PROXY, TA_AUTH_PROXY_USERNAME_HEADER and TA_AUTH_PROXY_LOGOUT_URL.
  • Accepts TA_PASSWORD and ELASTIC_PASSWORD with the _FILE suffix, so those secrets can be passed in as files instead of plain environment variables.

Who uses it and how

  • Self-hosters running Docker on their own hardware, with documented, user-provided instructions for Unraid, Synology and Podman installations.
  • Small testing setups on roughly 2GB of available memory, with a dual core, four-thread minimum; mid to large installations are expected to have around 4GB and preferably a quad core or better.
  • Households that already run Jellyfin or Plex and want archived YouTube content to appear inside that existing library rather than in a second interface.
  • Anyone who subscribes to channels and wants new uploads captured continuously instead of downloaded by hand.

Getting started

The project requires Docker. Copy the example docker-compose.yml from the repository, set the required environment variables — TA_HOST, TA_USERNAME, TA_PASSWORD, ELASTIC_PASSWORD, REDIS_CON and TZ — then bring the stack up; the documentation explains each variable, including the optional TA_PORT and TA_BACKEND_PORT overrides, in full.

How it compares

This registry lists no paid products that Tube Archivist is stated to replace, and the facts provided name no directly comparable peer project, so it stands alone here as a self hosted archive and media server for YouTube content. Its relationship to other tools is one of dependency and integration rather than competition: yt-dlp performs the downloads, ElasticSearch performs the indexing, and the Jellyfin and Plex plugins let the archive feed into media servers the user may already run.

When to use it — and when not to

A self-hoster has to operate the whole stack, meaning Docker plus ElasticSearch, Redis and Nginx, along with the environment variables and reverse-proxy configuration around them; the project gives that a memory floor of around 2GB and notes separate sections for known limitations, port collisions and common errors. It is a poor fit for anyone who wants a hosted service, does not want to run Docker, or expects a single-container install. The repository also carries 25 open issues, so some rough edges should be expected, and the README itself defers the detail to the external documentation site.

project readme (upstream, from github) — read inline

Tube Archivist more screenshots and video

tubearchivist-docker tubearchivist-github-star tubearchivist-github-forks tubearchivist-discord

Table of contents


Core functionality

Once your YouTube video collection grows, it becomes hard to search and find a specific video. That's where Tube Archivist comes in: By indexing your video collection with metadata from YouTube, you can organize, search and enjoy your archived YouTube videos without hassle offline through a convenient web interface. This includes:

  • Subscribe to your favorite YouTube channels
  • Download Videos using yt-dlp
  • Index and make videos searchable
  • Play videos
  • Keep track of viewed and unviewed videos

Resources

Installing

For minimal system requirements, the Tube Archivist stack needs around 2GB of available memory for a small testing setup and around 4GB of available memory for a mid to large sized installation. Minimal with dual core with 4 threads, better quad core plus. This project requires docker. Ensure it is installed and running on your system.

The documentation has additional user provided instructions for Unraid, Synology and Podman.

The instructions here should get you up and running quickly, for Docker beginners and full explanation about each environment variable, see the docs.

Take a look at the example docker-compose.yml and configure the required environment variables.

All environment variables are explained in detail in the docs here.

Both TA_PASSWORD and ELASTIC_PASSWORD can be suffixed with _FILE to allow passing in passwords as secrets. _FILE is a convention used by some images including ElasticSearch

TubeArchivist

Environment Var Value Required
TA_HOST Server IP or hostname http://tubearchivist.local:8000 Required
TA_USERNAME Initial username when logging into TA Required
TA_PASSWORD Initial password when logging into TA Required
ELASTIC_PASSWORD Password for ElasticSearch Required
REDIS_CON Connection string to Redis Required
TZ Set your timezone for the scheduler Required
TA_PORT Overwrite Nginx port Optional
TA_BACKEND_PORT Overwrite container internal backend server port Optional
TA_ENABLE_AUTH_PROXY Enables support for forwarding auth in reverse proxies Read more
TA_AUTH_PROXY_USERNAME_HEADER Header containing username to log in Optional
TA_AUTH_PROXY_LOGOUT_URL Logout URL for forwarded auth Optional
ES_URL URL That ElasticSearch runs on Optional
ES_DISABLE_VERIFY_SSL Disable ElasticSearch SSL certificate verification Optional
ES_SNAPSHOT_DIR Custom path where elastic search stores snapshots for master/data nodes Optional
HOST_GID Allow TA to own the video files instead of container user Optional
HOST_UID Allow TA to own the video files instead of container user Optional
ELASTIC_USER Change the default ElasticSearch user Optional
TA_LDAP Configure TA to use LDAP Authentication Read more
DISABLE_STATIC_AUTH Remove authentication from media files, (Google Cast...) Read more
TA_AUTO_UPDATE_YTDLP Configure TA to automatically install the latest yt-dlp on container start Optional
DJANGO_DEBUG Return additional error messages, for debug only Optional
TA_LOGIN_AUTH_MODE Configure the order of login authentication backends (Default: single) Optional
TA_LOGIN_AUTH_MODE value Description
single Only use a single backend (default, or LDAP, or Forward auth, selected by TA_LDAP or TA_ENABLE_AUTH_PROXY)
local Use local password database only
ldap Use LDAP backend only
forwardauth Use reverse proxy headers only
ldap_local Use LDAP backend in addition to the local password database

ElasticSearch

Environment Var Value Required
ELASTIC_PASSWORD Matching password ELASTIC_PASSWORD from TubeArchivist Required
http.port Change the port ElasticSearch runs on Optional

Update

Always use the latest (the default) or a named semantic version tag for the docker images. The unstable tags see CONTRIBUTING.md#beta-testing.

You will see the current version number of Tube Archivist in the footer of the interface. There is a daily version check task querying tubearchivist.com, notifying you of any new releases in the footer. After updating, check the footer to verify you are running the expected version.

  • This project is tested for updates between one or two releases maximum. Further updates back may or may not be supported. Ideally apply new updates at least once per month.
  • There can be breaking changes between updates, particularly as the application grows, new environment variables or settings might be required for you to set in the your docker-compose file. Always check the release notes: Any breaking changes will be marked there.
  • All testing and development is done with the Elasticsearch version number as mentioned in the provided docker-compose.yml file. This will be updated from time to time. Running an older version of Elasticsearch is most likely not going to result in any issues, but it's still recommended to run the same version as mentioned. Use bbilly1/tubearchivist-es to automatically get the recommended version.

Getting Started

  1. Go through the settings page and look at the available options. Particularly set Download Format to your desired video quality before downloading. Tube Archivist downloads the best available quality by default. To support iOS or MacOS and som

readme truncated — read the full docs on github

Frequently asked questions

Is tubearchivist free to use?

tubearchivist is open source under the GPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does tubearchivist do?

Your self hosted YouTube media server

What is tubearchivist written in?

tubearchivist is primarily written in Python. Its source is publicly available at https://github.com/tubearchivist/tubearchivist, and it has 8,451 GitHub stars.