A other Web UI for yt-dlp ! But with greater transparency about what is happening in the background, the ability to analyze the video to choose the format, and convert the output to obtain a compatible format.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Raynoxis 46cb4e98d8 Add Docker image publish workflow 4 weeks ago
.github/workflows Add Docker image publish workflow 4 weeks ago
docs/screenshots clean 1 month ago
static/img language selector 1 month ago
templates Add spacing between command display and download button 1 month ago
.dockerignore initial commit 2 months ago
.env.example Fix permissions issue for WSL2 and rootless containers 2 months ago
.gitignore Fix permissions issue for WSL2 and rootless containers 2 months ago
Dockerfile Fix Podman rootless permissions and improve setup 2 months ago
LICENSE initial commit 2 months ago
README.md Update README.md 1 month ago
app.py Add real-time download progress bar with SSE 2 months ago
docker-compose.yml clean 1 month ago

README.md

🎬 yt-dlp Web Interface

Modern, hardened web UI for downloading YouTube videos with conversion options and detailed status. Built on the excellent yt-dlp and fully containerized with Docker/Podman. Coded with my friend: Claude AI

License Docker Python Security

Highlights

  • 🎯 Choose exact video/audio formats with custom containers and codecs
  • 📈 Real-time progress via SSE; shows speed, ETA, and the yt-dlp command used
  • 🛡️ Hardened: strict URL validation, path traversal protection, non-root container, full logging
  • Concurrent, non-blocking downloads with automatic cleanup after 1h
  • 🐳 Ready-to-run images for Docker and Podman

🚀 Deploy

Docker

docker pull raynoxis/yt-dlp-web-interface:latest
docker run -d -p 5000:5000 --name ytdlp-web raynoxis/yt-dlp-web-interface:latest
git clone https://github.com/Raynoxis/yt-dlp-Web-Interface.git
cd yt-dlp-Web-Interface

docker-compose up -d

Access the UI: http://localhost:5001 (Compose) or http://localhost:5000 (direct run).

Persist downloads:

docker run -d -p 5000:5000 \
  -v ./downloads:/app/downloads \
  --name ytdlp-web \
  raynoxis/yt-dlp-web-interface:latest

Build from source (optional):

git clone https://github.com/Raynoxis/yt-dlp-Web-Interface.git
cd yt-dlp-Web-Interface
docker build -t raynoxis/yt-dlp-web-interface .
docker run -d -p 5000:5000 --name ytdlp-web raynoxis/yt-dlp-web-interface

📸 Screenshots

Step 1 - Analysis

Step 1

Step 2 - Format selection

Step 2

🎯 How it works

  1. Paste a YouTube URL and click Analyze video to list available streams.
  2. Pick video and audio formats; choose container, codec, and bitrate.
  3. Click Download and follow live progress (speed, ETA, executed yt-dlp command).
  4. Download the generated file when it completes.

📝 License

This project is under the MIT License. See LICENSE for details.

🙏 Credits

  • yt-dlp - The best video download tool
  • Flask - Python web framework
  • FFmpeg - Audio/video processing
  • Claude AI - Development assistant

⚠️ Disclaimer

This tool is for personal and educational use. Respect YouTube's terms of service and your local copyright laws.

📧 Contact

Raynoxis - GitHub

Project link: https://github.com/Raynoxis/yt-dlp-Web-Interface

Docker Hub link: https://hub.docker.com/r/raynoxis/yt-dlp-web-interface