Tools for bulk editing RekordBox database records and associated track files
Project description
Rekordbox Bulk Edit
A command-line tool for bulk editing and managing Rekordbox music files and database records
⚠️ DISCLAIMER
ALWAYS BACK UP YOUR DATA BEFORE USING THIS TOOL!
This tool directly modifies your Rekordbox database and can potentially move, rename, or delete your music files. While there are , unexpected issues could result in data loss. Before using this tool:
- Create a backup of your entire music library
- Back up your Rekordbox database files (typically located in
~/Library/Pioneer/rekordbox6/on macOS) - Test the tool on a small subset of files first using a filter option
- Use the
--dry-runoption to preview changes before applying them
Use this tool at your own risk.
Credits
I made this project to help me correct poor decisions and bad habits in my library management, but it's only possible thanks to pyrekordbox, which provides a comprehensive Python API into Rekordbox databases and XML files.
Features
- Convert: Convert between lossless audio formats (FLAC, AIFF, WAV) and MP3, updating Rekordbox database records accordingly
- Read: Read and display track information from Rekordbox database with format filtering support
- Audio Analysis: Get detailed audio file information including format, bitrate, and metadata
- Safety Checks: Automatically detects running Rekordbox instances to prevent database corruption
- Smart Filtering: Skips files already in target format and excludes lossy formats from conversion input
- Bit Depth Preservation: Maintains original bit depth (16/24/32-bit) for lossless conversions
Installation
-
Create a virtual environment:
python3 -m venv venv
-
Activate the virtual environment:
source venv/bin/activate # On macOS/Linux
-
Install dependencies:
pip install -r requirements.txt
-
Install the package:
pip install -e .
Usage
The tool provides a command-line interface with the following commands:
Convert Audio Formats
Convert between lossless audio formats (FLAC, AIFF, WAV) and MP3, and update the Rekordbox database--keeping your analysis, cues, and track metadata:
rekordbox-bulk-edit convert [OPTIONS]
Supported Conversions:
- Input formats: FLAC, AIFF, WAV (lossless formats only)
- Output formats: AIFF, FLAC, WAV, MP3
- Automatic detection: Skips MP3/M4A files and files already in target format
- Safety check: Exits if Rekordbox is running to prevent database conflicts
Options:
--format [aiff|flac|wav|mp3]: Choose output format (default: aiff)--dry-run: Preview changes without actually performing them--auto-confirm: Skip confirmation prompts (use with caution)
Read Track Information
Display detailed information about tracks in your Rekordbox database:
rekordbox-bulk-edit read [OPTIONS]
Options:
--track-id ID: Specify a particular track ID to read--format [mp3|flac|aiff|wav|m4a]: Filter by audio format (shows all formats if not specified)--verbose, -v: Show detailed information
General Options
--version: Show the version number--help: Show help information
Examples
# Preview lossless to AIFF conversion without making changes
rekordbox-bulk-edit convert --dry-run
# Convert lossless files to MP3 format
rekordbox-bulk-edit convert --format mp3
# Convert lossless files to FLAC format
rekordbox-bulk-edit convert --format flac
# Convert files with automatic confirmation
rekordbox-bulk-edit convert --auto-confirm
# Read information for a specific track
rekordbox-bulk-edit read --track-id 12345 --verbose
# Show only FLAC files in database
rekordbox-bulk-edit read --format flac
# Show only MP3 files in database
rekordbox-bulk-edit read --format mp3
# Show all available commands
rekordbox-bulk-edit --help
Development
- Add new dependencies to
requirements.txt - Activate your virtual environment before working:
source venv/bin/activate - Deactivate when done:
deactivate - Install in development mode:
pip install -e .
Requirements
- Python 3.6+
- Rekordbox database access
- Audio processing capabilities for FLAC/AIFF conversion
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_bulk_edit-0.2.4.tar.gz.
File metadata
- Download URL: rekordbox_bulk_edit-0.2.4.tar.gz
- Upload date:
- Size: 18.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c175a9d585adbe45282837294e74d7ca0ec39208da1454bfaae59fb3d3302bf6
|
|
| MD5 |
ffcd3835907bbbe4a959624e44abfe5d
|
|
| BLAKE2b-256 |
00c2be4140c68c65eee6349f16dfd3129fe4070f541948fdbaae15af6dfea31f
|
Provenance
The following attestation bundles were made for rekordbox_bulk_edit-0.2.4.tar.gz:
Publisher:
publish.yml on jviall/rekordbox-bulk-edit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rekordbox_bulk_edit-0.2.4.tar.gz -
Subject digest:
c175a9d585adbe45282837294e74d7ca0ec39208da1454bfaae59fb3d3302bf6 - Sigstore transparency entry: 342053270
- Sigstore integration time:
-
Permalink:
jviall/rekordbox-bulk-edit@80027b746e222c281bfed456309bf5f00fb4bb30 -
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:
publish.yml@80027b746e222c281bfed456309bf5f00fb4bb30 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rekordbox_bulk_edit-0.2.4-py3-none-any.whl.
File metadata
- Download URL: rekordbox_bulk_edit-0.2.4-py3-none-any.whl
- Upload date:
- Size: 14.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b1946c3a62fda395b6d62caea5333cf5ed732af8b36b68427fceea984e0d91d
|
|
| MD5 |
6d2b28b645eecce082846c907ccc5b66
|
|
| BLAKE2b-256 |
d910bc766f0a338ae5be808c5994ce6a74bc26f6311ced7d9881914de8ec0b9f
|
Provenance
The following attestation bundles were made for rekordbox_bulk_edit-0.2.4-py3-none-any.whl:
Publisher:
publish.yml on jviall/rekordbox-bulk-edit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rekordbox_bulk_edit-0.2.4-py3-none-any.whl -
Subject digest:
5b1946c3a62fda395b6d62caea5333cf5ed732af8b36b68427fceea984e0d91d - Sigstore transparency entry: 342053282
- Sigstore integration time:
-
Permalink:
jviall/rekordbox-bulk-edit@80027b746e222c281bfed456309bf5f00fb4bb30 -
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:
publish.yml@80027b746e222c281bfed456309bf5f00fb4bb30 -
Trigger Event:
workflow_dispatch
-
Statement type: