Inspiration

We all love music and wanted to connect our music listening habits to geography.

What it does

The application takes a Spotify playlist and maps the geographic locations of all of the different artists featured in it. It then gives music suggestions from countries that aren't on your list based on the artists that you like, to try and expand your music listening habits to new corners of the globe.

How we built it

It's a React App created using the ArcGIS Javascript API; all the back end is done through Python code using the Spotify and MusicBrainz APIs. The app pulls artists from a Spotify playlist and related artists to that playlist and then feeds them into the MusicBrainz library, where it extracts location data. The ArcGIS Javascript API then maps that location data to display in green the countries present in the playlist and in pink a selection of recommended artists from different countries. It also displays clickable links at the bottom of the page to easily navigate back to Spotify and add the recommended artists to your original playlist.

Challenges we ran into

JavaScript API does not work well with React; we had to develop a workaround. Also, a lot of data was returned by the various APIs, which had very complex data structures that we had to parse through. The Spotify API also doesn't return locations, so we had to work around this issue by using a second API (MusicBrainz). The app takes about a minute to a minute and a half to run, and free web hosting services max out at around thirty seconds, so for our app to work anywhere other than our local PC's we would need to pay for hosting services. This time delay is mostly related to asking the API for so much data; if we could host this data on a local server, it would dramatically speed up the process.

Accomplishments that we're proud of

We overcame a lot of technical issues early on, from rapidly scrolling maps to all kinds of problems with the data output from the APIs. We're also pretty proud of our final map output, because it accomplishes exactly what we set out for it to do, and we wish it were possible to publish it online for others to access for free. Everyone was able to find their part in our project and to quickly master skills they had not used before. Our application also generated some song suggestions for our group which we are having a lot of fun listening to in our free time.

What we learned

We learned a lot about how to use the three API's we worked with, which we had not used before. We learned a lot about each other, what our specialties are, and how to work together as a group. We also gained experience working with a tough deadline and prioritizing different parts of our project over others to ensure we finished within the constraints.

What's next for GeoTune

Currently GeoTune almost always returns artists in the same language as those in the original playlist, so it would be cool to teach it to return artists in different languages. MusicBrainz API also sometimes returns city values instead of country values, which will confuse our algorithm, so that would be another hiccup to address moving forward. Finally, we'd love to add some more artwork and design features to the final page, like album covers and national flags, something we didn't have enough time to get to.

Built With

Share this project:

Updates