What song should I listen to? Happy songs? Sad songs? With around 97 million songs online, it's often difficult to decide which song fits your current mood. Not only that but listening to old playlists can get repetitive and boring. Enter Spotion, a personalized music recommender built to give users songs and playlists based on their current mood.
What it Does?❓❗
The user can either take a picture with a live webcam or upload a picture of themselves onto the Spotion website. Once the user clicks submit, Spotion sends the image to our backend (written in NodeJS) to analyze the emotions of the face in the picture. A few seconds later, Spotion receives the response and outputs a randomly chosen playlist and song onto the screen. The user is able to click the playlist/song and get taken straight to Spotify and add the playlist to their library! Remember, make sure you take your picture in a well lighted area with not too many distractions.
How we built it? 💻
- HTML, CSS, Bootstrap (making Spotion look nice :)
- NodeJS (reading the emotions)
Challenges we ran into 😱
Times zones were a challenge for us.
- Ganning is in North Carolina (EST)
- Sanay is in California (PST)
- Erin is in England (GMT+1)
- Here4Quantum is in England (GMT +1)
Accomplishments that we're proud of 😎
- We're really proud of creating a backend that was able to take an image and read the emotions in that image (or if there is no face in the image, tell the user).
- We're also really proud of embedding a live webcam on our website. The user can choose to either upload a picture of themselves OR they can take a picture with the webcam.
What we learned👨🏻🎓
- How to create a backend in NodeJS
- How to take a base64 string from the webcam and pass it to our backend (at first we used the file upload)
- How to make a frontend connect with the backend!
What's next for Spotion 🎵 .
- Integrating Spotion with the Spotify API to be able to automatically add a playlist to a user's account
- Creating an iPhone and Android app for Spotion for ease of use on mobile devices.