Skip to content

Migrate to v4

Marco Piovanello edited this page Jul 8, 2026 · 2 revisions

Caution

Before updating to v4 it's reccomended to stop/complete all your downloads and backup all your templates and cron jobs!

yt-dlp-web-ui v4 introduces many changes to the underlying code and configuration management.

The first thing was ditch file based session storing for a streamlined approach with bolt. This ensures better performance, better migrations and a single source of thruth for all the backend state management.

The config file was also revamped, now more structured and clinger to field-drive-configuration (FDC) - supporting:

  • YAML
  • TOML
  • ENV

Migrate configuration to v4

---
# Sample configuration file for yt-dlp webui v4

server:
  # Host where server will listen at (default: "0.0.0.0")
  host: 0.0.0.0
  # Port where server will listen at (default: 3033)
  port: 3033
  # [optional] The download queue size (default: logical cpu cores)
  queue_size: 4

paths:
  # [optional] Directory where downloaded files will be stored (default: ".")
  download_path: ./downloads
  # [optional] Full path to the yt-dlp (default: "yt-dlp")
  downloader_path: /usr/bin/yt-dlp
  # [optional] Path where the sqlite database will be created/opened (default: "./local.db")
  local_database_path: .

logging:
  # [optional] Set the path of the log file
  log_path: yt-dlp-webui.log
  # [optional] Enable file based logging with rotation (default: false)
  enable_file_logging: true

# [optional] RPC authentication
authentication:
  # enforce authentication
  require_auth: false
  # any username is valid
  username: chetto
  # bcrypt hashed password
  password_hash: $2a$12$F1Vs10AaD1jXL0tTnaQXJ.oxX2Z54zjcstzzG0Pj7jdft947iQT.a

# [optional] OpenID based authentication
openid:
  use_openid: false
  openid_provider_url: https://...
  openid_client_id: a20e0aewj0dja09duj0sa
  openid_client_secret: secreta98uhcoskodjlzkks
  openid_redirect_url: https://yt-dlp-webui.yourdomain.tld/auth/openid/signin
  openid_email_whitelist: 
    - example1@example.com
    - example2@example.com

# [optional] Enable Twitch stream capture and monitoring
twitch:
  client_id: my_client_id
  secret: my_secret
  check_interval: 1m

# frontend:
  # [optional] Path where a custom frontend will be loaded (instead of the embedded one)
  # frontend_path: ./web/solid-frontend

Clone this wiki locally