Skip to content

Artist discography discovery progress tracker for Spotify

License

Notifications You must be signed in to change notification settings

N6MCA51593/addpt-spotify

Repository files navigation

logo

Artist discography discovery progress tracker for Spotify

A customizable app that tracks your listening progress of newly discovered artists

IntroCore FeaturesGetting Started Usage and limitationsBuilt withLicense

Intro

Discovering new music, expanding your musical taste is an exciting process. Yet at the same, it can prove to be somewhat confusing and daunting, depending on your habits. If you prefer to dump new artists into a huge playlist and explore their discography one song at a time, it's easy to lose track of what you've listened to, and how many times. What's worse, you can have multiple new artists competing for your attention, which further exacerbates the problem. Artist discography discovery progress tracker for Spotify is designed to take care of that, and provide you with data and customization options that make exploring new music a more pleasant and comfortable journey.

Core features

Add the artist that you want to track

gif

Pick and choose the albums and individual songs that interest you, adjust their listen counters

gif gif

Start listening! The app periodically updates your history, but you can trigger an update manually

gif

Tweak your settings at any time from the settings menu

gif

Same features available on mobile devices as well!

gif

Getting started

Prerequisites

Installation

Dependencies

# Clone the repository
$ git clone https://github.com/N6MCA51593/addpt-spotify.git

# Navigate to the repository root directory
$ cd addpt-spotify

# Install server dependencies
$ npm install

# Navigate to the client directory
$ cd client

# Install client dependencies
$ npm install

Environmental variables

In the root folder, create a .env file that contains the following:

// Link to connect to the MongoDB database
MONGO_URI=...

// Client id of the app registered through the Spotify dev dashboard
CLIENT_ID=...

// Client secret of the app registered through the Spotify dev dashboard
CLIENT_SECRET=...

// Redirect link of the app registered through the Spotify dev dashboard
REDIRECT_URI=http://localhost:5000/api/auth/redirect

// Permission scopes for the oAuth 2.0 token
SCOPES=user-read-recently-played

// JSON Web Token secret
JWT_SECRET=...

// URL that points to the client
FRONT_END_URI=http://localhost:3000

In the client folder, create a .env file that contains the following:

// URL that points to the SSE stream API endpoint
REACT_APP_SSE_URI=http://localhost:5000/api/sync/stream

Running

From the repo root directory:

# Express & React :3000 & :5000
$ npm run dev

# Express API Only :5000
$ npm run server

# React Client Only :3000
$ npm run client

Usage and limitations

  • Spotify adds a track to the history when it's played for at least 30 seconds, and listened to completion. Using the next/previous player buttons prevents it from showing up in the history. Listening on repeat will create a history record for every repeat
  • The Spotify history API endpoint can sometimes return stale results, which is indistinguishable from when the user hasn't listened to anything at all. As a result, it can cause some listens to not show up in the app listening history and count towards the stats
  • When adding an artist, the app automatically fetches up to 20 albums, singles, and compilations (up to 60 total). Whatever isn't fetched, as well as all the artist's future releases, can be added manually
  • Since the app relies on Spotify IDs, changing the market country will make tracking unreliable, since the same albums and tracks may have different IDs in different markets. To work in a different market, artists have to be deleted and added again
  • Users stop being automatically tracked after 12 weeks since last login
  • Maximum number of tracks per album - 50 (sincere apologies to all the Frank Zappa fans out there)
  • No support for local files
  • No support for secondary artists in collaborations ("appears on" albums)
  • No support for IE and Edge Legacy

Built with

License

MIT