.idea | ||
app | ||
etc/playlistd | ||
migrations | ||
src | ||
systemd | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
Containerfile | ||
LICENSE | ||
README.md |
playlistd
A daemon and API for automatically updating Subsonic playlists from Listenbrainz data
Note: I've not actually tested this against Subsonic, only Navidrome
Building & running
This is a standard Rust project and should be uncomplicated to build and run. It does read some environment variables:
SUBSONIC_BASE
, your Subsonic instance's API base. For navidrome users, this is<protocol>://<host>/rest
SUBSONIC_USERNAME
, your Subsonic usernameSUBSONIC_PASSWORD
, your Subsonic passwordDATABASE_URL
, the URL for a Postgres databaseDAEMON_INTERVAL
, how often to update playlists
For deploying, these can be configured in /etc/playlistd.toml
.
Container build (Ubuntu 20.04)
podman run --rm --network=host -v "$PWD":/mnt -w /mnt -e "DATABASE_URL=postgres://jude@127.0.0.1/navidrome-playlists" playlistd cargo deb
How to use
Tracked playlist
A tracked playlist is a single Subsonic playlist that tracks data from Listenbrainz. For example, a playlist that contains your top 15 songs from the past week.
These will work best when your music library is well organised with Musicbrainz metadata.
You can create a tracked playlist by inserting a row into the tracked_playlist
table.
Static playlist
TODO, not yet implemented