# ROADMAP Goal: deliver a containerised YouTube downloader web app — one URL input, two download buttons (MP3 / Video), always best available quality. ## Priority 1 Objective: Containerised YouTube downloader with a minimal browser UI. - User pastes a YouTube URL into a single input field. - Clicking **Download MP3** triggers a server-side yt-dlp run that extracts audio at the highest available bitrate (converted to MP3 via ffmpeg) and streams the file back to the browser for download. - Clicking **Download Video** triggers a server-side yt-dlp run that fetches the best video+audio quality and streams the file back to the browser for download. - The entire app runs in a single Docker container (`docker build` / `docker run -p 8080:8080 yt-dl`) with no external dependencies beyond Docker. - No login, no database, no persistent storage required — stateless request/response. ## Acceptance Criteria - `docker build` completes without errors. - `docker run -p 8080:8080 yt-dl` starts the server. - Pasting a valid YouTube URL and clicking **Download MP3** delivers an `.mp3` file to the browser. - Pasting a valid YouTube URL and clicking **Download Video** delivers a best-quality video file (`.mp4` / `.mkv`) to the browser. - Invalid or empty URLs show a clear error message in the UI (no server crash). ## Out of Scope - Playlist batch downloads. - User accounts / history. - Progress bars / live download status (nice-to-have but not required for v1).