Rekordbox Library
For Rekordbox 5 and 6, Now Playing integrates with the local Rekordbox library database rather than the network protocol. This gives it immediate access to the full track catalog and the play history, even when you are mixing on a laptop without any hardware on the network.
The integration lives in the rekordbox-connect package.
What It Reads
Section titled “What It Reads”Rekordbox stores its library in a SQLCipher-encrypted SQLite database named
master.db. Now Playing opens this database in read-only mode and watches for:
- Track rows — metadata for every track in your collection.
- Play history — the ordered list of tracks played in the current session, appended as you play.
How It Finds the Database
Section titled “How It Finds the Database”Rekordbox stores its library path and the encryption password in an
options.json configuration file. On first connection, rekordbox-connect:
- Reads
options.jsonfrom Rekordbox’s application support folder. - Extracts the library path and the encrypted password field.
- Decrypts the password using a Blowfish cipher.
- Opens
master.dbwith the decrypted SQLCipher key.
This avoids any manual configuration — as long as Rekordbox is installed and has been launched at least once, Now Playing can open the database.
Detecting New Tracks
Section titled “Detecting New Tracks”The database is polled on a configurable interval (default 2 seconds) using file
modification time (mtime). When Rekordbox writes a new row to the play history
table, master.db’s mtime changes and a read is triggered.
A rowid-based cursor tracks the last history entry that was processed, so only new rows emit events. This keeps re-reads efficient and prevents duplicate track updates on restart.
What Data Is Extracted
Section titled “What Data Is Extracted”| Field | Notes |
|---|---|
| Title, artist, album, genre, label | From the track row |
| BPM, musical key | From the track row |
| File path | Used to pull embedded artwork via metadata-connect |
| Play history timestamp | From the history row |
| Deck number (if present) | Rekordbox schema varies by version |
The exact column schema changes between Rekordbox 5, 6, and 7. The connector handles the variants that ship with supported versions; for Rekordbox 7.x’s new export format, see Rekordbox OneLibrary.
Events Emitted
Section titled “Events Emitted”| Event | Fires When |
|---|---|
ready | Database has been opened and is ready |
db-changed | master.db mtime has advanced |
tracks | New track metadata has been read |
history | A new play-history entry has appeared |
Platform Support
Section titled “Platform Support”Supported on both macOS and Windows. The library path is read from the platform’s Rekordbox application support location automatically.
What It Does Not Provide
Section titled “What It Does Not Provide”The Rekordbox database shows what tracks are in your library and which have been played, but it does not provide live controller state (fader positions, EQ, crossfader). Those come from the MIDI Bridge when a controller is connected, and are used by the mix processor for on-air detection.