GithubHelp home page GithubHelp logo

vidushi260 / moodify Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mahnoorshafi/moodify

0.0 0.0 0.0 88.43 MB

Generates mood based playlists using Spotify listening history

Python 54.48% HTML 18.62% JavaScript 17.42% CSS 9.48%

moodify's Introduction

Moodify

Moodify is a web application that uses the Spotify API to generate playlists based on a users Spotify listening history and current mood.

Table of Contents

Overview

Once authorized, Moodify gathers and stores a users listening history in a PostgreSQL database along with information for three audio features: danceability, energy, and valence. In order to uniformly segment the data provided by Spotify, Moodify normalizes the audio feature data for each user and an algorithm is applied to the normalized values to create a playlist with tracks specific to the user and their current mood. Once the playlist is created, the users can then view and play their playlist through Spotify as well as Moodify itself.

Tech Stack

Frontend: ReactJS, Javascript, Jinja, jQuery, Bootstrap
Backend: Python, Flask, SQLAlchemy, PostgreSQL
Libraries: Scipy, Numpy
APIs: Spotify

Setup/Installation

Get Client ID and Client Secret from Spotify and save them to a file secrets.sh:

export SPOTIFY_CLIENT_SECRET=YOUR_KEY
export SPOTIFY_CLIENT_ID=YOUR_KEY

On local machine, go to directory where you want to work and clone Moodify repository:

$ git clone https://github.com/mahnoorshafi/Moodify.git

Create a virtual environment in the directory:

$ virtualenv env

Activate virtual environment:

$ source env/bin/activate

Install dependencies:

$ pip install -r requirements.txt

Create database:

$ createdb moodify

Create your database tables:

$ python3 model.py

Source secrets.sh:

$ source secrets.sh

Run the app:

$ python3 server.py

Open localhost:5000 on browser.

Demo

Log in through Spotify and create your playlist by selecting a mood:

Homepage

Once created, play your playlist through Spotify Web Player or through Moodify:

Selecting Mood

View playlist and select song to play as well as skip through songs:

View and Play Playlist

Future Features

  • Fine tune algorithm that selects songs
  • Give user's the ability to view all their past mood playlists
  • Option to preview playlist and then save it

moodify's People

Contributors

mahnoorshafi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.