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:
@@ -1,15 +1,20 @@
|
||||
# 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
|
||||
|
||||
- **Download full YouTube playlists** as high-quality MP3 files.
|
||||
- **Parallel downloads** using aria2c for speed.
|
||||
- **Automatic numbering:** numbers tracks same as the origin playlist.
|
||||
- **Cleanup of tracks:** optioon to remove tracks not in playlist anymore.
|
||||
- **Download full YouTube playlists** as high-quality MP3 (audio), MP4 (video), or both.
|
||||
- **Download mode:** Choose `audio`, `video`, or `both` for each playlist.
|
||||
- **Max video quality:** Select from `720p`, `1080p`, `1440p`, `2160p`, or `best`.
|
||||
- **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.
|
||||
- **Cross-platform:** Windows and Linux support.
|
||||
- **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
|
||||
|
||||
### Quick Start
|
||||
|
||||
1. **Download the latest release:**
|
||||
- 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).
|
||||
- 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).
|
||||
|
||||
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:**
|
||||
- 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:**
|
||||
- On Windows:
|
||||
```sh
|
||||
python yt-playlist-main.py
|
||||
```
|
||||
- On Linux:
|
||||
```sh
|
||||
python3 yt-playlist-main.py
|
||||
```
|
||||
- On Windows:
|
||||
```sh
|
||||
python yt-playlist-main.py
|
||||
```
|
||||
- On Linux:
|
||||
```sh
|
||||
python3 yt-playlist-main.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Usage
|
||||
|
||||
|
||||
### Configuration
|
||||
|
||||
Edit `yt-playlist-config.json` to specify playlists and paths:
|
||||
Edit `yt-playlist-config.json` to specify playlists, paths, and options:
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -63,9 +70,11 @@ Edit `yt-playlist-config.json` to specify playlists and paths:
|
||||
"archive": "archive.txt"
|
||||
}
|
||||
],
|
||||
"yt_dlp_path": "./bin/yt-dlp.exe",
|
||||
"ffmpeg_path": "./bin/ffmpeg.exe",
|
||||
"aria2c_path": "./bin/aria2c.exe",
|
||||
"yt_dlp_path": "./bin/yt-dlp.exe", // or "yt-dlp" for Linux
|
||||
"ffmpeg_path": "./bin/ffmpeg.exe", // or "ffmpeg" for Linux
|
||||
"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,
|
||||
"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`.
|
||||
- **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.
|
||||
- **aria2c_connections:** Connections per download.
|
||||
|
||||
|
||||
### Running
|
||||
|
||||
```sh
|
||||
python yt-playlist-main.py
|
||||
```
|
||||
|
||||
- The script will check for binaries, update yt-dlp, and download all new tracks in the playlist.
|
||||
- Tracks are saved and numbered in the specified folder.
|
||||
- The script checks for required binaries and updates yt-dlp.
|
||||
- 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.
|
||||
- Archive file prevents re-downloading existing tracks.
|
||||
- After download, you can optionally clean up files not present in the playlist anymore (confirmation required).
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
## 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.
|
||||
- **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
|
||||
|
||||
See [LICENSE](LICENSE).
|
||||
|
||||
---
|
||||
|
||||
|
||||
## Credits
|
||||
|
||||
- [yt-dlp](https://github.com/yt-dlp/yt-dlp)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"playlists": [
|
||||
{
|
||||
"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"
|
||||
}
|
||||
],
|
||||
|
||||
+4
-4
@@ -37,13 +37,13 @@ class ConfigLoader:
|
||||
"playlists": [
|
||||
{
|
||||
"url": "https://www.youtube.com/playlist?list=YOUR_PLAYLIST_HERE",
|
||||
"save_path": "./music",
|
||||
"save_path": "./downloads",
|
||||
"archive": "archive.txt"
|
||||
}
|
||||
],
|
||||
"yt_dlp_path": "./bin/yt-dlp.exe" if platform.system() == "Windows" else "yt-dlp",
|
||||
"ffmpeg_path": "./bin/ffmpeg.exe" if platform.system() == "Windows" else "ffmpeg",
|
||||
"aria2c_path": "./bin/aria2c.exe" if platform.system() == "Windows" else "aria2c",
|
||||
"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 "./bin/ffmpeg",
|
||||
"aria2c_path": "./bin/aria2c.exe" if platform.system() == "Windows" else "./bin/aria2c",
|
||||
"download_mode": "audio", # options: audio, video, both
|
||||
"max_video_quality": "1080p", # options: 720p, 1080p, 1440p, 2160p, best
|
||||
"max_parallel_downloads": 10,
|
||||
|
||||
Reference in New Issue
Block a user