Unlock innovative ways to experience playlists.
Project description
Unlock innovative ways to experience playlists.
Currently supporting:
With the following mixing algorithms:
:control_knobs: "dj"
: songs with compatible keys, speeds, and energy levels are placed next to each other
:tada: "party"
: build the energy levels to a peak at the halfway point, then gradually calm things down
:guitar: "setlist"
: kick off with some of the most popular songs, saving lower-energy songs for the halfway point, then build back up to the finale
:musical_note: "genre"
: group and smoothly transition through the various genres in your playlist
Description
Since the inception of music players, we've always had 3 methods of playback: shuffle, repeat, and repeat once. Frankly, we can do better.
playlistjockey
unlocks a variety of new ways you can sort and experience your playlists. Select a playlist from your streaming platform of choice, choose a mixing algorithm, and upon reviewing
your playlist's new track order, immediately update and listen to your enhanced playlist. DJs can utilize this package to instantly prepare setlists in Tidal.
Happy mixing!
Setup
To utilize this module, you will first need to create a Spotify developer account:
- Visit https://developer.spotify.com/ and create a free account (Spotify Premium is not required)
- Once in your dashboard, click on Create App, and provide a name and description
- On the overview page for your app, go to settings
- Save your client ID and client secret, and create a redirect URI
Install the package:
pip install playlistjockey
Usage
Import the package:
import playlistjockey as pj
Initialize the Spotify object, and if you use another streaming service, initialize it as well:
sp = pj.Spotify('<Client ID>', '<Client Secret>', '<Redirect URI>')
td = pj.Tidal(sp)
The following will need to be done when first initializing these streaming platform objects:
- Spotify: Return the callback link automatically opened by your browser into the input prompted by your IDE
- Tidal: Your browser will automatically open a window prompting you to log into your Tidal account
[!NOTE] If you experience any connection-related errors, try reinitializing your streaming platform objects.
Once the connections to your streaming platforms are established, you can pull in one of your playlists:
playlist_id = 'https://open.spotify.com/playlist/7kIvZ3p234OPRRgibzNoQS?si=9d743a7caec143b9'
playlist_df = sp.get_playlist_features(playist_id)
Next, utilize a playlistjockey
sorting algorithm to mix your playlist:
sorted_df = pj.sort_playlist(playlist_df, "dj")
Preview the new track order, and rerun as many times as you'd like. Once you're ready, push it back to update your playlist:
sp.update_playlist(playlist_id, sorted_df)
Playback
When experiencing a playlist that has been sorted by playlistjockey
, enable to following suggested playback settings:
- Turn off shuffle to ensure songs are played in the order in which they were sorted in
- Maximize the Crossfade value for dance and pop playlists, or set to around 4 seconds for rock or other genres
- If you're using Spotify's mobile app, enable Gapless Playback to minimize quiet moments while a playlist is playing
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file playlistjockey-1.0.0.tar.gz
.
File metadata
- Download URL: playlistjockey-1.0.0.tar.gz
- Upload date:
- Size: 26.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 55df020c202245619a58e44e590bcebaf8c7c12513103797f692d165e458d24f |
|
MD5 | cd6d5fd87aa00c65086ae9ad87a202e6 |
|
BLAKE2b-256 | 2f2d66c8dfb1abe23ac97a51749dba2bed959bc38ad5fb505ebd230c251bec46 |
File details
Details for the file playlistjockey-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: playlistjockey-1.0.0-py3-none-any.whl
- Upload date:
- Size: 27.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26173dbc600ebbefd0a0ba0fbbb0e80cf0719778d2f58b4ede4c3ce250ae67c3 |
|
MD5 | 0397f66c276e32e2079b5e2b25ff3fb9 |
|
BLAKE2b-256 | b0a90bc3045a6c1fffedc487752e46937a68916cdac1746dd94aefaadc6119cb |