Introduction

As musicians, we often overanalyze when listening to our favorite songs. With nuanced audio features like time signature, key, and energy, we saw an opportunity to merge our passion for programming with musicianship by building a recommendation engine powered by AI.


What is Spinder?

Spinder takes a playlist and analyzes each track’s audio features to recommend new songs. The user can swipe right (like) or swipe left (dislike), just like Tinder. From there, Spinder curates a personalized playlist based on the user’s preferences.


Tech Stack

  • Frontend: Swift
  • Backend: Flask + SQLAlchemy
  • Database: 1.2M+ Spotify tracks with nuanced audio features
  • AI Integration: Gemini API for track recommendations

Workflow:

  1. The frontend sends the playlist to the backend.
  2. The backend queries both Spotify’s API and our track database.
  3. Features are processed and sent to Gemini for recommendations.
  4. Results are returned to the frontend for user swiping.
  5. A curated playlist of liked songs is generated.

Challenges

  • Sending API requests from Swift
  • Adapting to long, intense hackathon hours
  • Collaborative development with Git
  • Spotify deprecating API features, which then forced us to pivot and integrate the ReccoBeats API

Achievements

Despite setbacks, we built a fully functional AI-powered music recommender in just one day. Models like this already shape many apps we use daily, and incorporating them into our very first project shows promise for future work.


Lessons Learned

  • Effective team collaboration using version control
  • Connecting multiple components (DB ↔ backend ↔ frontend)
  • Working with AI API requests

Future Plans

We plan to update Spinder regularly, and potentially expand it into a social music app where people connect through shared tastes.

Share this project:

Updates