A premium YouTube video downloader with a sleek dark-themed UI. Paste a YouTube link, browse all available formats, and download in the quality you want.
ytdl-vibe/
├── frontend/ → React + Vite (served by nginx in Docker)
├── backend/ → Node.js + yt-dlp + ffmpeg (API)
├── docker-compose.yml → Multi-service orchestration
└── README.md
| Layer | Technology |
|---|---|
| Frontend | React 19, Vite 7, nginx |
| Backend | Node.js, Express, yt-dlp |
| Audio | ffmpeg (MP3 transcoding) |
| Styling | Vanilla CSS, Inter font |
| Infra | Docker, Docker Compose |
docker compose build
docker compose upOpen http://localhost:8080 — that's it!
Prerequisites: Node.js 22+, Python 3.9+, ffmpeg
# Backend
cd backend
npm install
npm run dev # → http://localhost:3001
# Frontend (separate terminal)
cd frontend
npm install
npm run dev # → http://localhost:5173- 🎨 Premium dark theme with glassmorphism UI
- 🔗 Paste any YouTube video URL
- 📋 Browse all available download formats (MP4, WebM, audio-only)
- 🎵 Extract as MP3 (ffmpeg transcoding)
- 📊 Quality badges (4K, HD, HQ) with tab filtering
- ⬇️ Download progress modal with real-time stats
- ✅ Download completion confirmation
| Endpoint | Method | Description |
|---|---|---|
/api/video-info?url= |
GET | Fetch video metadata + formats |
/api/download?url=&formatId= |
GET | Stream video file download |
/api/extract-mp3?url= |
GET | Extract audio as MP3 |
/health |
GET | Health check |
MIT