librespot/README.md

91 lines
2.6 KiB
Markdown
Raw Normal View History

# librespot
*librespot* is an open source client library for Spotify. It enables
applications to use Spotify's service, without using the official but
closed-source libspotify. Additionally, it will provide extra features
which are not available in the official library.
## Status
*librespot* is currently under development and is not fully functional yet. You
are however welcome to experiment with it.
## Building
Rust 1.7.0 or later is required to build librespot.
It also requires a C, with portaudio.
On debian / ubuntu, the following command will install these dependencies :
```shell
sudo apt-get install build-essential portaudio19-dev
```
2015-12-18 18:01:25 +00:00
2016-03-17 13:20:27 +00:00
On Fedora systems, the following command will install these dependencies :
```shell
sudo dnf install portaudio-devel make gcc
2016-03-17 13:20:27 +00:00
```
On OS X, using homebrew :
```shell
brew install portaudio
```
Once you've cloned this repository you can build *librespot* using `cargo`.
```shell
cargo build --release
```
## Usage
A sample program implementing a headless Spotify Connect receiver is provided.
Once you've built *librespot*, run it using :
```shell
2016-07-06 07:32:43 +00:00
target/release/librespot --username USERNAME --cache CACHEDIR --name DEVICENAME
```
## Discovery mode
*librespot* can be run in discovery mode, in which case no password is required at startup.
For that, simply omit the `--username` argument.
2016-03-16 00:05:05 +00:00
## Facebook Accounts
2016-12-31 13:30:01 +00:00
*librespot* can use Facebook for authentication.
2016-03-16 00:05:05 +00:00
```shell
2016-07-06 07:32:43 +00:00
target/release/librespot --cache CACHEDIR --name DEVICENAME --facebook
2016-03-16 00:05:05 +00:00
```
This will print a link to the console, which must be visited on the same computer *librespot* is running on.
## Audio Backends
*librespot* supports various audio backends. Multiple backends can be enabled at compile time by enabling the
corresponding cargo feature. By default, only PortAudio is enabled.
A specific backend can selected at runtime using the `--backend` switch.
```shell
cargo build --features portaudio-backend
target/release/librespot [...] --backend portaudio
```
The following backends are currently available :
2016-03-14 02:16:59 +00:00
- ALSA
2016-03-20 19:16:32 +00:00
- PortAudio
2016-03-21 15:39:48 +00:00
- PulseAudio
## Development
When developing *librespot*, it is preferable to use Rust nightly, and build it using the following :
```shell
2016-07-06 01:29:38 +00:00
cargo build --no-default-features --features "nightly portaudio-backend"
```
This produces better compilation error messages than with the default configuration.
## Disclaimer
2016-07-06 07:32:43 +00:00
Using this code to connect to Spotify's API is probably forbidden by them.
Use at your own risk.
## Contact
Come and hang out on gitter if you need help or want to offer some.
https://gitter.im/sashahilton00/spotify-connect-resources
## License
Everything in this repository is licensed under the MIT license.