Interlude Server
Convert share links of one music streaming service to another. Currently supported are:
| Spotify | Tidal | Deezer | Apple Music | |
|---|---|---|---|---|
| Songs | ✅ | ✅ | ✅ | ❌ |
| Albums | ✅ | ✅ | ✅ | ❌ |
| Artists | ❌ | ❌ | ❌ | ❌ |
There are several clients that make use of the Interlude server that offer a comfortable user experience:
Installation
Cargo
The easiest way to install interlude_server is using cargo.
If you have the Rust toolchain setup, the latest version can be installed using the following command:
GitHub Release
An alternative way to run the interlude server is using one of the provided release executables. There are Windows and Linux releases for x86_64, although the Windows version is not signed so Windows might complain.
Building from source
To build the application from source you need to have the rust toolchain installed.
Clone this repo and run cargo build --release to compile the application.
The binary can be found under ./target/release/interlude.
Docker
The server can also be run using Docker. A Docker Compose file is provided.
# Docker Compose verwenden (Port 30002)
# Oder manuell:
Configuration
The application is configured via a Config.toml file in the same directory as the binary.
To be able to convert links from and to Spotify and Tidal you need to setup authentication with their API yourself by
providing your client_id and client_secret.
# The address on which the server will listen for requests
= "0.0.0.0"
# The port the server will listen on
= 5000
# The address under which you want to expose the server to the outside
= "your.domain.com:443"
# The password used to 'secure' the API. You have to provide it base64 encoded
# in the Authorization Header for each request
= "secret_password"
# Your credentials for the various APIs
[]
= { = "{client_id}", = "{client_secret}" }
= { = "{client_id}", = "{client_secret}" }
Usage
To run the server execute the binary. If you have installed the application using
cargo install or added the binary to your $PATH you can start the server using the following command:
Using the default configuration the server will be listening on 0.0.0.0:5000 and will provide the following endpoints:
Link conversion
GET /convert?link={share_link}
Example
Request
Response
Query supported streaming services
GET /providers
Example
Request
Response
[
{
}
{
}
{
}
Access public files
GET /public/{filename}
Example
Request
Response
The spotify_logo.png file.