# 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-run` option 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](https://github.com/dylanljones/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
1. Create a virtual environment:
```bash
python3 -m venv venv
```
2. Activate the virtual environment:
```bash
source venv/bin/activate # On macOS/Linux
```
3. Install dependencies:
```bash
pip install -r requirements.txt
```
4. Install the package:
```bash
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:
```bash
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:
```bash
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
```bash
# 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
Raw data
{
"_id": null,
"home_page": null,
"name": "rekordbox-bulk-edit",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "bulk, convert, database, dj, edit, music, rekordbox",
"author": null,
"author_email": "James Viall <jamesviall@pm.me>",
"download_url": "https://files.pythonhosted.org/packages/e0/7e/0fc81a3bb4debd92be1d479961026da15f8378bfdc6dce574aa6d5230d41/rekordbox_bulk_edit-0.2.5.tar.gz",
"platform": null,
"description": "# Rekordbox Bulk Edit\n\nA command-line tool for bulk editing and managing Rekordbox music files and database records\n\n## \u26a0\ufe0f DISCLAIMER\n\n**ALWAYS BACK UP YOUR DATA BEFORE USING THIS TOOL!**\n\nThis 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:\n\n- Create a backup of your entire music library\n- Back up your Rekordbox database files (typically located in `~/Library/Pioneer/rekordbox6/` on macOS)\n- Test the tool on a small subset of files first using a filter option\n- Use the `--dry-run` option to preview changes before applying them\n\n**Use this tool at your own risk.**\n\n## Credits\n\nI made this project to help me correct poor decisions and bad habits in my library management, but it's only possible thanks to [pyrekordbox](https://github.com/dylanljones/pyrekordbox), which provides a comprehensive Python API into Rekordbox databases and XML files.\n\n## Features\n\n- **Convert**: Convert between lossless audio formats (FLAC, AIFF, WAV) and MP3, updating Rekordbox database records accordingly\n- **Read**: Read and display track information from Rekordbox database with format filtering support\n- **Audio Analysis**: Get detailed audio file information including format, bitrate, and metadata\n- **Safety Checks**: Automatically detects running Rekordbox instances to prevent database corruption\n- **Smart Filtering**: Skips files already in target format and excludes lossy formats from conversion input\n- **Bit Depth Preservation**: Maintains original bit depth (16/24/32-bit) for lossless conversions\n\n## Installation\n\n1. Create a virtual environment:\n\n ```bash\n python3 -m venv venv\n ```\n\n2. Activate the virtual environment:\n\n ```bash\n source venv/bin/activate # On macOS/Linux\n ```\n\n3. Install dependencies:\n\n ```bash\n pip install -r requirements.txt\n ```\n\n4. Install the package:\n ```bash\n pip install -e .\n ```\n\n## Usage\n\nThe tool provides a command-line interface with the following commands:\n\n### Convert Audio Formats\n\nConvert between lossless audio formats (FLAC, AIFF, WAV) and MP3, and update the Rekordbox database--keeping your analysis, cues, and track metadata:\n\n```bash\nrekordbox-bulk-edit convert [OPTIONS]\n```\n\n**Supported Conversions:**\n\n- **Input formats**: FLAC, AIFF, WAV (lossless formats only)\n- **Output formats**: AIFF, FLAC, WAV, MP3\n- **Automatic detection**: Skips MP3/M4A files and files already in target format\n- **Safety check**: Exits if Rekordbox is running to prevent database conflicts\n\n**Options:**\n\n- `--format [aiff|flac|wav|mp3]`: Choose output format (default: aiff)\n- `--dry-run`: Preview changes without actually performing them\n- `--auto-confirm`: Skip confirmation prompts (use with caution)\n\n### Read Track Information\n\nDisplay detailed information about tracks in your Rekordbox database:\n\n```bash\nrekordbox-bulk-edit read [OPTIONS]\n```\n\n**Options:**\n\n- `--track-id ID`: Specify a particular track ID to read\n- `--format [mp3|flac|aiff|wav|m4a]`: Filter by audio format (shows all formats if not specified)\n- `--verbose, -v`: Show detailed information\n\n### General Options\n\n- `--version`: Show the version number\n- `--help`: Show help information\n\n## Examples\n\n```bash\n# Preview lossless to AIFF conversion without making changes\nrekordbox-bulk-edit convert --dry-run\n\n# Convert lossless files to MP3 format\nrekordbox-bulk-edit convert --format mp3\n\n# Convert lossless files to FLAC format\nrekordbox-bulk-edit convert --format flac\n\n# Convert files with automatic confirmation\nrekordbox-bulk-edit convert --auto-confirm\n\n# Read information for a specific track\nrekordbox-bulk-edit read --track-id 12345 --verbose\n\n# Show only FLAC files in database\nrekordbox-bulk-edit read --format flac\n\n# Show only MP3 files in database\nrekordbox-bulk-edit read --format mp3\n\n# Show all available commands\nrekordbox-bulk-edit --help\n```\n\n## Development\n\n- Add new dependencies to `requirements.txt`\n- Activate your virtual environment before working: `source venv/bin/activate`\n- Deactivate when done: `deactivate`\n- Install in development mode: `pip install -e .`\n\n## Requirements\n\n- Python 3.6+\n- Rekordbox database access\n- Audio processing capabilities for FLAC/AIFF conversion\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Tools for bulk editing RekordBox database records and associated track files",
"version": "0.2.5",
"project_urls": {
"Homepage": "https://github.com/jviall/rekordbox-bulk-edit",
"Issues": "https://github.com/jviall/rekordbox-bulk-edit/issues",
"Repository": "https://github.com/jviall/rekordbox-bulk-edit"
},
"split_keywords": [
"bulk",
" convert",
" database",
" dj",
" edit",
" music",
" rekordbox"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "718615bc746d614c9398d6b8b5e4c4eef357fa561b4ddb204719c031dc85a1cb",
"md5": "daff0b544b397394f961644602233f25",
"sha256": "ed9b2756058cdad1129812da1ac179a06f0a15b2cd6516173d6627b93ca295f4"
},
"downloads": -1,
"filename": "rekordbox_bulk_edit-0.2.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "daff0b544b397394f961644602233f25",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 14419,
"upload_time": "2025-08-02T02:20:13",
"upload_time_iso_8601": "2025-08-02T02:20:13.555457Z",
"url": "https://files.pythonhosted.org/packages/71/86/15bc746d614c9398d6b8b5e4c4eef357fa561b4ddb204719c031dc85a1cb/rekordbox_bulk_edit-0.2.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e07e0fc81a3bb4debd92be1d479961026da15f8378bfdc6dce574aa6d5230d41",
"md5": "afa1c24932361f3d6bbda325a8b9d284",
"sha256": "7d97b83508f386bdcd7838761f20180fe6d8a084942adc7e492d5b5398d9dce8"
},
"downloads": -1,
"filename": "rekordbox_bulk_edit-0.2.5.tar.gz",
"has_sig": false,
"md5_digest": "afa1c24932361f3d6bbda325a8b9d284",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 19550,
"upload_time": "2025-08-02T02:20:15",
"upload_time_iso_8601": "2025-08-02T02:20:15.087804Z",
"url": "https://files.pythonhosted.org/packages/e0/7e/0fc81a3bb4debd92be1d479961026da15f8378bfdc6dce574aa6d5230d41/rekordbox_bulk_edit-0.2.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-02 02:20:15",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jviall",
"github_project": "rekordbox-bulk-edit",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "pyrekordbox",
"specs": [
[
">=",
"0.1.0"
]
]
},
{
"name": "ffmpeg-python",
"specs": [
[
">=",
"0.2.0"
]
]
},
{
"name": "click",
"specs": [
[
">=",
"8.0.0"
]
]
},
{
"name": "commitizen",
"specs": [
[
">=",
"3.0.0"
]
]
}
],
"lcname": "rekordbox-bulk-edit"
}