Skip to content
/ topify Public

A Spotify web app that generates custom recommended playlists based on your top tracks.

Notifications You must be signed in to change notification settings

jmejco/topify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Topify

A web app based on the Spotify API.

Topify is a web app that generates personalized recommendations based on a user's most listened to tracks on Spotify. It is built using a Python-Flask backend and leverages the extensive Spotify Web API.

Demo

Getting Started

Before testing the code, you have to first obtain a client ID and client secret after registering as a Spotify Developer.

Setting up Spotify Developer API

Go to the Spotify Dashboard and create a new Client ID. Follow these steps to create your client application.

Redirect URI

After the app is created, open the app settings and add the callback URI for the host of the app to the Redirect URI whitelist. This is to get the access token to enable authorized requests.

Environment Setup

Setup a new python virtual environment and install the requirements after cloning the repository.

git clone https://github.com/jamesjojijacob/topify.git
cd topify
python -m venv env
activate
pip install -r requirements.txt

Database Setup

The database used for the app is Cassandra. To get a local Cassandra instance running, pull the latest Cassandra image from Docker and map the port as follows:

docker pull cassandra
docker run -d cassandra -p 9042:9042 --name cassandra
docker exec -it cassandra cqlsh

To create a keyspace for the app inside the running container:

CREATE KEYSPACE topify WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor' : 1};

Editing config.py

Edit the config.py file to add the Spotify client details, the host IP and the database details.

CLIENT_ID = 'client-id-from-spotify'
CLIENT_SECRET = 'client-secret-from-spotify'
SERVER_IP = 'your-server-ip'
CASSANDRA_HOSTS = 'cassandra-hostname'
CASSANDRA_KEYSPACE = 'cassandra-keyspace-name'

To run locally, both CASSANDRA_HOSTS and SERVER_IP should be the localhost IP.

Run the app with:
python app.py

About

A Spotify web app that generates custom recommended playlists based on your top tracks.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published