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 9aa9515e66
Update README.md
10 months ago
docs/screenshots clean 10 months ago
static/img language selector 10 months ago
templates language selector 10 months ago
.dockerignore initial commit 10 months ago
.env.example Fix permissions issue for WSL2 and rootless containers 10 months ago
.gitignore Fix permissions issue for WSL2 and rootless containers 10 months ago
Dockerfile Fix Podman rootless permissions and improve setup 10 months ago
LICENSE initial commit 10 months ago
README.md Update README.md 10 months ago
app.py Add real-time download progress bar with SSE 10 months ago
docker-compose.yml clean 10 months 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