Inspiration

With such an expansive library of music, deciding what to listen to on Spotify can be a daunting task. Spontanify simplifies the process so that all you have to do is dial in a genre, then push to play.

How it works

Spontanify relies on an Arduino attached to a perfboard with a dial and button. The dial allows the user to scroll through the different genres of music. The Arduino is connected to a computer and interfaces with a python program. The computer displays the current genre, song, artist, as well as the next genre if you decide to change. With a push of the red button, the current song is opened in Spotify, with the genre the song was in as the playlist. This interface between python and Spotify was accomplished thanks to the Spotify Web API and Spotipy, a wrapper for the API. The code is also ported to Raspberry Pi.

Challenges I ran into

The most difficult part of the project was without a doubt working with the Spotify API, as many of its functions are limited, and because the API is less than a year old, not many support resources were available. I had to correct the Spotipy wrapper as well, as the latest version has several program crippling bugs. I also found porting the program to Raspberry Pi rather difficult, as parts of Spotipy had to be rewritten for the device.

Accomplishments that I'm proud of

I am proud of my code which detects the COM port the Arduino is located on. I am also proud of the clean and simple Arduino code. I am also proud of my port of the application to Raspberry Pi. Of all my accomplishments from this project, I am most proud of the simple interface between the Real world through the Arduino and the Python program, which breaks the information into easily understandable sections for the end user.

What I learned

I learned how to interface with the Spotify API, as well as how to interface an arduino with a python script. I expanded my understanding of python in general, and gained a great deal of experience in soldering through this project. I also learned how to port a program to the Raspberry Pi.

What's next for Spontanify

The end goal would be to create a self-contained model of Spontanify. This model would feature a small LCD screen displaying the same information that is currently sent to the console, and the same design of one button and one knob. This version could be the perfect device for any occasion, as you could instantly dial in the genre and stream from Spotify, without the need for a computer.

Share this project:

Updates