How to build a headless Spotify Streaming box
- Published on
Let's make a Spotify streaming box! Here are some of the things we need for this:
- A headless Linux machine
- Speakers
- Spotify
Background
Spotify has a feature called Spotify Connect that lets you use Spotify on one device as a remote for Spotify on another device. This lets you control music on your computer from you phone, for example.
Helpfully, they recently added support for Connect to their official (but unsupported) client for Linux.
Basic Instructions
- SSH into your machine and install Spotify for Linux.
- Install xvfb:
sudo apt-get install xvfb
. This is used as a dummy display for the Spotify application. - Using X11 forwarding, login to Spotify (ssh with the -X or -Y flag and run the
spotify
command) - Kill the
spotify
process and restart it usingxvfb-run spotify
. You may want to run this command on boot. - Spotify Connect should work!
If you want more detail, continue reading. Otherwise, that's it!
Detailed instructions
First, let's follow Spotify's instructions for installing their Linux client.
If we try running spotify
, we run into an issue almost immediately: the Spotify for Linux client doesn't work without a display. We can solve this problem by using xvfb to run it on a dummy display.
Great! However, we still need to login to Spotify before we can do anything useful. How do we do this without a display? The spotify
command doesn't take any username or password arguments. Instead of using the dummy display, let's use X11 forwarding (ssh -X or ssh -Y) for now. This lets us "forward" the login window to a machine with a display. Once we login, we can go back to running spotify using xvfb. At this point, Spotify Connect should work and you should be able to control music on the headless box from other Spotify clients.