wytui

A self-hosted web UI for yt-dlp. Download videos from YouTube and 1000+ sites with a beautiful dark interface.

Quick Start

Get running in minutes with Docker Compose or Helm.

Docker Compose

# Copy .env.example to .env and fill in your values
cp .env.example .env

# Start the stack
docker compose up -d

Helm

# Install with Helm
helm install wytui \
  oci://ghcr.io/willuhmjs/wytui

# Or with custom values
helm install wytui \
  oci://ghcr.io/willuhmjs/wytui \
  -f values.yaml

Features

A complete media management platform — download, watch, organize, and automate.

In-Browser Video Player

Watch downloads directly in the browser. Variable speed, keyboard shortcuts, HTTP Range seeking, timestamp deep links (?t=), similar videos sidebar, and a context menu for loop, speed, and SponsorBlock controls.

SponsorBlock

Automatic sponsor segment skipping with colored seek bar overlays. Powered by the community SponsorBlock database.

Watch Progress

Per-user playback position tracking. Resume where you left off and see which videos you've watched. Continue Watching section on the homepage.

Chromecast

Cast videos to any Chromecast device. Play, pause, and seek from the browser with full Cast SDK integration.

Download Profiles

Pre-configured presets for 4K, 1080p, 720p, 480p video and MP3, AAC, FLAC audio. Save custom profiles with any yt-dlp flags.

Two-Tier Storage

Temporary cache with configurable quota plus a permanent library organized by uploader. Promote downloads to your library with one click.

Subscriptions & Playlist Import

Monitor channels and playlists. Auto-download new content on a schedule. Backfill by date, download entire channels, or import a YouTube playlist with live progress tracking.

Livestream Monitors

Watch livestreams and auto-download when they go live. Never miss a stream from your favorite creators.

Real-Time Progress

Live download status via Server-Sent Events. Granular step-by-step tracking through fetch, download, and post-processing stages — speed, ETA, and ffmpeg progress all update live.

Browser Extension

Companion extension for Chrome and Firefox. Works on YouTube and 1000+ supported sites — select quality, profile, and playlist, then send to wytui in one click. Detects already-downloaded URLs automatically.

Channel Overrides

Per-channel download settings. Override format, quality, SponsorBlock, and auto-delete on a per-creator basis.

Cookie Import

Import browser cookies to download member-only, age-restricted, or paywalled content. Paste a Netscape-format cookie file directly in the settings.

Speed Throttling

Cap download bandwidth with a configurable speed limit and optional sleep interval between downloads. Avoid hammering your network or CDN rate limits.

Full-Text Search

Instant search across titles, descriptions, uploaders, and subtitles. Powered by PostgreSQL full-text search with ranked results — find the exact moment someone says something in any video.

Custom Playlists

Organize downloads into playlists with drag-to-reorder. Create, edit, and manage playlists with a dedicated UI.

Tags & Categories

YouTube categories from metadata plus user-defined tags. Filter and organize your library with flexible tagging.

Video Type Classification

Automatically classifies videos as regular, short, or livestream. Filter your library by content type.

Jellyfin & Plex Integration

Auto library scan on download completion for both Jellyfin and Plex. Jellyfin also gets thumbnail artwork and deep-link search. Your downloads flow seamlessly into your media server.

Return YouTube Dislike

See dislike counts on videos via the Return YouTube Dislike API. Metadata is fetched and stored alongside your downloads.

Metadata Refresh

Re-fetch metadata for individual videos or in bulk. Update titles, descriptions, thumbnails, and dislike counts on demand.

Auto-Delete Watched

Automatically delete watched videos after a configurable number of days. Per-channel overrides for fine-grained control.

Notifications (Apprise)

Get notified on download completion or failure via 80+ services. Powered by Apprise — supports Discord, Slack, email, and more.

Backup & Restore

Full database backup and restore with scheduled backups via cron. Download backups as JSON, restore with one click.

Filesystem Import

Import existing video files from your filesystem. Scans directories, extracts YouTube IDs, and creates library entries automatically.

Scheduled Tasks

Dashboard for all background jobs — subscriptions, monitors, auto-delete, backups, cache cleanup. View history and trigger runs manually.

OIDC, LDAP & Reverse-Proxy Auth

OpenID Connect SSO, LDAP, and reverse-proxy header auth (Authelia, Authentik). Admin and user roles with secure multi-user access via your existing identity provider.

Mobile-Friendly

Responsive sidebar navigation with bottom tab bar on mobile. Web Share API on iOS, keyboard shortcuts on desktop.