Clean up Spotify playlists for smoke pit usage.
smoke-pit-playlist converts your explicit Spotify playlists into clean Spotify playlists, so you can listen to your favorite music when your NCOs are around!
Project modified from original project here.
- Login to your Spotify Developer Dashboard
- Create a "New App" and record your Client ID and Client Secret
- Go to "Edit Settings" within your project and set the Redirect URI to http://localhost:3000/callback and save
- Clone this GitHub repo or download the ZIP file. This example saves it to your desktop:
cd Desktop
git clone https://github.com/ajmeese7/smoke-pit-playlist.git
cd smoke-pit-playlist
- Once you're in the project directory in your terminal, run
npm install
. - Add your Client ID and Client Secret from your Spotify Developer Dashboard into
/src/.env
:
CLIENT_ID=YOURCLIENTID
CLIENT_SECRET=YOURCLIENTSECRET
- Run the following commands
cd src
npm run devstart
- Go to
http://localhost:3000/
in your browser - Login with Spotify and clean your playlists
- Your new playlist will show up in your Spotify account
You only need to run node server.js
from inside the src
directory when the application
is in production. Nodemon is only used while under development to save you the time it
would take to kill the program and restart it manually.
If you link your GitHub repository to a Heroku instance, be sure to
copy your local .env
variables to the Config Vars
section of the
Heroku settings. If you don't, you will experience lots of 401 errors
in your console due to the lack of valid API credentials.
- Display a preview with names.track.preview_url.
- Add a feature to combine multiple playlists into one, removing duplicate IDs
in the process.
- Switch from radio buttons to checkboxes if going with the "Combine playlists" idea in getPlaylists().
- Test with a HUGE playlist to see if timeout errors are still an issue, in which case bottlenecking should be implemented.
- Hide original playlist if a clean version already exists.
- Implement Axios error handling.
- Make tall pictures cover properly for playlist images.