mirror of
https://github.com/darkzoul5/YoutubePlaylistSync.git
synced 2026-07-03 04:23:59 +03:00
update readme
This commit is contained in:
@@ -4,23 +4,23 @@
|
||||

|
||||

|
||||
|
||||
A cross-platform tool for downloading and keeping in sync a local copy of entire YouTube playlists as MP3 or MP4 files, using [yt-dlp](https://github.com/yt-dlp/yt-dlp) & [ffmpeg](https://ffmpeg.org/).
|
||||
A cross-platform tool for downloading and keeping a local copy of YouTube playlists in sync as MP3 or MP4 files, using [yt-dlp](https://github.com/yt-dlp/yt-dlp) and [ffmpeg](https://ffmpeg.org/).
|
||||
|
||||
Supports audio, video, or both download modes, music and videos are numbered as they are on your youtube playlist, playlist cleanup, and configurable parallel download options.
|
||||
It supports audio, video, or both download modes, keeps files numbered to match the playlist order, handles playlist cleanup, and exposes configurable parallel download options.
|
||||
Local-first YouTube playlist synchronization client.
|
||||
|
||||
## What's Included
|
||||
|
||||
- GUI (PySide6 Essentials) playlist manager + sync runner
|
||||
- GUI playlist manager and sync runner built with PySide6 Essentials
|
||||
- Scanner (yt-dlp extract-only), diff engine, filesystem scan
|
||||
- Safe reordering via two-pass rename, recycle deletions
|
||||
- Async download queue with simple retry (yt-dlp Python API)
|
||||
- SQLite metadata (`last_sync`, download state)
|
||||
- Safe reordering via two-pass rename and recycle deletions
|
||||
- Async download queue with retry support (yt-dlp Python API)
|
||||
- SQLite metadata for `last_sync` and download state
|
||||
|
||||
## Requirements
|
||||
|
||||
- If you download a `-ffmpeg` release: no extra dependencies
|
||||
- If you download a non-ffmpeg release: install `ffmpeg` and ensure it's on PATH (needed for `audio` and `both` modes)
|
||||
- If you download a `-ffmpeg` release: no extra dependencies.
|
||||
- If you download a non-ffmpeg release: install `ffmpeg` and ensure it is on PATH (needed for `audio` and `both` modes).
|
||||
|
||||
## Download
|
||||
|
||||
@@ -31,7 +31,7 @@ Download the latest release from this repo's Releases page and pick one:
|
||||
|
||||
## Configure
|
||||
|
||||
Application uses a json config that canbe edited from UI or manually
|
||||
The application uses a JSON config file that can be edited from the UI or manually.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -39,6 +39,14 @@ Application uses a json config that canbe edited from UI or manually
|
||||
"max_parallel_downloads": 2,
|
||||
"retry_max_retries": 2,
|
||||
"retry_delay_seconds": 1.5,
|
||||
"delay_between_downloads_seconds": 0.0,
|
||||
"ui": {
|
||||
"tray": {
|
||||
"close_to_tray": false,
|
||||
"minimize_to_tray": false,
|
||||
"start_minimized_to_tray": false
|
||||
}
|
||||
},
|
||||
"playlists": [
|
||||
{
|
||||
"url": "https://www.youtube.com/playlist?list=YOUR_PLAYLIST_ID",
|
||||
@@ -60,18 +68,19 @@ Application uses a json config that canbe edited from UI or manually
|
||||
`download_mode`:
|
||||
|
||||
- `video`: download playlist videos as `.mp4` (no ffmpeg required)
|
||||
- `audio`: download video, extract `.mp3`, delete the video file
|
||||
- `both`: download video, extract `.mp3`, keep both files
|
||||
- `audio`: download the video, extract `.mp3`, and delete the video file
|
||||
- `both`: download the video, extract `.mp3`, and keep both files
|
||||
|
||||
Queue / retry:
|
||||
|
||||
- `max_parallel_downloads`: number of concurrent download workers.
|
||||
- `retry_max_retries`: how many times a failed download job is retried.
|
||||
- `retry_delay_seconds`: base delay before retry; increases with backoff.
|
||||
- `delay_between_downloads_seconds`: optional delay between download jobs.
|
||||
|
||||
## Run
|
||||
|
||||
- Run `ytpl-sync.exe` (GUI).
|
||||
- GUI: run `ytpl-sync-entry.py` or the packaged desktop exe from releases.
|
||||
|
||||
## Tray
|
||||
|
||||
|
||||
Reference in New Issue
Block a user