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

readme: update with latest info

This commit is contained in:
2026-05-17 13:36:30 +03:00
parent b0eaa9d2eb
commit b0c531389e
+17 -43
View File
@@ -8,28 +8,28 @@ A cross-platform tool for downloading and keeping in sync a local copy of entire
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. 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.
Local-first YouTube playlist synchronization client. Local-first YouTube playlist synchronization client.
## Whats Included ## What's Included
- GUI (PySide6) playlist manager + sync runner
- Scanner (yt-dlp extract-only), diff engine, filesystem scan - Scanner (yt-dlp extract-only), diff engine, filesystem scan
- Safe reordering via two-pass rename, recycle deletions - Safe reordering via two-pass rename, recycle deletions
- Async download queue with simple retry (yt-dlp Python API) - Async download queue with simple retry (yt-dlp Python API)
- SQLite metadata; DB updates on rename/download/delete; `last_sync` - SQLite metadata (`last_sync`, download state)
- Optional event publishing for future GUI/logs
## Requirements ## Requirements
- Python 3.10+ - If you download a `-ffmpeg` release: no extra dependencies
- `ffmpeg` (needed for `audio` and `both` modes) - If you download a non-ffmpeg release: install `ffmpeg` and ensure it's on PATH (needed for `audio` and `both` modes)
Quick start: ## Download
Download the latest release from [releases](https://github.com/darkzoul5/YoutubePlaylistSyncThing/releases) page Download the latest release from this repo's Releases page and pick one:
- `ytpl-sync-windows-{version}-ffmpeg.zip` / `ytpl-sync-linux-{version}-ffmpeg.tar.gz` (ffmpeg bundled)
- `ytpl-sync-windows-{version}.zip` / `ytpl-sync-linux-{version}.tar.gz` (no ffmpeg bundled)
## Configure ## Configure
Application uses a json config that canbe edited from UI or manually
On first run, the app will auto-create a default `config/yt-playlist-config.json` (if missing).
Create/edit `config/yt-playlist-config.json`:
```json ```json
{ {
@@ -48,27 +48,17 @@ Create/edit `config/yt-playlist-config.json`:
} }
``` ```
Defaults:
- `ffmpeg_path`: `./bin/ffmpeg.exe` (Windows) or `./bin/ffmpeg` (Linux)
- `download_mode`: `video`
- `max_download_quality`: `1080p`
- `save_path`: `./downloads`
- `max_parallel_downloads`: `2`
- `retry_max_retries`: `2`
- `retry_delay_seconds`: `1.5`
`max_download_quality`: `max_download_quality`:
- Limits yt-dlp download quality (e.g. `"2160p"`, `"1440p"`, `"1080p"`, `"720p"`, `"360p"`). This only affects the downloaded video format selection. - Limits yt-dlp download quality (e.g. `"2160p"`, `"1440p"`, `"1080p"`, `"720p"`, `"360p"`). This only affects the downloaded video format selection.
- Use `"best"` (or `"auto"`) for no height cap (highest available muxed MP4). - Use `"best"` for no height cap (highest available).
- If the requested max quality isn't available for a video, the best available quality is chosen. - If the requested max quality isn't available for a video, the best available quality is chosen.
`download_mode`: `download_mode`:
- `video`: download playlist videos as muxed `.mp4` (no ffmpeg processing) - `video`: download playlist videos as `.mp4` (no ffmpeg required)
- `audio`: download muxed `.mp4`, extract `.mp3`, delete the `.mp4` - `audio`: download video, extract `.mp3`, delete the video file
- `both`: download muxed `.mp4`, extract `.mp3`, keep both files - `both`: download video, extract `.mp3`, keep both files
Queue / retry: Queue / retry:
@@ -78,23 +68,7 @@ Queue / retry:
## Run ## Run
- Compute-only: - Run `ytpl-sync.exe` (GUI).
```bash
python -m app.cli
```
- Apply actions:
```bash
python -m app.cli --apply
```
- Single playlist (0-based index):
```bash
python -m app.cli --apply --playlist 0
```
## Data & Layout ## Data & Layout
@@ -105,5 +79,5 @@ python -m app.cli --apply --playlist 0
## Roadmap (short) ## Roadmap (short)
- Scheduler (periodic sync), richer retries/logging - Scheduler (periodic sync), richer retries/logging
- GUI (PySide6) wired to EventBus
- Enhanced config validation - Enhanced config validation
- UX polish (settings, progress, error messages)