39 lines
1.3 KiB
Markdown
39 lines
1.3 KiB
Markdown
|
# 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 username
|
||
|
* `SUBSONIC_PASSWORD`, your Subsonic password
|
||
|
* `DATABASE_URL`, the URL for a Postgres database
|
||
|
* `DAEMON_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
|