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.
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.
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
$ 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.
Run the tests from the project's root folder:
$ python run_tests.py
...
----------------------------------------------------------------------
Ran 56 tests in 0.943s
OK
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.