Skip to content
Get insight from user's Spotify activities and create personalized playlists with user's own preferences.
Scala JavaScript CSS HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update Issue Templates (#21) Feb 9, 2019
api
client/web
.gitignore
.travis.yml
LICENSE
README.md Update README.md (#34) Apr 18, 2019

README.md

Moodify Build Status

Get insights from your Spotify activities and create personalized playlists with your own preferences.

Features

Moodify aims to help you to discover more tracks based on your own preferences. That is you can use audio features such as tempo, danceability, instrumentalness etc. to create a personalized playlist, which means you can ask for tracks which has less vocal, high bpm, great for dancing and uplifting your mood. Also doing that by specifying seed artists and tracks helps you to discover tracks with similar music taste with your favorite artists.

Aside from the discovery of new tracks, Moodify helps you to visualize your music style and let’s you understand how your music style is changing. You can see how your recent style is changing in last played three tracks with respect to your last fifteen tracks. Even more, you can see how your favorite tracks changed over time like a year ago, months ago or in last weeks.

Spotify API Usage

Moodify helps users to discover more tracks that matches their preferences. This is achieved by using many API endpoints that Spotify provides.

  • Song features are used to define user’s music style and visualize it.
  • User’s recently played tracks are used to visualize user’s current music style and how it is changing lately. They are also used as default seed artists and default audio feature levels for playlist recommendation.
  • User’s favorite tracks are used to show how user’s music style changed over time, with the help of top tracks from long term to short term.
  • Search is used to simply search for tracks and artists to select recommendation seeds.
  • An artist’s related artists are used to improve the recommendation seeds.
  • Playlist modification ability is used to save the recommended playlist under user’s account.

Installation

Install JDK and sbt.

You should run following command to compile the application with sbt. It will also fetch the missing dependencies.

sbt assembly

Start a local Redis server or edit test.conf file to connect your own Redis server.

Start the application with following command and it will start to listen requests on port 9000.

sbt
> reStart

Now the API is running. If you want to run the web application, you can simply use python for a local web server with following command. This will run the web application and make it listen to port 8000 on localhost.

python -m SimpleHTTPServer

Note that you need to set environment variables SPOTIFY_CLIENT_ID, SPOTIFY_CLIENT_SECRET and SPOTIFY_REDIRECT_URI for the application to run and communicate with Spotify API. If you do not have these credentials, you must create a Spotify developer account and register your app to get these credentials. For detailed information please check https://developer.spotify.com/documentation/general/guides/app-settings/

You can’t perform that action at this time.