Inspiration
Services like Spotify have drained the life out of finding new music. Used music stores promote the discovery of new esoteric music, but there aren't many well-implemented online equivalents. Websites like Rate Your Music expose underappreciated artists, but the UI is not easy or intuitive to use, making it more of a hassle than necessary for most people
What it does
It takes a growing database of musical artists' projects and uses that to make smart recommendations based on the user's previous listening history.
How we built it
We used a NextJS frontend paired to a backend built with Python that implemented various APIs to access things like OpenAI's vector embedding models, Spotify's user data, Supabase's auth, and MusicBrainz's database of artists and releases.
Challenges we ran into
Finding recent and relevant data was difficult, so we built a crawler bot from scratch to extract a limited and diverse group of music well received by users yet not considered mainstream. We also needed a way to represent how similar albums are to each other, so we used vector embeddings trained on genres to allow users to find albums that are similar to the ones they love.
Accomplishments that we're proud of
The usage of various tools at our disposal, like Figma, OpenAI, and various Python libraries, allowed us to create a comparable recommendation engine to streaming giants such as Spotify that can only improve with more data! Also, being able to leverage the power of machine learning in order to help users find more music they love is great!
What we learned
We learned a lot about how recommendation algorithms work and how abstract data such as an album is stored in such ways that allow it to be numerically compared to similar objects
What's next for niche.ai
We plan to improve the range of dataset and how we embed the entities in our database to provide better and more varied recommendations.
Built With
- fastapi
- nextjs
- openai
- python
- spotipy
- supabase
- typescript
Log in or sign up for Devpost to join the conversation.