Web service for maintaining special Spotify playlists
Find a file
2024-12-04 14:21:11 +01:00
src fix(monitoring): fix typo in prefix 2024-12-04 14:21:11 +01:00
static feat: fix styling of union-creation page 2024-04-26 19:43:07 +02:00
.gitignore feat(login): add redirect page after login 2024-03-18 22:46:14 +01:00
Cargo.lock chore: update dependencies 2024-06-07 20:26:53 +02:00
Cargo.toml chore: update dependencies 2024-06-07 20:26:53 +02:00
config_job-service_example.toml chore: rm recent_duration config 2024-04-29 10:04:19 +02:00
config_webserver_example.toml chore: rm recent_duration config 2024-04-29 10:04:19 +02:00
LICENSE License and improve Cargo.toml 2023-07-23 00:48:34 +02:00
README.md feat: adjust README, add example configs 2024-04-11 13:30:57 +02:00

PL-Service is a web service, that allows Spotify users to create a personalized playlist containing the most recently published tracks of all followed artists and updates this playlist regularly.

You can try it out at the public instance at (plservice.tecks.eu)[https://plservice.tecks.eu].

Prerequisites

Spotify client credentials

Before you can start the service you need to registering the app to get the necessary client credentials. (https://developer.spotify.com/dashboard/applications)

The service expects the client ID and client secret you get from Spotify to be set as environment variables RSPOTIFY_CLIENT_ID and RSPOTIFY_CLIENT_SECRET. If they are not present, it may also read them from a .env file.

Database

PL-Service uses a CouchDB to store user data and information on created jobs and Redis to store user sessions.

Build

To build the service for production run the following in the cloned repository:

$ cargo build --release

This compiles both binaries PL-Service consists of.

Configuration

This repository contains the exemplary config files config_webserver_example.toml and config_job-service_example.toml, which can be used to configure the corresponding service. The files need to be adjusted before they can be used. All possible options and arguments are explained in the example files.

Running

To run the service two executables must be started by running the following commands:

$ cargo run --bin=webserver -- --config-file <config_webserver.toml> &
$ cargo run --bin=job-server -- --config-file <config_webserver.toml>

or, if you already built the executables:

$ ./target/release/webserver &
$ ./target/release/job-service

TODOs

  • Possible new features include creating/maintaining unions or intersections of arbitrary playlists.
  • Creation of playlist containing the most played tracks.