# 🎤 Karaoke Playlist Downloader – PRD (v1.0) ## ✅ Overview A Python-based Windows command-line tool that wraps `yt-dlp.exe` to batch-download karaoke videos from YouTube playlists. --- ## 📌 Goals - Quickly download full YouTube playlists containing karaoke videos. - Organize downloads by playlist. - Avoid re-downloading the same videos. --- ## 🧑‍💻 Target Users - Tech-savvy users, developers, or power users familiar with command-line tools. - Use case: Karaoke DJs, home karaoke setups, offline playlist prep. --- ## ⚙️ Platform & Stack - **Platform:** Windows - **Interface:** Command-line tool (CLI) - **Tech Stack:** Python + yt-dlp.exe --- ## 📥 Input - Accepts YouTube playlist URLs via command line. - Optional: Accept a text file containing multiple playlist URLs (one per line). ### 🔹 Example Usage ```bash python download_karaoke.py https://www.youtube.com/playlist?list=XYZ python download_karaoke.py --file playlists.txt ``` --- ## 📤 Output - Downloads videos as **MP4** using `yt-dlp.exe`. - Each playlist gets its own folder: `downloads//` - Filenames are preserved as per the original YouTube video title. --- ## 🛠️ Features - ✅ Skips already downloaded videos (uses video ID log). - ✅ Logs each download to `logs/.log`. - ✅ Shows progress and errors in the terminal. - ✅ Lightweight and fast to execute. --- ## 📁 Folder Structure (Suggested) ``` karaoke_downloader/ ├── download_karaoke.py # main script ├── yt-dlp.exe # downloader binary ├── playlists.txt # optional playlist list ├── downloads/ # all video output │ └── [playlist_name]/ # folders per playlist └── logs/ └── [playlist_name].log # download log ``` --- ## 🚀 Future Enhancements (Optional) - [ ] `--audio` flag to extract MP3 only. - [ ] Smart filename cleanup (`[Karaoke]` tag). - [ ] Graceful skip of unavailable/private videos. - [ ] Retry logic for failed downloads.