Spotlightify is a GUI based application designed to allow users to quickly interact with the Spotify Desktop application across Windows, Linux and macOS. This is an update that allows you to use this with a Spotify Free subscription.
Spotify Premium Account- You must have logged into open.spotify.com through Google Chrome. This is for using cookies to manage playback. If you haven't, the default playback commands will run, which don't work with a free Spotify subscription.
- Python 3.7 or later
- A Spotify App must also be created, the instructions follow:
- Open the Spotify Developer Dashboard here and login using your Spotify account credentials.
- Click the "CREATE AN APP" button.
- Name the application "Spotlightify", write anything for the description and select "Desktop App" from the checkboxes. Click "NEXT".
- Respond with "No" to the question "Are you developing a commercial integration?".
- Tick all boxes and click "SUBMIT".
- Now on the dashboard, click "EDIT SETTINGS".
- Under the title "Redirect URIs" enter: "http://localhost:8080", hit "ADD" and then at the bottom, hit "SAVE".
- That is the App set up, keep the dashboard webpage open as we will need
Client ID
andClient Secret
from it later on.
To setup a virtual environment, perform the following commands.
cd path\to\spotlightify-root
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
python app.py
To run the application as an independent process (i.e. it will not end when the command line is exited), use: pythonw app.py
cd path/to/spotlightify-root
python -m venv venv
. venv/bin/activate
pip install -r requirements.txt
python app.py
cd path/to/spotlightify-root
python3 -m venv venv
. venv/bin/activate
sudo apt-get install python3-pyqt5
pip3 install -r requirements.txt
python3 app.py
Run app.py
to start the application.
On the Spotify App that you have created, take the values of Client ID
, Client Secret
and Redirect URI
(Redirect URL is found when the "EDIT SETTINGS" button is clicked) from the website and input them into their respective textboxes. To make sure the correct username is entered into the username
textbox, go to this link, get your exact username string and paste it (you only need to do this if you sign into Spotify using a service such as Facebook).
The fonts found in assets/fonts
must be installed for this to display correctly.
The GUI is activated by using the shortcut ctrl + space
. Here is the current list of available functions:
| Name | Description | Prefix | Parameter |
|----------|--------------------------------------------|-------------------|---------------|
| Play | Plays a song | play | song name |
| Queue | Queues a song | queue | song name |
| Playlist | Plays a saved/followed playlist | playlist | playlist name |
| Album | Plays a saved album | album | album name |
| Artist | Plays songs from a saved/followed artist | artist | artist name |
| Liked | Plays saved/liked music | liked | None |
| Volume | Changes music volume | volume | 1 - 10 |
| Go to | Seeks a position in a song | goto | e.g. 1:24 |
| Resume | Resumes music playback | resume, start | None |
| Skip | Skips the current song | skip, next | None |
| Previous | Plays pervious song | previous | None |
| Pause | Pauses music playback | pause | None |
| Shuffle | Toggles shuffle playback | shuffle | None |
| Device | Select device for music playback | device | None |
| Repeat | Toggles repeating modes | repeat | None |
| Current | Provides currently playing song info | currently playing | None |
| Share | Copies the current song's URL to clipboard | share | None |
| Exit | Exits the application | exit | None |
On first start up, Spotlightify will cache all of your liked and playlist songs, caching both song information and album art. So keep the app open for at least 10 minutes so that all your songs can be cached.
- https://www.reddit.com/r/Python/comments/go6no5/spotlightify_a_overlay_controller_for_spotify/
- https://www.reddit.com/r/Python/comments/gtnyll/spotlightify_the_spotify_overlay_controller/
Join us on discord to discuss how to contribute to the project.