On popular social news aggregation platform Reddit, there are communities/subreddits dedicated to music discussion, such as r/hiphopheads, r/electronicmusic, r/indieheads. In these communities, users post about the latest music, videos and news relating to their favorite artists.
jukebox is a web application that extracts user-submitted song recommendations from the abundance of information that is available in these music communities. It supports music playback with Spotify, allowing users to listen to the recommended songs on jukebox, streamlining their music discovery and listening experience.
- FastAPI
- React
- SQLite
- PRAW
- Spotify-API
The application integrates with Spotify, allowing users to play recommended tracks through the browser. On application launch, users will be greeted with the Spotify login page, prompting for user authentication.
A premium Spotify account is required in order to use the Spotify API for music playback. The application automatically refreshes access tokens to ensure that users remain authenticated with Spotify over prolonged application usage.
Once authenticated, users will be brought to the Discover page, where they have the following music genre options to choose from:
- Hip-Hop, from r/hiphopheads
- Electronic, from r/electronicmusic
- Indie, from r/indieheads
- General, from every genre listed above
Upon selecting a genre, a list of recommended tracks will be displayed along with the following information:
- Song title
- Song artist(s)
- Timestamp of associated Reddit post
- Song duration
In the Listen page, a playlist is shown, consisting of tracks added from the Discover page. At the bottom of the page, the music player is used to control music playback.