LineUp Playlist

As an avid concert-goer, I like to find new artists by exploring the lineup of a concert. Creating a playlist of the upcoming concert allows me to find new artists while also listening to songs of the known headliner. While the task of creating a playlist is not tedious, it could be automated to remove hassle. From a Songkick link, an event discovery service, I want to create a Spotify playlist that holds the top ten songs of each artist performing at the concert, the headliner and openers. While this app is limited when the concert only has one artist, it will prove extremely useful when an event has multiple artists, such as a music festival.

Using the Model-View-Controller design pattern, I created a REST API using Python and Flask-restful to control the flow of data in order to generate a preview playlist, authenticate the user, and create the playlist within their Spotify account. The user interacts with my program using an iOS application

The application is very simple, with only a few screens. The user will find a concert in Songkick and paste the link in the search bar of the app:

At this point the REST API is getting the artists from the Songkick link. Using these artists, the program will access Spotify’s REST API to get the top ten songs of each artist, along with information for each track, such as the unique identifiers, album images and other details. My application’s API response will return a JSON string of the playlist contents, as well as concert and venue details from the Songkick’s API.

Using the contents of the JSON string, the iOS app creates a preview of the concert, seen below. Relevant concert details appear in the preview and will be included in the playlist description in Spotify. 

After reviewing the playlist contents, should the user want to save the playlist in their Spotify account, they click on the “Save to Spotify” button. If they are not authenticated, an OAuth2 screen will appear for them to log in to their Spotify account. Once logged in, another call is sent to the API creating and populating the playlist in their Spotify account.

Discussion

This project exposed me to the nuances of building a software from scratch, ranging from full stack development to creating a REST API to UX/UI. The highlights of creating this app were learning Swift, enhancing my Python and SQL skills, learning how to use Heroku and PostgreSQL, and designing (and redesigning) the architecture of the app. 

There is a lot of room for improvement, such as using Spotify’s iOS SDK to authenticate the user using their Spotify app. As I continue to work on the app, I will post updates here as well.

Thank you for taking the time to read this. If you have any questions, feel free to reach me through any of the ways below.

 

Take care.