Your self hosted YouTube media server

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

Browser Extension: Tube Archivist Companion

tubearchivist-chrome tubearchivist-firefox

Project Documentation


Core functionality

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

Problem Description

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.

Latest Release:

Release tag: v0.4.9

Release date: 2024-07-15

Project updates

  • This ships the latest fixes for channel extractions by the amazing yt-dlp team.
  • See below to manually trigger a refresh of your failed channels.
  • Some users have reported problems for index mapping updates, particularly on bigger archives. To counteract issues like that, increase the memory limit defined in ES_JAVA_OPTS for ES so there is enough space to sync the index in bulk.
  • That is also represented in the official docker-compose.yml file, make the same changes as here.
  • If you maintain any installation help, guides, templates or similar, please update it there too.
  • Ideally make the change first before applying the update.
  • This will trigger a rebuild for the video and channel indexes at first start, as always this should be mostly automatic.
  • If you encounter any problems, see here.
  • This will probably be the last release for some time. We’ll make a cut here to start refactoring things in the backend, and rewrite the frontend in a modern JS framework. Check the open issues and reach out if you want to help with that process


  • Added per channel page size, aka deactivating shorts or streams per channel, docs, by @Boo1098
  • Added retry logic for failed download tasks.


  • Changed behavior when changing the TZ (Time Zone) environment variable. Existing schedules will now get changed to use the new TZ value.


  • Fixed error when adding video not part of a channel, #741
  • Fixed error when a previously failed download would raise an incorrect FileNotFoundError, #752
  • Fixed issue allowing retrying from cache on previously failed download.
  • Fixed issue where version check task would never trigger depending on your TZ value and uptime.

Manual updates

As yt-dlp fixed all issues with channel extraction, you can run trigger a reindex for channels that have failed to index properly before, run python ta_fix_channels in your Tube Archivist container, e.g.:

bash docker exec -it tubearchivist python ta_fix_channels This will scan your channels and add faulty channels to the regular reindex queue. That should return in a few seconds, you will see ✓ task queued. Then you can monitor the reindex progress on your settings page and in your docker logs.