Introduction

Manage your kids’ viewing choices at home effortlessly with Tube Archivist, your very own self-hosted YouTube media server. When you work from home, it’s crucial to have a peaceful environment, and providing suitable content for your children during work hours is key. However, letting them roam freely on YouTube wasn’t an option for us. We needed a solution that granted us greater control, ensuring they only watched appropriate videos.

Introducing Tube Archivist, the game-changer in our household when it comes to kids’ content consumption. Tube Archivist is a convenient application that allows you to download and privately enjoy your favorite YouTube subscriptions and channels, free from ads and irrelevant content. It also serves as a fantastic way to keep your kids entertained while you focus on your work.

With Tube Archivist, you have the flexibility to select which channels you wish to download. You can opt for manual or automatic downloads based on your preferences. Personally, what sold me on this application was the ability to browse the channels and see the latest videos available. Tube Archivist provides complete control over the content you choose to save.

tube-archivist

You can access the downloaded videos through popular media servers such as Plex, Emby, or even Tube Archivist’s own built-in video player. All of this is made possible by hosting Tube Archivist on my Proxmox server using Docker.

Whether you’re a parent seeking better control over your children’s viewing habits or someone interested in self-hosting and searching for an application like Tube Archivist for different purposes, this is the solution you’ve been looking for.

Installation

You can find the installation from the author here.

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.

I used their docker-compose file and changed it after my needs:

version: '3.3'

services:
  tubearchivist:
    container_name: tubearchivist
    restart: unless-stopped
    image: bbilly1/tubearchivist
    ports:
      - 8000:8000
    volumes:
      - media:/youtube
      - cache:/cache
    environment:
      - ES_URL=http://archivist-es:9200     # needs protocol e.g. http and port
      - REDIS_HOST=archivist-redis          # don't add protocol
      - HOST_UID=1000
      - HOST_GID=1000
      - TA_HOST=tubearchivist.local         # set your host name
      - TA_USERNAME=tubearchivist           # your initial TA credentials
      - TA_PASSWORD=verysecret              # your initial TA credentials
      - ELASTIC_PASSWORD=verysecret         # set password for Elasticsearch
      - TZ=America/New_York                 # set your time zone
    depends_on:
      - archivist-es
      - archivist-redis
  archivist-redis:
    image: redis/redis-stack-server
    container_name: archivist-redis
    restart: unless-stopped
    expose:
      - "6379"
    volumes:
      - redis:/data
    depends_on:
      - archivist-es
  archivist-es:
    image: bbilly1/tubearchivist-es         # only for amd64, or use official es 8.7.0
    container_name: archivist-es
    restart: unless-stopped
    environment:
      - "ELASTIC_PASSWORD=verysecret"       # matching Elasticsearch password
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "xpack.security.enabled=true"
      - "discovery.type=single-node"
      - "path.repo=/usr/share/elasticsearch/data/snapshot"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - es:/usr/share/elasticsearch/data    # check for permission error when using bind mount, see readme
    expose:
      - "9200"

volumes:
  media:
  cache:
  redis:
  es: