Code Monkey home page Code Monkey logo

spotify-playlist-updater's Introduction

spotify-playlist-updater

Update playlists with new music from the artist of the playlist. This app is targeted at public single artist playlists created by the user via Spotify. I am still working on the creation feature, but listing / updating should be fully functional. See below for more information on how this can be used.

Mobile should be supported, however it is currently untested. So long as you can login to your Spotify account in the browser, this should function as intended.

Note: If you'd like to list / update private playlists, simply update the SCOPE variable within your .env file (or environment variables) to add playlist-read-private playlist-modify-private. More details can be found within the Spotify Web API documentation.

Try It!

You can try this repo hosted with Heroku here: https://spotify-playlist-updater.herokuapp.com/

Tech Stack

Refer to the package.json file for a complete rundown, but here is a brief summary.

Backend

  • axios: An easier API for making web requests
  • Express: Runs the server
  • lowDB: Stores the database of users and their playlist metadata
  • TypeScript

Frontend

Usage

  1. Log in with your Spotify account (uses OAuth redirection)
  2. Select a playlist for updating
    • The playlists are cached for 24 hours. You can click Refresh Playlists to get the latest
  3. Click the Update Playlist button
    • When first clicked, this will detect the artist for the playlist
    • The tracks are cached for 7 days. You can click Refresh Playlist to get the latest
  4. Once the dialog appears with the newly detected tracks, click Add Tracks
    • Note: Tracks are only displayed if they were released since the last update to the playlist. If you'd like to find other music for the artist released before the last update to the playlist, this must be done manually.
  5. Repeat as needed

Planned Features

  • Creation of new playlists for specific artists
    • This will likely also come with a delete button for playlists created by this app
  • A new color scheme (my friends who tested so far weren't happy with the lack of a dark theme...)
  • Indicators for (possible) duplicate songs
    • For example, songs released both in a single and an album
  • Search for user playlists
    • The Spotify Web API currently doesn't have support for folders (and likely never will), so depending on how many playlists you have, going through them one-by-one to find the right one is probably a bit annoying
  • Update all button, so you don't have to click through each playlist

spotify-playlist-updater's People

Contributors

anthonynorthrup314 avatar

Watchers

James Cloos avatar Anthony Northrup avatar

spotify-playlist-updater's Issues

Cannot always check / uncheck tracks

When using the Update Playlist Modal, sometimes I can't check/uncheck tracks.
It seems different each time I open the modal. The first time, I could only uncheck the third track but not any others. The second time, I couldn't uncheck any of the checkboxes I tried.

My case: public album of Shania Twain, 7 songs in the playlist to begin with, running the tool found 181 new tracks.

Support for local files required

When first looking for the artist name, Update Playlist will produce the following error:
Issue 1

The second click will produce the various artists message:
Issue 2

And finally, it will not allow for further updating:
Issue 3

I believe this stems from local tracks not supporting the release_date property, resulting in the first error.

Update README

Some things that are missing from the README:

  • Whether or not mobile is supported (doesn't look like it?)
  • What kinds of playlists this works on (only public ones with a single artist, I believe)
  • Future planned additions/features
  • Tech stack used

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.