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 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
Using helper script, which will move the release executable to the repo root:
./build.sh
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.
Using rustfmt
cargo fmt
Using Clippy
cargo clippy
cargo clippy --fix
cargo update
- Add unit tests
- Fix playtime calculations
Python version supports:
- csv playlists exported from Serato DJ Pro
- txt playlists exported from Rekordbox
- Python 3.11+ required (primarily due to use of
Self
type hinting) - Poetry
poetry install