| 
														
															@@ -11,6 +11,8 @@ Note: librespot only works with Spotify Premium 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 # This fork 
														 | 
														
														 | 
														
															 # This fork 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 As the origin is no longer maintained I wanted to have a place for a version of librespot with other peoples forks and features merged. 
														 | 
														
														 | 
														
															 As the origin is no longer maintained I wanted to have a place for a version of librespot with other peoples forks and features merged. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+# Wiki 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+More information can befound in the [wiki](https://github.com/ComlOnline/librespot/wiki) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 # Credits 
														 | 
														
														 | 
														
															 # Credits 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 I've done nothing more than make this pretty so big thanks to:   
														 | 
														
														 | 
														
															 I've done nothing more than make this pretty so big thanks to:   
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -51,80 +53,8 @@ cargo build --release 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 A sample program implementing a headless Spotify Connect receiver is provided. 
														 | 
														
														 | 
														
															 A sample program implementing a headless Spotify Connect receiver is provided. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 Once you've built *librespot*, run it using : 
														 | 
														
														 | 
														
															 Once you've built *librespot*, run it using : 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 ```shell 
														 | 
														
														 | 
														
															 ```shell 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-target/release/librespot --username USERNAME --cache CACHEDIR --name DEVICENAME [--initial-volume 20] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+target/release/librespot --name DEVICENAME  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 ``` 
														 | 
														
														 | 
														
															 ``` 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-### All options 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-| Type     | Short | Long                | Description                                     | Hint        | 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-|----------|-------|---------------------|-------------------------------------------------|-------------| 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-| Option   | c     | cache               | Path to a directory where files will be cached. | CACHE       | 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-| Flag     |       | disable-audio-cache | Disable caching of the audio data.              |             | 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-| Required | n     | name                | Device name                                     | NAME        | 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-| Option   |       | device-type         | Displayed device type                           | DEVICE_TYPE | 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-| Option   | b     | bitrate             | Bitrate (96, 160 or 320). Defaults to 160       | BITRATE     | 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-| Option   |       | onstart             | Run PROGRAM when playback is about to begin.    |             | 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-| Option   |       | onstop              | Run PROGRAM when playback has ended.            | PROGRAM     | 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-| Flag     | v     | verbose             | Enable verbose output                           | PROGRAM     | 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-| Option   | u     | username            | Username to sign in with                        | USERNAME    | 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-| Option   | p     | password            | Password                                        | PASSWORD    | 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-| Flag     |       | disable-discovery   | Disable discovery mode                          |             | 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-| Option   |       | backend             | Audio backend to use. Use '?' to list options   | BACKEND     | 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-| Option   |       | device              | Audio device to use. Use '?' to list options    | DEVICE      | 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-| Option   |       | mixer               | Mixer to use                                    | MIXER       | 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-| Option   |       | initial-volume      | Initial volume in %, once connected [0-100]     | VOLUME      | 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-Taken from here: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-https://github.com/ComlOnline/librespot/blob/master/src/main.rs#L88 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-## 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 : 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-- ALSA 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-- PortAudio 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-- PulseAudio 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-## Cross-compiling 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-A cross compilation environment is provided as a docker image. 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-Build the image from the root of the project with the following command : 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-``` 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-$ docker build -t librespot-cross -f contrib/Dockerfile . 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-``` 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-The resulting image can be used to build librespot for linux x86_64, armhf (compatible e. g. with Raspberry Pi 2 or 3, but not with Raspberry Pi 1 or Zero) and armel. 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-The compiled binaries will be located in /tmp/librespot-build 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-``` 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-docker run -v /tmp/librespot-build:/build librespot-cross 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-``` 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-If only one architecture is desired, cargo can be invoked directly with the appropriate options : 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-```shell 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-docker run -v /tmp/librespot-build:/build librespot-cross cargo build --release --no-default-features --features alsa-backend 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-docker run -v /tmp/librespot-build:/build librespot-cross cargo build --release --target arm-unknown-linux-gnueabihf --no-default-features --features alsa-backend 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-docker run -v /tmp/librespot-build:/build librespot-cross cargo build --release --target arm-unknown-linux-gnueabi --no-default-features --features alsa-backend 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-``` 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-Don't forget to set the `with-tremor` feature flag if your target device does not have floating-point capabilities. 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-## Development 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-When developing *librespot*, it is preferable to use Rust nightly, and build it using the following : 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-```shell 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-cargo build --no-default-features --features "nightly portaudio-backend" 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-``` 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-This produces better compilation error messages than with the default configuration. 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 ## Disclaimer 
														 | 
														
														 | 
														
															 ## Disclaimer 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 Using this code to connect to Spotify's API is probably forbidden by them. 
														 | 
														
														 | 
														
															 Using this code to connect to Spotify's API is probably forbidden by them. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 Use at your own risk. 
														 | 
														
														 | 
														
															 Use at your own risk. 
														 |