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:
@@ -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.
|
||||||
|
|
||||||
## What’s 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)
|
||||||
|
|||||||
Reference in New Issue
Block a user