rekordbox-bulk-edit


Namerekordbox-bulk-edit JSON
Version 0.2.6 PyPI version JSON
download
home_pageNone
SummaryTools for managing and modifying a RekordBox library en-masse
upload_time2025-08-10 04:16:57
maintainerNone
docs_urlNone
authorJames Viall
requires_python<4.0,>=3.9
licenseMIT
keywords rekordbox dj music database bulk edit convert
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Rekordbox Bulk Edit

[![Tests](https://img.shields.io/github/actions/workflow/status/jviall/rekordbox-bulk-edit/ci.yml?branch=main&logo=github&style=flat)](https://github.com/jviall/rekordbox-bulk-edit/blob/main/.github/workflows/ci.yml)
[![Coverage](https://codecov.io/gh/jviall/rekordbox-bulk-edit/branch/main/graph/badge.svg)](https://app.codecov.io/gh/jviall/rekordbox-bulk-edit/tree/main)
[![Version](https://img.shields.io/pypi/v/rekordbox-bulk-edit?style=flat)](https://pypi.org/project/rekordbox-bulk-edit/)
[![Platforms](https://img.shields.io/badge/platform-win%20%7C%20osx-blue?style=flat)](https://pypi.org/project/rekordbox-bulk-edit/)
[![License](https://img.shields.io/pypi/l/rekordbox-bulk-edit?color=lightgrey)](https://github.com/jviall/rekordbox-bulk-edit/blob/main/LICENSE)

A command-line tool for bulk editing and managing Rekordbox music files and database records

[!CAUTION]
**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 safety checks, unexpected issues could result in data loss. Before using this tool, consider some or all of the following:

- Always backup your Rekordbox database. While some versions of RB make backups for you, you'll likely be opening and closing RB often, which will make a new backup everytime, causing you to quickly lose your backup history and render them only as useful as the last time you opened RB. Before beginning development, I recommend you make copies of all the backups so that RB doesn't overwrite them.
- Creating a backup of your entire music library
- 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

## Installation

```bash
pip install rekordbox-bulk-edit
```

**Requirements:**

- Python 3.11+
- FFmpeg (for audio conversion)

### Installing FFmpeg

Download from [ffmpeg.org](https://ffmpeg.org/download.html) or use a package manager

**macOS (using Homebrew):**

```bash
brew install ffmpeg
```

**Ubuntu/Debian:**

```bash
sudo apt update
sudo apt install ffmpeg
```

**Windows:**

```bash
winget install --id=Gyan.FFmpeg  -e
```

## Usage

The tool provides a command-line interface with the following commands:

### Convert

Convert between lossless audio formats (FLAC, AIFF, WAV) or from lossless to 320 CBR MP3, and then update the Rekordbox database accordingly--keeping your analysis, cues, and track metadata intact

```bash
rekordbox-bulk-edit convert [OPTIONS]
```

**Supported Conversions:**

- **Input formats**: FLAC, AIFF, WAV
- **Output formats**: AIFF, FLAC, WAV, MP3

(It only makes sense to convert lossless files, else it's lossy-to-lossy compression)

**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

## Contributing

Interested in contributing? Check out [CONTRIBUTING.md](CONTRIBUTING.md) for development setup instructions, coding guidelines, and how to submit changes.

## Requirements

- Python 3.11+
- FFmpeg for audio conversion
- Rekordbox database access

```

```


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "rekordbox-bulk-edit",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.9",
    "maintainer_email": null,
    "keywords": "rekordbox, dj, music, database, bulk, edit, convert",
    "author": "James Viall",
    "author_email": "jamesviall@pm.me",
    "download_url": "https://files.pythonhosted.org/packages/30/5f/27f4c52dc118b188ffb9deb76a8af5f286f7563d3232c6bc1aff462defe3/rekordbox_bulk_edit-0.2.6.tar.gz",
    "platform": null,
    "description": "# Rekordbox Bulk Edit\n\n[![Tests](https://img.shields.io/github/actions/workflow/status/jviall/rekordbox-bulk-edit/ci.yml?branch=main&logo=github&style=flat)](https://github.com/jviall/rekordbox-bulk-edit/blob/main/.github/workflows/ci.yml)\n[![Coverage](https://codecov.io/gh/jviall/rekordbox-bulk-edit/branch/main/graph/badge.svg)](https://app.codecov.io/gh/jviall/rekordbox-bulk-edit/tree/main)\n[![Version](https://img.shields.io/pypi/v/rekordbox-bulk-edit?style=flat)](https://pypi.org/project/rekordbox-bulk-edit/)\n[![Platforms](https://img.shields.io/badge/platform-win%20%7C%20osx-blue?style=flat)](https://pypi.org/project/rekordbox-bulk-edit/)\n[![License](https://img.shields.io/pypi/l/rekordbox-bulk-edit?color=lightgrey)](https://github.com/jviall/rekordbox-bulk-edit/blob/main/LICENSE)\n\nA command-line tool for bulk editing and managing Rekordbox music files and database records\n\n[!CAUTION]\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 safety checks, unexpected issues could result in data loss. Before using this tool, consider some or all of the following:\n\n- Always backup your Rekordbox database. While some versions of RB make backups for you, you'll likely be opening and closing RB often, which will make a new backup everytime, causing you to quickly lose your backup history and render them only as useful as the last time you opened RB. Before beginning development, I recommend you make copies of all the backups so that RB doesn't overwrite them.\n- Creating a backup of your entire music library\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\n## Installation\n\n```bash\npip install rekordbox-bulk-edit\n```\n\n**Requirements:**\n\n- Python 3.11+\n- FFmpeg (for audio conversion)\n\n### Installing FFmpeg\n\nDownload from [ffmpeg.org](https://ffmpeg.org/download.html) or use a package manager\n\n**macOS (using Homebrew):**\n\n```bash\nbrew install ffmpeg\n```\n\n**Ubuntu/Debian:**\n\n```bash\nsudo apt update\nsudo apt install ffmpeg\n```\n\n**Windows:**\n\n```bash\nwinget install --id=Gyan.FFmpeg  -e\n```\n\n## Usage\n\nThe tool provides a command-line interface with the following commands:\n\n### Convert\n\nConvert between lossless audio formats (FLAC, AIFF, WAV) or from lossless to 320 CBR MP3, and then update the Rekordbox database accordingly--keeping your analysis, cues, and track metadata intact\n\n```bash\nrekordbox-bulk-edit convert [OPTIONS]\n```\n\n**Supported Conversions:**\n\n- **Input formats**: FLAC, AIFF, WAV\n- **Output formats**: AIFF, FLAC, WAV, MP3\n\n(It only makes sense to convert lossless files, else it's lossy-to-lossy compression)\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## Contributing\n\nInterested in contributing? Check out [CONTRIBUTING.md](CONTRIBUTING.md) for development setup instructions, coding guidelines, and how to submit changes.\n\n## Requirements\n\n- Python 3.11+\n- FFmpeg for audio conversion\n- Rekordbox database access\n\n```\n\n```\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Tools for managing and modifying a RekordBox library en-masse",
    "version": "0.2.6",
    "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": [
        "rekordbox",
        " dj",
        " music",
        " database",
        " bulk",
        " edit",
        " convert"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "36409560ac1c4aad6ee0ee2c522f5a99db6f1f8ea28106a2ed3cb9d855765ce2",
                "md5": "3a3c1d493cc170b4b49bd56439bf1874",
                "sha256": "4b0be4e388cc71f0b877a9775e648b2288526c66ee9feebd392c497e8ccbef94"
            },
            "downloads": -1,
            "filename": "rekordbox_bulk_edit-0.2.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3a3c1d493cc170b4b49bd56439bf1874",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.9",
            "size": 14273,
            "upload_time": "2025-08-10T04:16:56",
            "upload_time_iso_8601": "2025-08-10T04:16:56.326644Z",
            "url": "https://files.pythonhosted.org/packages/36/40/9560ac1c4aad6ee0ee2c522f5a99db6f1f8ea28106a2ed3cb9d855765ce2/rekordbox_bulk_edit-0.2.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "305f27f4c52dc118b188ffb9deb76a8af5f286f7563d3232c6bc1aff462defe3",
                "md5": "da318023fa16e059aa8dfd1857883b99",
                "sha256": "a9eef3955d9c67fca8c33cd887d3fc89f0ede9d0a004a41cbccbb4f837004c11"
            },
            "downloads": -1,
            "filename": "rekordbox_bulk_edit-0.2.6.tar.gz",
            "has_sig": false,
            "md5_digest": "da318023fa16e059aa8dfd1857883b99",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.9",
            "size": 13532,
            "upload_time": "2025-08-10T04:16:57",
            "upload_time_iso_8601": "2025-08-10T04:16:57.967614Z",
            "url": "https://files.pythonhosted.org/packages/30/5f/27f4c52dc118b188ffb9deb76a8af5f286f7563d3232c6bc1aff462defe3/rekordbox_bulk_edit-0.2.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-10 04:16:57",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jviall",
    "github_project": "rekordbox-bulk-edit",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "rekordbox-bulk-edit"
}
        
Elapsed time: 2.41078s