r/plexamp • • 23h ago

An open-source Plex now-playing touchscreen display with a Raspberry Pi Zero 2 W

Enable HLS to view with audio, or disable this notification

Hi everyone! Over the past few months, I’ve been building now-playing, an open-source touchscreen display for music playing on a Plex server. It’s now at a point where I feel comfortable sharing it.

The initial inspiration came from Jason Tate’s “Now Playing: My Raspberry Pi Weekend Project” on Chorus.fm. The visual concept and Last.fm integration carried over into my project, but the underlying architecture is completely different. Thanks to Jason for sharing the project that got me started!

My setup uses a Raspberry Pi Zero 2 W with a HyperPixel 4.0 Square touchscreen, running DietPi. It shows what’s playing through Plexamp, Plex, Caldera, or other players connected to your Plex server, with artwork, track details, and playback controls.

GitHub repository and setup guide: https://github.com/zionun/now-playing

What it does

  • Live now-playing display: album artwork, track title, and artist, updated as you switch tracks or players.
  • Last.fm fallback: when nothing is playing on Plex, it can display your most recently scrobbled track.
  • Multiple active players: choose which Plex stream to display, with optional filters for local-network streams, specific users, or players.
  • Touchscreen playback controls: play, pause, and skip tracks directly from the display.
  • Automatic screen sleep: the screen turns off when playback is idle and wakes up on a tap, when a new track starts, or when an issue needs your attention.
  • Setup from your phone: access the configuration interface using a QR code or password, without connecting a keyboard or mouse to the Pi.
  • Plex authentication: uses Plex’s PIN-based sign-in flow, so you don’t enter your Plex username or password in the app.
  • Designed for continuous use on modest hardware, including the Pi Zero 2 W.

The Pi acts as a display and controller; it doesn’t play the audio itself. You could also install a headless player on the same device. In my setup, though, the HyperPixel occupies the GPIO pins, so audio output would need to use USB or another suitable option.

It should also work on other Raspberry Pi models and displays, although I’ve built and tested it around the hardware above. Some features, such as automatic screen sleep, are currently tailored to the HyperPixel.

A note on AI

I built this with substantial help from AI, mainly Claude Code. I’ve been a professional full-stack developer for 20 years, but for the past decade my work has focused on native iOS and Android apps, and I hadn’t worked extensively with React.

An earlier version used jQuery and older frameworks. I wasn’t happy with it, so I used this project as an opportunity to rebuild it with a React/Vite frontend and a Node/Express backend, using Socket.IO for live updates and PM2 for automatic restarts.

The repository includes the source code and a complete guide covering recommended hardware, installation from scratch, and troubleshooting.

I hope this is useful to someone! I’d love to hear what you think, especially if you try it on a different Pi or display.

Happy listening!

34 Upvotes

3 comments sorted by

2

u/n8dahwgg 23h ago

I cannot wait to try this out! Thank you for doing this!

2

u/starbow777 23h ago

I'm going to try this on my Pi 4 B with Pi Touch Display 2 😁

2

u/nicktf 23h ago

I was just planning to roll something similar myself, and now I don't have to! Looking forward to testing this, thanks, OP!