Spotify-Playlist-Utility
Python utility to archive, restore, & shuffle Spotify playlists.
Spotify's service has a few downsides. Fortunately, they offer a fairly nice Web API. To fill in these feature gaps, I developed a Python cmd line utility which offers the following features:
- Export: Spotify Saved (Liked) Tracks -> CSV track listing
- Export: Spotify Playlist -> CSV track listing
- Import: CSV track listing -> Spotify Playlist
- List: Spotify Playlists (name & track count)
Project Context:
Long ago, I informally self-taught myself Python in a mostly hobby capacity. As my cybersecurity/IT career has progressed, I've worked to formalize my Python skills so that I could write compliant, well-documented, open-source ready, and packaged/deployable Python packages.
I used this project idea as an opportunity to build out a full-fledged Python project repo. For example, this project...
- has a package with various modules within it
- is easily distributable: .tar.gz/.whl support and on the Python Package Index (PyPI/pip)
- has sphinx auto-generated docs documenting classes/functions
- includes .vscode configs for easy development in VS Code
- config file support
- command line option/argument style application
Installation
Prerequisite: System must have Python 3.6+ installed (and pip - included with Python). See Python docs here for help installing.
Next, run the following pip command in the terminal to install the package from the Python Package Index:
python -m pip install spotify-playlist-utility
See gif illustrating pip install of the package:
Setup/Configuration
This script interacts with Spotify's Web API via the spotipy open-source Python library. Therefore, we must register an application with Spotify's developer site and add the necessary data to a configuration file.
Steps:
- To get started using the API, create an app on Spotify's developer site.
- Log in with your Spotify account credentials.
- Click "Create an App"
- Provide an app name/description and click "Create".
- On the following page, click "Edit Settings".
- Add "http://localhost:8888/callback" to the "Redirect URIs", click "add" then "save".
- Take note of the "Client ID" and "Client Secret" on the Application Overview page.
- Create a customized configuration file for use by the package's 'spotify-playlist-utility' console command:
- Download a copy of the template configuration file ('config.ini') found at the project root.
- (Note: If you are working from source, you can grab the same file from your clone of the repo)
- Edit the file to overwrite the placeholder values with the 'Client ID' and 'Client Secret' we previously noted in Step 1. You can leave 'RedirectURI' unmodified. See example below...
- Download a copy of the template configuration file ('config.ini') found at the project root.
[DEFAULT]
ClientID = ABCDEFGHI
ClientSecret = 123456789
RedirectURI = http://localhost:8888/callback
Usage/Examples
For help, execute the following in the console
spotify-playlist-utility --help
Export Spotify Playlist Tracks (to .csv file)
spotify-playlist-utility <config_ini_file_path> -p <output_csv_file_path>
Import Tracks to Spotify Playlist (from matching .csv file)
spotify-playlist-utility <config_ini_file_path> -i <input_csv_file_path>
Shuffle Spotify Playlist Tracks
spotify-playlist-utility <config_ini_file_path> -z
Contributors
- Development: @ryanwarrick - Github
- Logo Asset: @UniTheDino - Twitter
Metadata
Release files for spotify-playlist-utility 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| spotify-playlist-utility-0.0.3.tar.gz | 1.8 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| spotify_playlist_utility-0.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.8 MB
Release files / spotify-playlist-utility-0.0.3.tar.gz
| Download URL | spotify-playlist-utility-0.0.3.tar.gz |
|---|---|
| Size | 1.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a40ff1d6504de82e6ba904d597ca09a2ed908569a908d1042d8b549ec0376511
|
|
BLAKE2b-256 checksum How to use checksums |
b01b3e9b863f0f1ca451e5abe54b50970a2393869a10b66f4113ab4965c059fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.1
|
Release files / spotify_playlist_utility-0.0.3-py3-none-any.whl
| Download URL | spotify_playlist_utility-0.0.3-py3-none-any.whl |
|---|---|
| Size | 22.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
37889150acd0b98fc0b4d1bc4ffe1d2cd36d38c540603efe08c84253ee6c11e3
|
|
BLAKE2b-256 checksum How to use checksums |
9e7d372c63e9736f5f9eeba4fb7af040a72318fd65c322a49510a1633848301f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.1
|