chen-jin021 / music-rs

A dual-feature data portable MRS designed to predict user's music preferences under two recommending algorithms and bridge the gap between various music streaming platforms, notably Spotify and TIDAL.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tidalify - Enhanced Music Recommender Engine with Machine Learning and Custom Tuning [Spotify & TIDAL]

index_page

A Flask project that offers two features of which provides music recommendations to users based on Spotify music platform.

Feature 1: Recommender System based on Content-Based Filtering Algorithm

playlist_recsys

Feature 2: /Recommend API & User Tuning

For Custom Tuning feature, user have the ability to alter some of the audio features (12 sonic characteristics that are availble through Spotify API) for music recommendation. They can input their favorite songs or artists along with auio_features to generate a playlist recommended to them straight back in their Spotify playlist. This feature uses the Spotify's oauth protocol for user authentication.

custom_tuning

Information Page

For more information regarding the functionalities offered in this projuct, please refer to the information page. Since the application needs to access features within Spotify SDK, it requires certain user scopes. You can also revoke permissions from the link provided here.

How to use

To clone the repository:

git clone https://github.com/chen-jin021/music-rs.git

To install the dependencies:

pip install -r requirements.txt

You will also need to set up your own environment variables for Spotify and Tidal. Variables like CLIENT_ID, CLIENT_SECRET are used for API calls to these two music platforms. For Spotify API acquisition, please aquire necessary credentials here Spotify for developers account. You will also need to set up the callback route within Spotify Developer Dashboard for rerouting. Simiarly for TIDAL.

Repo Structure

├── README.md              <- The top-level README for developers using this project.
│
├── reference
│   ├── notebooks          <- Serialized Jupyter notebooks created in the project.
│       ├── script         <- Script for data extraction and loading data
│       ├── Extraction     <- Data extraction using Spotify API
│       ├── EDA            <- Exploratory data analysis process.
│       └── Recsys         <- The training of traditional statistical models.
│   ├── data
│       ├── raw            <- The original, immutable data dump.
│       ├── processed      <- The preprocessed data sets for training.
│       ├── test           <- The test data sets for testing.
│       └── final          <- The final data sets for modeling.
│   ├── models             <- Trained models, model predictions, or model summaries.
│
├── application            <- Code for model deployment and website design
│
├── data1                  <- Pretrained data for model
│
├── venv                   <- Environment
│
└── requirements.txt       <- The requirements file for reproducing the analysis environment.

About

A dual-feature data portable MRS designed to predict user's music preferences under two recommending algorithms and bridge the gap between various music streaming platforms, notably Spotify and TIDAL.


Languages

Language:Python 95.9%Language:Cython 2.2%Language:C 1.1%Language:Jupyter Notebook 0.4%Language:C++ 0.1%Language:TeX 0.1%Language:HTML 0.0%Language:JavaScript 0.0%Language:Fortran 0.0%Language:CSS 0.0%Language:PowerShell 0.0%Language:Roff 0.0%Language:Shell 0.0%Language:Smarty 0.0%Language:MATLAB 0.0%Language:XSLT 0.0%Language:Makefile 0.0%Language:Procfile 0.0%