feat: Add support for syncing playlists

Signed-off-by: SindreKjelsrud <sindre@kjelsrud.dev>
This commit is contained in:
SindreKjelsrud 2026-01-15 15:27:34 +01:00
parent f1b31fabda
commit 86d45f324d
Signed by: sidski
GPG key ID: D2BBDF3EDE6BA9A6
8 changed files with 470 additions and 17 deletions

View file

@ -5,6 +5,7 @@ A native Rust application to sync songs and albums from your self-hosted Navidro
## Features
- 🎵 Sync songs and albums from Navidrome
- 🎼 Sync playlists from Navidrome (as M3U8 files)
- 📱 Support for iPod stock OS
- 🎸 Support for Rockbox firmware
- 📊 Scrobble listening history to ListenBrainz
@ -69,9 +70,15 @@ cargo run -- sync --album "Album Name"
# Sync specific artist
cargo run -- sync --artist "Artist Name"
# Sync specific playlist only
cargo run -- sync --playlist "Playlist Name"
# List available albums
cargo run -- list-albums
# List available playlists
cargo run -- list-playlists
# Check iPod connection
cargo run -- check
@ -85,6 +92,28 @@ cargo run -- scrobble --clear
cargo run -- scrobble --clear --no-backup
```
### Syncing Playlists
NaviPod can sync your Navidrome playlists to your iPod as M3U8 files:
1. Enable playlist syncing in your `config.toml`:
```toml
[sync]
playlists = true
```
2. Run the sync command:
```bash
# Sync all playlists
cargo run -- sync
# Or sync a specific playlist only
cargo run -- sync --playlist "My Favorites"
```
3. Playlists will be created in the `Playlists` folder on your iPod
4. Only songs that are already on your iPod will be included in the playlists
**Note:** Playlists use M3U8 format (UTF-8 encoded) with relative paths, which works with both Rockbox and most other media players.
### Scrobbling to ListenBrainz
NaviPod can read the `.scrobbler.log` file from your Rockbox iPod and submit your listening history to ListenBrainz: