Plexamp Headless is incredible and lets you turn a Raspberry Pi or other Linux-based computer into an excellent music player. Combined with a DAC and your music in Plex Media Server, you really can't go wrong. Plexamp Headless makes a perfect upgrade to your listening room.
Here's how to get it installed:
I will assume a few things: You've already set up a Raspberry Pi and your DAC if you have one (I recommend a HifiBerry DAC2 Pro), and you also know how to use SSH and the command line to move around a Linux system. I will also assume you have a Plex Media Server running and an active PlexPass subscription.
Note: This guide has been updated for PlexAmp version 4.10 🎉
Step 1: Connect via SSH
ssh [email protected]
Step 2: Update and Upgrade
sudo apt-get update && sudo apt-get upgrade
This may take a few minutes. Install any needed updates.
Step 3: Install Node.js
PlexAmp Headless runs on Node.js, version 20, to be specific. So we need to install this first. Run these commands to get it installed:
sudo apt-get install -y ca-certificates curl gnupg && sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
NODE_MAJOR=20
echo deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main | sudo tee /etc/apt/sources.list.d/nodesource.list
sudo chmod a+r /etc/apt/keyrings/nodesource.gpg
sudo apt-get update && sudo apt-get install -y nodejs
Step 4: Check Your Node.js Version
node -v
If, for some reason, the installed version is not 20.x, you can use Node Version Manager (NVM) to change it:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
nvm -v
nvm install v20.11.1
nvm use v20.11.1
Step 5: Install Plexamp Headless
Download and unzip Plexamp Headless
curl https://plexamp.plex.tv/headless/Plexamp-Linux-headless-v4.10.0.tar.bz2
tar -xvf plexamp.tar.bz2
Step 6: Get Your Plexamp Token
Run PlexAmp for the first time manually to input the claim token:
node plexamp/js/index.js
Visit https://plex.tv/claim, copy the claim code, paste it in the Terminal, and follow the prompts.
Step 7: Give it a try!
Run PlexAmp one more time:
node plexamp/js/index.js
Now visit http://<your_IP_or_Hostname>:32500
in your browser, log in, and choose a library as your source. Double-check your audio settings under Settings>Playback>Audio Output>Audio Device if needed.
Step 8: Setup Plexamp Headless to start automatically as a service
Plexamp ships with a service file for systemd
. Here's how to install it:
First, open up the unit file and ensure the paths and user are correct:
nano plexamp/plexamp.service
Double-check every location where the username is called out - the default is pi
and adjust accordingly.
Note: if you needed to use NVM
when installing Node.JS, the ExecStart
command should look something like this:
ExecStart=/home/pi/.nvm/versions/node/v20.11.1/bin/node /home/pi/plexamp/js/index.js
Save the file and return back to the prompt. Let's install the service.
cd plexamp
sudo cp plexamp.service /lib/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable plexamp
sudo systemctl start plexamp
And now, perform a restart just to make sure things are working upon startup.
sudo shutdown -r now
Once you are back online, revisit Plexamp at http://<your_IP_or_Hostname>:32500
in your browser to make sure it comes up.
Moving forward, you can also manage the PlexAmp service using commands like:
# Start Service
$ sudo systemctl start plexamp
# Stop Service
$ sudo systemctl stop plexamp
# Restart Service
$ sudo systemctl restart plexamp
# Check Service Status
$ sudo systemctl status plexamp
Enjoy!
There you have it - Headless Plexamp up and running on your Raspberry Pi. Enjoy your music! 🎧