diff --git a/PRD.md b/PRD.md index 2446927..c4f5475 100644 --- a/PRD.md +++ b/PRD.md @@ -38,6 +38,8 @@ A Python-based Windows CLI tool to download karaoke videos from YouTube channels python download_karaoke.py https://www.youtube.com/@SingKingKaraoke/videos python download_karaoke.py --file data/channels.txt python download_karaoke.py --songlist-only +python download_karaoke.py --reset-channel SingKingKaraoke --reset-songlist +python download_karaoke.py --clear-cache SingKingKaraoke ``` --- @@ -61,6 +63,8 @@ python download_karaoke.py --songlist-only - ✅ ID3 tagging for artist/title in MP4 files (mutagen) - ✅ Real-time progress and detailed logging - ✅ Automatic cleanup of extra yt-dlp files +- ✅ **Reset/clear channel tracking and files via CLI** +- ✅ **Clear channel cache via CLI** --- @@ -107,6 +111,9 @@ KaroakeVideoDownloader/ - `--limit `: Limit number of downloads - `--resolution <720p|1080p|...>`: Override resolution - `--status`: Show download/tracking status +- `--reset-channel `: **Reset all tracking and files for a channel** +- `--reset-songlist`: **When used with --reset-channel, also reset songlist songs for this channel** +- `--clear-cache `: **Clear channel video cache for a specific channel or all** --- @@ -116,6 +123,7 @@ KaroakeVideoDownloader/ - **Batch/Caching:** Channel video lists are cached to minimize API calls; tracking is batch-saved for performance. - **ID3 Tagging:** Artist/title extracted from video title and embedded in MP4 files. - **Cleanup:** Extra files from yt-dlp (e.g., `.info.json`) are automatically removed after download. +- **Reset/Clear:** Use `--reset-channel` to reset all tracking and files for a channel (optionally including songlist songs with `--reset-songlist`). Use `--clear-cache` to clear cached video lists for a channel or all channels. --- diff --git a/README.md b/README.md index eb6db0c..5cbb06e 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ A Python-based Windows CLI tool to download karaoke videos from YouTube channels - 🏷️ **ID3 Tagging**: Adds artist/title metadata to MP4 files - 🧹 **Automatic Cleanup**: Removes extra yt-dlp files - 📈 **Real-Time Progress**: Detailed console and log output +- 🧹 **Reset/Clear Channel**: Reset all tracking and files for a channel, or clear channel cache via CLI ## 📋 Requirements - **Windows 10/11** @@ -55,6 +56,22 @@ python download_karaoke.py --limit 5 python download_karaoke.py --resolution 1080p ``` +### **Reset/Start Over for a Channel** +```bash +python download_karaoke.py --reset-channel SingKingKaraoke +``` + +### **Reset Channel and Songlist Songs** +```bash +python download_karaoke.py --reset-channel SingKingKaraoke --reset-songlist +``` + +### **Clear Channel Cache** +```bash +python download_karaoke.py --clear-cache SingKingKaraoke +python download_karaoke.py --clear-cache all +``` + ## 🧠 Songlist Integration - Place your prioritized song list in `data/songList.json` (see example format below). - The tool will match and prioritize these songs across all available channel videos. @@ -115,12 +132,18 @@ KaroakeVideoDownloader/ - `--limit `: Limit number of downloads - `--resolution <720p|1080p|...>`: Override resolution - `--status`: Show download/tracking status +- `--reset-channel `: **Reset all tracking and files for a channel** +- `--reset-songlist`: **When used with --reset-channel, also reset songlist songs for this channel** +- `--clear-cache `: **Clear channel video cache for a specific channel or all** ## 📝 Example Usage ```bash python download_karaoke.py https://www.youtube.com/@SingKingKaraoke/videos --songlist-priority --limit 10 python download_karaoke.py --file data/channels.txt --songlist-only python download_karaoke.py --songlist-status +python download_karaoke.py --reset-channel SingKingKaraoke +python download_karaoke.py --reset-channel SingKingKaraoke --reset-songlist +python download_karaoke.py --clear-cache all ``` ## 🏷️ ID3 Tagging @@ -129,7 +152,7 @@ python download_karaoke.py --songlist-status ## 🧹 Cleanup - Removes `.info.json` and `.meta` files after download -## 🧩 Configuration +## 🛠️ Configuration - All options are in `data/config.json` (format, resolution, metadata, etc.) - You can edit this file or use CLI flags to override