Skip to content

Latest commit

 

History

History
107 lines (83 loc) · 3.7 KB

File metadata and controls

107 lines (83 loc) · 3.7 KB

Contributors Forks Stargazers Issues MIT License


Logo

ytdlp-nfo-server

A web server wrapping ytdlp-nfo with a queue-based job system, real-time progress streaming, and a built-in web UI.


Explore the Project »

Report Bug · Request Feature

Screenshot

Features

  • Web UI for submitting and monitoring downloads
  • Bulk import of up to 500 URLs at once
  • Configurable concurrent downloads with FIFO queue
  • Real-time progress streaming via Server-Sent Events
  • Automatic retries with exponential backoff
  • Job state persistence across restarts
  • Duplicate URL detection
  • Optional password protection

Project Structure

The server code lives in the server/ directory. Docker Compose files and the Dockerfile are also located there.

Usage

Docker Compose

services:
  ytdlp-nfo-server:
    image: ghcr.io/lna-dev/ytdlp-nfo-server:latest
    ports:
      - "8080:8080"
    volumes:
      - ./download:/downloads
      - ./data:/data
      - pip-cache:/root/.cache/pip
    environment:
      - PORT=8080
      - DOWNLOAD_DIR=/downloads
      - DATA_DIR=/data
      - PASSWORD=changeme
    restart: unless-stopped

volumes:
  pip-cache:
docker compose up -d

Environment Variables

Variable Default Description
PORT 8080 Server port
DOWNLOAD_DIR ./downloads Download destination
DATA_DIR Job state persistence directory
MAX_CONCURRENT 3 Max parallel downloads
MAX_RETRIES 3 Max retry attempts per job
YTDLP_CHANNEL stable yt-dlp version channel (stable, master, nightly)
PASSWORD Optional password to protect the web UI

License

MIT