Skip to content

DJ playlist formatting tool for Serato and Rekordbox.

License

Notifications You must be signed in to change notification settings

Esgrove/playlist-formatter

Repository files navigation

Playlist Tool

Helper tool for formatting DJ playlists exported from different DJ software.

Originally created for my own and fellow Bassoradio DJs use back when I was doing a radio show at Bassoradio. The original version is written in Python and has both a PyQt6 GUI and CLI version.

Since then, I have added a Rust implementation, which is my preferred and maintained version now. See below for the details.

Rust version

Rust CLI version supports:

  • CSV and TXT playlists exported from Serato DJ Pro
  • TXT playlists exported from Rekordbox

Note: Expects Finnish time and date formatting and might not work fully in case timestamps are in a different format

Build

Using helper script, which will move the release executable to the repo root:

./build.sh

Install

Install a release binary locally using cargo install.

./install.sh

After this you should have playfmt available globally.

Note: Cargo will put the binary under $HOME/.cargo/bin by default, which needs to be added to PATH so the binaries installed through Cargo will be found.

Format Rust code

Using rustfmt

cargo fmt

Lint Rust code

Using Clippy

cargo clippy
cargo clippy --fix

Update Rust dependencies

cargo update

TODO

  • Add unit tests
  • Fix playtime calculations

Python version

Python version supports:

  • csv playlists exported from Serato DJ Pro
  • txt playlists exported from Rekordbox

Python dependencies

  • Python 3.11+ required (primarily due to use of Self type hinting)
  • Poetry
poetry install

Looks like

gui

cli