agator9999 is a music library that lists your favourite albums and artists from various streaming sources, in one place (Spotify, Youtube, Bandcamp, and Discogs).
It all started when Spotify told me: "Epic collection, friend. Your library is all filled up. To save more, you'll need to remove some songs.". Hitting the 'Save' button on an album has a limit: you can save upt to 10 000 songs in your library. I am constantly seeking new music, but I cannot remember all of the artists and albums I listened to, so I used my Spotify album library as a storage place. Until now, because it's full. That's why I created agator9999: to have my own storage place where there can be albums from Spotify, as well as other streaming sources.
OLD DEMO 🔥🔥🔥
This is the v1.0.0
demo, back when the backend was supplied by Firebase. The base features are the same in v2.0.0
. In the demo, everyone is an admin. In your agator9999 instance, you would set only yourself as admin.
Artists
- View your artist library
- Merge a duplicate artist into one (Artists might come from different sources like Spotify or Discogs)
- Unmerge an artist sources
- Remove an artist (available when no albums are attached anymore)
Albums
- View your saved albums for a given artist
- Synchronize your Spotify saved albums
- Add an album by providing its Spotify URI (listening + metadata) and its Discogs URL (metadata)
- Add an album by providing its Youtube or Bandcamp URL (listening) and its Discogs URL (metadata)
- Improve the default Spotify album metadata by linking an album from Spotify to its Discogs equivalent (at the moment, it adds genres and styles tags).
- Search your artists
- Sort alphabetically and by recently added
- Link to the corresponding listening platform.
- Remove an album
Users
- As an admin, you can confirm new user's accounts
Once an artist has both a Spotify and a Discogs source (after a merge, for example), all the upcoming albums you might add to this artist will be attached to this artist.
- Play music. It's a storage place. Like a shelf. Shelves don't play music.
agator9999 is a React web application. The backend is powered by a Postgres database, and a Ruby on rails API, called apigator9999.
Setup
- First, clone the project.
- Rename the file to
config.template.json
toconfig.js
. You can change theowner
name inconfig.js
to customize the login page.
Spotify Setup
- Then, you need to create your Spotify application: go to the Developer Dashboard and hit
Create an app
. You can name your application and select a non-commercial option. - Go to
Edit Settings
and set a callback URI for your application. For example,http://localhost:8888/#/callback
. The callback URL is used to login to Spotify. - Go to
config.js
at the root at the project, fill in thespotifyConfig
with the same callback URI in 'REDIRECT_URI' and add your SpotifyCLIENT_ID
(that you can get from the Dashboard).
Discogs Setup
- Go to Discogs and create your Discogs application. You don't need to fill the callback URL.
- Copy the Consumer key and secret in
discogsConfig
inconfig.js
.
Run the application
- To run the application locally:
- Do
npm install
at the root of the project. - Open another terminal window, and do
npm start
at the root of the project. - Check out http://localhost:8888/ !
Backend Setup
Follow the instructions at apigator9999. Update config.js
by filling in the database URL in databaseConfig
.
When you deploy the application, remember to update the Spotify callback URI in your config, and in the Spotify application settings.
Note: some adblockers might be blocking your calls to the Spotify or Discogs API.
This tool has been created for personal use and not for commercial purposes. No artworks are stored in the database.