JAMMS is Just A Music Maintainer for Spotify!
JAMMS is a Node.js web application meant to modify, manipulate, and maintain Spotify playlists and libraries in ways that are currently not supported natively or easily within Spotify today.
The application's primary motivation is to introduce "smart playlist" functionality within Spotify, similar to older versions of iTunes.
The web application can be found here - https://jamms.app
JAMMS was inspired by many applications like it, but in particular PLYLST which has recently been taken offline.
Although PLYLST is open source, JAMMS is meant to approach the same problem for individual users rather than as a service for all users.
For bugs, issues, and features to be developed, see the Issues section of this repository.
For security issues and vulnerabilities, see the Security Policy.
The following is a small guide on how to run this application from source locally. This section is not necessary for users to interact with the hosted version of this web application currently deployed.
For anyone looking to clone or fork this repository, this is a good place to start to get up and running quickly!
This application will not run properly without specific secrets (not included in the repository for security reasons).
For more information on where these secrets come from, see Spotify's documentation on Application Settings.
In a development (local) environment, these secrets come from a development.env
file in the environment directory and are hard-coded as key-value pairs. Within the application, the keys and respective values are injected as environment variables.
In a production environment, these secrets are injected via environment variables with the same name as those present in the .env
file.
A .env.example
file is shown in the environment directory to provide a list of all secrets (environment variables) that are required for this application in both development and production.
To run this application locally:
- Within the
environment
directory off of root, copy the.env.example
file to a new file nameddevelopment.env
. - Replace one example value with the appropriate value for each key.
- Repeat until all keys have their appropriate values in a environment.
Note - this application requires both Node.js
and npm
in order to run. You can download both (npm
comes with Node.js
) here.
In order to start-up the application locally, run npm install
in the root directory of the repository. This will pull the necessary packages listed in package.json
and package-lock.json
from npm
(Node Package Manager) into the node_modules/
folder locally.
To start up the application after pulling the dependencies, simply run node index.js
in the root directory of the repository. You can instead run nodemon index.js
if you wish to make changes and see them updated by node
as you save them.
Once the application is started, open a browser and navigate to http://localhost to start to interact with it.