A little program that adds new songs in observed playlists and new releases from observed artists to a designated playlist.
Simple add playlists and artists to a group and run the program to download their content. The next time you run the program it will compare the saved content to the current content and add new songs to your designated playlist.
Supports multiple groups!
-
You need Python to run this program (I'm using Python 3.8, I haven't tested older versions yet).
-
Install Spotipy (all 2.xx.xx versions should work; I'm using 2.16.1) via
pip install spotipy
- Install PySimpleGui (version 4.xx.xx) via
pip install pysimplegui
-
This is kind of an inconvenient step. I hope to find a workaround soon. Spotipy enforces the user to set two variables in the
system environment variables
in order to be useable.4.1 First you need to log in to https://developer.spotify.com/dashboard/ with your Spotify account and create an app there.
4.2 Find
Client-ID
andClient-Secret
just below your app's name4.3 Add the
Client-ID
andClient Secret
to your system'senvironment variables
like this:
(If you are using windows see here and add the variables to theSystem variables
)Variable Value SPOTIPY_CLIENT_ID
<your_client_id> SPOTIPY_CLIENT_SECRET
<your_client_secret> Important: It's
SPOTIPY
with aP
, no with aF
. -
Download this repository by clicking
Code
at the beginning of this website and then clickDownload Zip
. Extract the zip to wherever you want.
Navigate to werever you extracted the zip file to. In this directory open a terminal or shell (on windows you can use Shift + Right-Click
-> Open in Windows Terminal
or PowerShell window here
).
To run the program enter
python GUI.py
into the terminal or shell
Open your playlist in your Spotify desktop client or in the web browser. Next to the Play
button should be three
dots (or a button with three dots). Click this button, and then select Share
. Now you can select
Copy Playlist Link
or Copy Spotify URI
depending on your Spotify version.
When holding the alt
key while the share window is still open, you should be able to select the corresponding other
option.
Go to the artist profile in your Spotify desktop client or web browser. Above the artist's top songs and
right next to the Play
button should be three dots (or a button with three dots). Click this button, and then select
Share
. Now you can select Copy Artist Link
or Copy Spotify URI
depending on your Spotify version.
When holding the alt
key while the share window is still open, you should be able to select the corresponding other
option.
In the top of the window you can select a group. In the middle the observed playlists and artist of the currently selected group are shown. When running the script new songs added to these playlists and new releases by these artists will be added to the previously set playlist, also shown just below the group selection box.
To add more playlist / artist or remove them see use the 'Add' or 'Remove' button.
Here you can create a new group. This could be useful for when you want sort your observed playlists by genre. You could create one group for pop playlists and artists and another for hiphop playlists.
In the Group Name
field you can enter whatever name you want to name your playlist. In the Target playlist
field you must enter a valid Spotify playlist URI or Spotify playlist link
(see here). Newly added songs in the playlists and new
releases by artists observed by this group will be added to this playlist.
Here you can delete a previously creates group. Attention: a deleted group can NOT be restored.
Probably the most used window. When you press "run" all new songs and new releases will be shown in separate windows with respect to their playlist or artist.
You can choose to save the current playlist content / artist releases to the hard drive, in order to have a copy to compare later playlist / artist content to (I recommend doing this every time you run the script).
Other options are to add new songs and releases to the group's target playlist and to clear the playlist clear before adding new songs.
You can also select a date from which the current content will be compared to. An example: you select 13.04.2021 as date. If there is a content_file from this date, it will be used as comparison, otherwise the script searches for the oldest content_file that dates to AFTER the given date; a file from 15.04.2021 for example.
Here you can add new playlists and artist to the group's list of observed items. You have to enter a valid Spotify playlist URI or Spotify artist URI (see how to get a uri)
Select one or more playlists / artist that will be removed from the group's list of observed items. They will no longer be checked for new songs or releases when you run the script
You can change the group will be initially be shown when you start the script, and make a small visual
change here. Additionally, you can enter the Danger Zone
where you can (soon) uninstall the program and clear
previously set Windows path variables
Coming soon (maybe, possibly, I don't know)
This script utilizes the Spotipy library (Copyright (c) 2014 Paul Lamere).
You can find it here: https://github.com/plamere/spotipy
This script utilizes the PySimpleGui GUI.
You can find it here: https://github.com/PySimpleGUI/PySimpleGUI