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.
|
|
4 weeks ago | |
|---|---|---|
| .github/workflows | 4 weeks ago | |
| docs/screenshots | 1 month ago | |
| static/img | 1 month ago | |
| templates | 1 month ago | |
| .dockerignore | 2 months ago | |
| .env.example | 2 months ago | |
| .gitignore | 2 months ago | |
| Dockerfile | 2 months ago | |
| LICENSE | 2 months ago | |
| README.md | 1 month ago | |
| app.py | 2 months ago | |
| docker-compose.yml | 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
✨ 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
Docker Compose (recommended)
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 2 - Format selection
🎯 How it works
- Paste a YouTube URL and click Analyze video to list available streams.
- Pick video and audio formats; choose container, codec, and bitrate.
- Click Download and follow live progress (speed, ETA, executed yt-dlp command).
- 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

