1
0
mirror of https://github.com/darkzoul5/YoutubePlaylistSync.git synced 2026-07-03 12:34:00 +03:00

Update README and config file for enhanced download options and paths

This commit is contained in:
2025-10-14 10:38:37 +03:00
parent 1a1f50cc96
commit 4b32ec10c2
3 changed files with 48 additions and 29 deletions
+43 -24
View File
@@ -1,15 +1,20 @@
# YouTube Playlist Downloader # YouTube Playlist Downloader
A cross-platform tool and workflow for downloading entire YouTube playlists as MP3 files, using [yt-dlp](https://github.com/yt-dlp/yt-dlp), [ffmpeg](https://ffmpeg.org/), and [aria2c](https://github.com/aria2/aria2). Includes Gitea CI/CD workflow for packaging and releasing Windows and Linux binaries. A cross-platform tool and workflow for downloading entire YouTube playlists as MP3 or MP4 files, using [yt-dlp](https://github.com/yt-dlp/yt-dlp), [ffmpeg](https://ffmpeg.org/), and [aria2c](https://github.com/aria2/aria2). Includes Gitea CI/CD workflow for packaging and releasing Windows and Linux binaries.
Supports audio, video, or both download modes, music and viedos are numbered as they are on your youtube playlist, playlist cleanup, and configurable parallel download options.
--- ---
## Features ## Features
- **Download full YouTube playlists** as high-quality MP3 files. - **Download full YouTube playlists** as high-quality MP3 (audio), MP4 (video), or both.
- **Parallel downloads** using aria2c for speed. - **Download mode:** Choose `audio`, `video`, or `both` for each playlist.
- **Automatic numbering:** numbers tracks same as the origin playlist. - **Max video quality:** Select from `720p`, `1080p`, `1440p`, `2160p`, or `best`.
- **Cleanup of tracks:** optioon to remove tracks not in playlist anymore. - **Parallel downloads:** Using aria2 for speed.
- **Automatic renumbering:** Tracks are renumbered to match playlist order after download.
- **Cleanup of tracks:** Option to remove files not in playlist anymore, with confirmation.
- **Configurable output paths** and archive tracking. - **Configurable output paths** and archive tracking.
- **Cross-platform:** Windows and Linux support. - **Cross-platform:** Windows and Linux support.
- **Gitea CI/CD workflow** for automated packaging and release. - **Gitea CI/CD workflow** for automated packaging and release.
@@ -22,37 +27,39 @@ A cross-platform tool and workflow for downloading entire YouTube playlists as M
--- ---
## Installation ## Installation
### Quick Start ### Quick Start
1. **Download the latest release:** 1. **Download the latest release:**
- Go to the [Releases](https://git.darkzoul.org/dark_zoul/YouTube-Playlist-Downloader/releases) page. - Go to the [Releases](https://git.darkzoul.org/dark_zoul/YouTube-Playlist-Downloader/releases) page.
- Download the appropriate archive for your platform (Windows or Linux). - Download the appropriate archive for your platform (Windows or Linux).
2. **Unzip the archive:** 2. **Unzip the archive:**
- Extract the contents to a folder of your choice. - Extract the contents to a folder of your choice.
3. **Edit configuration:** 3. **Edit configuration:**
- Open `yt-playlist-config.json` and adjust paths and playlist URLs as needed. - Open `yt-playlist-config.json` and adjust paths, playlist URLs, download mode, and quality as needed.
4. **Run the downloader:** 4. **Run the downloader:**
- On Windows: - On Windows:
```sh ```sh
python yt-playlist-main.py python yt-playlist-main.py
``` ```
- On Linux: - On Linux:
```sh ```sh
python3 yt-playlist-main.py python3 yt-playlist-main.py
``` ```
--- ---
## Usage ## Usage
### Configuration ### Configuration
Edit `yt-playlist-config.json` to specify playlists and paths: Edit `yt-playlist-config.json` to specify playlists, paths, and options:
```json ```json
{ {
@@ -63,9 +70,11 @@ Edit `yt-playlist-config.json` to specify playlists and paths:
"archive": "archive.txt" "archive": "archive.txt"
} }
], ],
"yt_dlp_path": "./bin/yt-dlp.exe", "yt_dlp_path": "./bin/yt-dlp.exe", // or "yt-dlp" for Linux
"ffmpeg_path": "./bin/ffmpeg.exe", "ffmpeg_path": "./bin/ffmpeg.exe", // or "ffmpeg" for Linux
"aria2c_path": "./bin/aria2c.exe", "aria2c_path": "./bin/aria2c.exe", // or "aria2c" for Linux
"download_mode": "audio", // "audio", "video", or "both"
"max_video_quality": "1080p", // "720p", "1080p", "1440p", "2160p", "best"
"max_parallel_downloads": 10, "max_parallel_downloads": 10,
"aria2c_connections": 8 "aria2c_connections": 8
} }
@@ -73,36 +82,46 @@ Edit `yt-playlist-config.json` to specify playlists and paths:
- **playlists:** List of playlist objects. Each must have a `url`, `save_path`, and `archive`. - **playlists:** List of playlist objects. Each must have a `url`, `save_path`, and `archive`.
- **yt_dlp_path, ffmpeg_path, aria2c_path:** Paths to binaries (relative or absolute). - **yt_dlp_path, ffmpeg_path, aria2c_path:** Paths to binaries (relative or absolute).
- **download_mode:** Choose `audio`, `video`, or `both`.
- **max_video_quality:** Set max video quality for downloads.
- **max_parallel_downloads:** Number of simultaneous downloads. - **max_parallel_downloads:** Number of simultaneous downloads.
- **aria2c_connections:** Connections per download. - **aria2c_connections:** Connections per download.
### Running ### Running
```sh ```sh
python yt-playlist-main.py python yt-playlist-main.py
``` ```
- The script will check for binaries, update yt-dlp, and download all new tracks in the playlist. - The script checks for required binaries and updates yt-dlp.
- Tracks are saved and numbered in the specified folder. - Downloads new tracks in the playlist according to your chosen mode and quality.
- Tracks are saved and automatically renumbered to match playlist order.
- Deleted/private videos are skipped. - Deleted/private videos are skipped.
- Archive file prevents re-downloading existing tracks. - Archive file prevents re-downloading existing tracks.
- After download, you can optionally clean up files not present in the playlist anymore (confirmation required).
--- ---
## Troubleshooting ## Troubleshooting
- **No binaries found:** Ensure paths in `yt-playlist-config.json` are correct. - **No binaries found:** Ensure paths in `yt-playlist-config.json` are correct and binaries are present.
- **No tracks downloaded:** Check playlist URL and archive file. - **No tracks downloaded:** Check playlist URL and archive file.
- **Download mode or quality issues:** Make sure `download_mode` and `max_video_quality` are set to valid values.
- **Network overload warning:** If you set very high parallel/connections, the script will warn you.
--- ---
## License ## License
See [LICENSE](LICENSE). See [LICENSE](LICENSE).
--- ---
## Credits ## Credits
- [yt-dlp](https://github.com/yt-dlp/yt-dlp) - [yt-dlp](https://github.com/yt-dlp/yt-dlp)
+1 -1
View File
@@ -2,7 +2,7 @@
"playlists": [ "playlists": [
{ {
"url": "https://www.youtube.com/playlist?list=PLUmRr21IDW9VOlWwIcr1Foyj2pMh-Jvpb", "url": "https://www.youtube.com/playlist?list=PLUmRr21IDW9VOlWwIcr1Foyj2pMh-Jvpb",
"save_path": "R:/localtracks/darkzoul", "save_path": "C:/Users/DARK_ZOUL/Desktop/downloads",
"archive": "archive.txt" "archive": "archive.txt"
} }
], ],
+4 -4
View File
@@ -37,13 +37,13 @@ class ConfigLoader:
"playlists": [ "playlists": [
{ {
"url": "https://www.youtube.com/playlist?list=YOUR_PLAYLIST_HERE", "url": "https://www.youtube.com/playlist?list=YOUR_PLAYLIST_HERE",
"save_path": "./music", "save_path": "./downloads",
"archive": "archive.txt" "archive": "archive.txt"
} }
], ],
"yt_dlp_path": "./bin/yt-dlp.exe" if platform.system() == "Windows" else "yt-dlp", "yt_dlp_path": "./bin/yt-dlp.exe" if platform.system() == "Windows" else "./bin/yt-dlp",
"ffmpeg_path": "./bin/ffmpeg.exe" if platform.system() == "Windows" else "ffmpeg", "ffmpeg_path": "./bin/ffmpeg.exe" if platform.system() == "Windows" else "./bin/ffmpeg",
"aria2c_path": "./bin/aria2c.exe" if platform.system() == "Windows" else "aria2c", "aria2c_path": "./bin/aria2c.exe" if platform.system() == "Windows" else "./bin/aria2c",
"download_mode": "audio", # options: audio, video, both "download_mode": "audio", # options: audio, video, both
"max_video_quality": "1080p", # options: 720p, 1080p, 1440p, 2160p, best "max_video_quality": "1080p", # options: 720p, 1080p, 1440p, 2160p, best
"max_parallel_downloads": 10, "max_parallel_downloads": 10,