Nowify 2: a Spotify Now Playing Screen for Raspberry Pi

Image of a Raspberry Pi screen displaying Nowify, an app to show Spotify song data.

In June 2018, I set out to improve my Javascript knowledge by building something that interested me: a Spotify Now Playing Screen for the Raspberry Pi. At the time, I thought I did fairly well. I released the code on GitHub and even wrote a blog post about it.

Fast forward to 2021, I still get occasional messages about setting up Nowify and the struggles people run into. I appreciate these messages loads, and always feel guilty when I have to reply with a sort of 'well the thing is, this is old and not written great, that's on me' response. As my Javascript knowledge progressed, rewriting Nowify was always something on my agenda.

Today, I released a 2.0.0 update to Nowify to the repository! Check out the code here.

Nowify is a small app designed for the Raspberry Pi which uses the Spotify API to display your currently playing track in real-time.

I've added instructions to the repository of how to get set up. The setup in the original version was way too long-winded and has become quickly outdated. This time around, the steps (and my instructions) are much more clear.

Hardware

This is designed for a Raspberry Pi with a screen. This really isn't a hardware intensive app, so it should work on all Raspberry Pi's, but here's what I use:

In my previous post, I opted for a Waveshare screen and a custom Frame, which I think was a nice choice. This time round, I've gone sleek and official.

The code

Nowify 2.0.0 is built using Vue, which has made the reactive nature of Nowify much more pleasant to build. I would still consider Nowify a learning exercise (in Vue this time, not ES6), so I think that there's still definitely things that can be improved. Overall, I am happy with it.

Using it

I've written full instructions in the GitHub repo on how to get setup with this, so the instructions should be fairly straight forward.

Once you login to the app, your authorisation details will be stored in the browser and make use of Access and Refresh Tokens to ensure that you continue to be logged in betewen multiple sessions. This was by far my biggest issue with the original Nowify, as being logged out constantly would essentially make this useless.

I've been using it for a few days on my personal device, and it seems to be going nicely so far!