Skip to main content

Unlock innovative ways to experience playlists.

Project description

playlistjockey

Unlock innovative ways to experience playlists.

Currently supporting:

Spotify Tidal

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:

  1. Visit https://developer.spotify.com/ and create a free account (Spotify Premium is not required)
  2. Once in your dashboard, click on Create App, and provide a name and description
  3. On the overview page for your app, go to settings
  4. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

playlistjockey-1.0.0.tar.gz (26.0 kB view details)

Uploaded Source

Built Distribution

playlistjockey-1.0.0-py3-none-any.whl (27.8 kB view details)

Uploaded Python 3

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

Hashes for playlistjockey-1.0.0.tar.gz
Algorithm Hash digest
SHA256 55df020c202245619a58e44e590bcebaf8c7c12513103797f692d165e458d24f
MD5 cd6d5fd87aa00c65086ae9ad87a202e6
BLAKE2b-256 2f2d66c8dfb1abe23ac97a51749dba2bed959bc38ad5fb505ebd230c251bec46

See more details on using hashes here.

File details

Details for the file playlistjockey-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for playlistjockey-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 26173dbc600ebbefd0a0ba0fbbb0e80cf0719778d2f58b4ede4c3ce250ae67c3
MD5 0397f66c276e32e2079b5e2b25ff3fb9
BLAKE2b-256 b0a90bc3045a6c1fffedc487752e46937a68916cdac1746dd94aefaadc6119cb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page