Favicon of Tube Archivist

Tube Archivist

Subscribe to channels, download videos, and build your own searchable media library. Access your favorite YouTube content offline through a simple web interface.

Create your own personal and permanent archive of YouTube content. If you're concerned about videos being deleted or want to build a searchable offline library from your favorite channels, this tool provides a robust solution. It allows you to subscribe to channels and automatically download new videos, ensuring you never miss out.

Once downloaded, all videos are indexed with metadata from YouTube, making your entire collection instantly searchable. You can easily find specific videos, organize your library, and keep track of what you've watched through a convenient web interface. This project functions as its own media server, giving you full control over your content.

Key features include:

  • Subscribing to and downloading from YouTube channels.
  • Indexing video metadata for powerful search capabilities.
  • A built-in web player for direct playback.
  • Tracking of viewed and unviewed videos.

A companion browser extension is also available, which integrates directly into your browser for single-click archival of any video you're watching. As a self-hosted application, you maintain complete ownership and access to your media library.

Directory Structure

tube-archivist
tubearchivist
cache
es
media
redis
.env
docker-compose.yml

docker-compose.yml

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
      - REDIS_HOST=archivist-redis
      - HOST_UID=1000
      - HOST_GID=1000
      - TA_HOST=127.0.0.1
      - TA_USERNAME=${TA_USERNAME}
      - TA_PASSWORD=${TA_PASSWORD}
      - ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
      - TZ=UTC
    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
    container_name: archivist-es
    restart: unless-stopped
    environment:
      - "ELASTIC_PASSWORD=${ELASTIC_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
    expose:
      - "9200"

.env

TA_USERNAME=tubearchivist
TA_PASSWORD=your_super_secret_password
ELASTIC_PASSWORD=your_super_secret_elastic_password
Categories:

Share:

Ad
Favicon

 

  
 

Similar to Tube Archivist

Favicon

 

  
  
Favicon

 

  
  
Favicon