Tools for managing and modifying a RekordBox library en-masse
Project description
rekordbox-edit
A command-line tool for bulk operations on your Rekordbox library. Search tracks, edit metadata, and convert audio formats — updating your database while preserving all your cues, analysis, and metadata.
[!CAUTION] This tool can modify your Rekordbox database and audio files. Always back up your data first. No warranty is provided--you assume all risk and liability of data loss in using this. See Safety and Best Practices
Full documentation: rekordbox-edit.readthedocs.io
Installation
pip install rekordbox-edit
Requirements:
- Python 3.11+
- FFmpeg (for audio conversion)
Quick Start
Search your library:
rbe search --artist "Daft Punk" --format flac
rbe search --playlist "House Favorites"
Edit track metadata:
# Fix a typo across every matching title (previews and confirms first)
rbe edit --title "Teh" Title --match "Teh" --replace "The" --multi
Convert audio files:
# Preview what would be converted
rbe convert --artist "Daft Punk" --dry-run
# Convert all FLAC or WAV files to AIFF (default output format)
rbe convert --format flac --format wav --yes
See the documentation for every command, the full filtering language, and scripting recipes.
Safety and Best Practices
Before using this tool:
-
Back up your Rekordbox database
Rekordbox already keeps multiple backups. But every time you close it, it creates a fresh one and deletes the oldest, so repetitive exits will quickly make those backups fairly useless.
You should make manual copies of RB's database backups before using this. You can usually find them in
~/Library/Pioneer/rekordbox/on macOS or%APPDATA%\Pioneer\rekordbox\on Windows. -
Back up your music library
If you don't have a back up already it's a very worthwhile investment, even if you don't plan to use this tool! Find yourself a cheap external drive, you won't regret it.
And generally limit the potential impact of a mistake by using filters to target a few tracks at a time e.g. --artist "Crazy Frog" --first 5 before targeting a larger set, and always run with --dry-run first.
AI Usage
I believe it's important to be aware of and to disclose AI usage. In many ways it's being forced upon us without us having much choice in the matter, and it's a gross and oppressive experience. While it has lots of potential to benefit the common good, mostly it's only furthered capitalist greed.
I'm mostly attempting to thoughtfully disclose that generative AI has been a significant tool in building out this project. I don't personally enjoy too much coding in my personal time, but I feel passionate about making rekordbox-edit--AI has admittedly helped me bridge that gap between my capacity and my vision. I'm a career professional software engineer who takes pride in their work, and I don't want to produce a vibe coded mess any more than you want to experience it. Please validate the quality of this project yourself--at the end of the day it's just code written by some stranger.
If it's any consolation, my main test subject has been my own 10,000+ track RekordBox library--a risk I do not take lightly!
Credits
This project exists thanks to @dylanjones, the creator of pyrekordbox, which provides the Python API for Rekordbox databases.
I built this tool to help correct my own bad habits and missteps in managing and organizing my rekordbox library. If it helps you too, great! If you find issues or have ideas, contributions are welcome.
Contributing
See CONTRIBUTING.md for development setup, testing, and contribution guidelines.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rekordbox_edit-0.6.0.dev44.tar.gz.
File metadata
- Download URL: rekordbox_edit-0.6.0.dev44.tar.gz
- Upload date:
- Size: 3.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d467d1fb1f26b1db396526843aac44a009d367192267ad8ad7634cf77bfa885
|
|
| MD5 |
82fd3f376e2a72c51adc25b760e548c4
|
|
| BLAKE2b-256 |
dd2e0c67f791b108324cb8fbdf416b24efae0298929ea4fb90e7e2256c4c8eef
|
Provenance
The following attestation bundles were made for rekordbox_edit-0.6.0.dev44.tar.gz:
Publisher:
cd.yml on jviall/rekordbox-edit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rekordbox_edit-0.6.0.dev44.tar.gz -
Subject digest:
8d467d1fb1f26b1db396526843aac44a009d367192267ad8ad7634cf77bfa885 - Sigstore transparency entry: 1797068880
- Sigstore integration time:
-
Permalink:
jviall/rekordbox-edit@a37ca7f57d251452d4817b42c72d2a9bd8ee1666 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/jviall
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cd.yml@a37ca7f57d251452d4817b42c72d2a9bd8ee1666 -
Trigger Event:
push
-
Statement type:
File details
Details for the file rekordbox_edit-0.6.0.dev44-py3-none-any.whl.
File metadata
- Download URL: rekordbox_edit-0.6.0.dev44-py3-none-any.whl
- Upload date:
- Size: 30.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c26d5da5eac765a332889ca119317f36f48cc175ba502931885d5a6a0033b61c
|
|
| MD5 |
6aae839c9d23710681d2d7e28fe989e6
|
|
| BLAKE2b-256 |
5cf5d856bc9662bc145978d72c5cb9d71637c6649aa396ea7f50ad22873afbad
|
Provenance
The following attestation bundles were made for rekordbox_edit-0.6.0.dev44-py3-none-any.whl:
Publisher:
cd.yml on jviall/rekordbox-edit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rekordbox_edit-0.6.0.dev44-py3-none-any.whl -
Subject digest:
c26d5da5eac765a332889ca119317f36f48cc175ba502931885d5a6a0033b61c - Sigstore transparency entry: 1797069042
- Sigstore integration time:
-
Permalink:
jviall/rekordbox-edit@a37ca7f57d251452d4817b42c72d2a9bd8ee1666 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/jviall
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cd.yml@a37ca7f57d251452d4817b42c72d2a9bd8ee1666 -
Trigger Event:
push
-
Statement type: