okjuan / muze

Because I'm too picky for Spotify song radios

Home Page:https://muze-player.herokuapp.com/#

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Overview

Muze Radio is a web app for interactively exploring and listening to music. This is its source code repo.

The app integrates with Spotify's Web Playback SDK for streaming music and Web API for compiling music metadata.

The app consists of:

  • A minimal web client that streams music and communicates user events to the server via web sockets.
  • A server app that contains a music knowledge API exposing info about musical entities (songs, artists, genres, relationships therein) that is internally organized using a semantic network.

Music Knowledge API

The Music Knowledge Representation API exposes a collection of functions that encapsulate all SQL queries and logic relating to managing the database; through the API, callers may retrieve/add information from/to the database. Among other things, the API supports queries such as:

A detailed description is available in design_docs/Music Knowledge Base Design Doc.pdf. This component was originally developed as part of a distinct, collaborative project.

Development

To run the app, you need SQLite3, Python 3.5 or higher, and pip. To actually use the app, you need a Spotify premium account for streaming music.

Install Python packages:

$ pip install -r requirements.txt

Running the App Locally

$ bash app/run-local.sh

The script:

  • Temporarily points the client to localhost
  • Opens an SSH tunnel to Serveo to make the app running locally publicly available

NOTE: A Spotify premium account is necessary to stream music.

Unit Tests

Run the tests from the project's root folder:

$ python run_tests.py
...
----------------------------------------------------------------------
Ran 56 tests in 0.943s

OK

Known Issues

Issues, bugs, and impending work are organized in the GitHub project. Some issues include:

  • API handles ambiguity naively (e.g. if an artist name has multiple matches in the database).
  • The app loads only on Chrome browser.

About

Because I'm too picky for Spotify song radios

https://muze-player.herokuapp.com/#


Languages

Language:Python 77.7%Language:JavaScript 13.7%Language:TSQL 4.4%Language:HTML 2.2%Language:CSS 1.3%Language:Shell 0.8%