Where Rekordbox Stores Your Library: master.db, XML and Analysis Files
Updated · by the MixGoat team · Tool: Cloud Backup
Short answer
Rekordbox 6 and 7 keep the whole library in one encrypted SQLite database called master.db: on macOS at ~/Library/Pioneer/rekordbox/master.db, on Windows at %APPDATA%\Pioneer\rekordbox\master.db, with the live location written under db-path in rekordboxAgent/storage/options.json if you ever moved it. Hot cues, memory cues, loops, playlists, My Tags, ratings and history are rows in that file. Waveforms, beat grid and phrase data are separate ANLZ files (.DAT, .EXT and .2EX) under share/PIONEER/USBANLZ next to it. rekordbox.xml is not a live file: it exists only when you run File → Export Collection in xml format, and it is what most third-party tools read because master.db is SQLCipher-encrypted. What to back up is master.db with its -wal and -shm companions, plus the music.
Step by step
- 1
Find master.db
macOS: press Cmd+Shift+G in Finder and paste ~/Library/Pioneer/rekordbox (the Library folder is hidden). Windows: paste %APPDATA%\Pioneer\rekordbox into the Explorer address bar. Some installs use a Pioneer DJ folder instead of Pioneer. If Rekordbox was told to keep the library elsewhere via Preferences → Advanced → Database → Move Library, the real path is the db-path entry in ~/Library/Application Support/Pioneer/rekordboxAgent/storage/options.json (Windows: %APPDATA%\Pioneer\rekordboxAgent\storage\options.json).
- 2
Recognise master.db-wal and master.db-shm
Next to master.db you will usually see master.db-wal and master.db-shm. SQLite keeps recent writes in the -wal file until a checkpoint folds them into master.db, so the -wal can hold your last session's cues. Copy all three together, and only while Rekordbox is closed; a lone master.db copied mid-session can be missing hours of edits.
- 3
Locate the analysis files
Inside the same rekordbox folder, share/PIONEER/USBANLZ holds one folder per analysed track containing ANLZ0000.DAT (beat grid, waveform overview, cue positions for players), ANLZ0000.EXT (detailed colour waveform, phrases, song structure) and, since Rekordbox 6, ANLZ0000.2EX (the three-band waveform for CDJ-3000). These are regenerated by re-analysis, but a manually corrected grid lives here, not in master.db.
- 4
Export rekordbox.xml when you need a readable copy
File → Export Collection in xml format writes a plain-text file with every track (as file:// locations), its cues and loops as POSITION_MARK entries, the TEMPO grid, and the playlist tree. Rekordbox never updates this file on its own. The reverse direction is Preferences → Advanced → Database → rekordbox xml, which mounts an XML as a read-only node in the browser you can import from.
- 5
Know what a USB export contains
In Export mode Rekordbox writes a PIONEER folder to the stick: PIONEER/rekordbox/export.pdb (the player database), exportExt.pdb, and PIONEER/USBANLZ with a copy of the analysis files, while the music itself lands in Contents. Rekordbox 7 can also write the newer Device Library Plus format for CDJ-3000. A USB is a derived copy: deleting master.db and keeping the stick does not give you your library back.
- 6
Back up the right set
master.db, -wal, -shm and the music folder are the irreplaceable pieces; ANLZ files are nice to keep because they save re-analysis time. File → Library → Backup Library zips the database (optionally with music); MixGoat Cloud Backup captures master.db plus -wal and -shm automatically whenever the folder changes. The full routine is at mixgoat.com/guides/how-to-back-up-rekordbox-library.
What lives where
If you open master.db with the key (pyrekordbox does this from Python), the tables read like the app: djmdContent is one row per track with path, title, BPM, key, rating, colour and comment; djmdCue holds hot cues (Kind 1 to 9 for pads A to H) and memory cues (Kind 0) with positions in milliseconds; djmdPlaylist and djmdSongPlaylist are the playlist tree and its members; djmdMyTag and djmdHistory hold My Tags and the play history. Nothing about cues is written into the audio files, which is the biggest practical difference from Serato.
- master.db: tracks, hot cues, memory cues, loops, playlists, My Tags, ratings, colours, comments, history, Related Tracks settings.
- master.db-wal / -shm: uncommitted recent writes; part of the database, not junk.
- share/PIONEER/USBANLZ/*/ANLZ0000.DAT, .EXT, .2EX: beat grid, waveforms, phrases, per-track analysis for players.
- rekordbox.xml: on-demand export of tracks, cues, grids and playlists. No My Tags, no history, no waveforms.
- PIONEER folder on a USB: export.pdb, exportExt.pdb, USBANLZ; the copy a CDJ reads.
- The audio files: only referenced by path from master.db, never modified by Rekordbox.
Why master.db is encrypted, and what that means for other tools
Rekordbox 5 kept an unencrypted database (datafile.edb in a different folder). Rekordbox 6 switched to master.db protected with SQLCipher, and Rekordbox 7 kept that layout unchanged, so a 6 library opens in 7 as is. The key is not something you type; it is embedded in the application, and the open-source pyrekordbox library recovers it from the Rekordbox installation so scripts can read and write the database directly. Tools without that route (most converters, Lexicon, DJCU, rekordcloud in some modes) go through rekordbox.xml instead, which is why so many workflows start with File → Export Collection in xml format.
The trade-off is freshness. rekordbox.xml is a snapshot from whenever you last exported it; master.db is always current. A tool that reads the XML sees yesterday's cues, and a tool that writes the XML needs you to import the result back. Serato's equivalent files are described at mixgoat.com/guides/serato-library-files-explained, Traktor's collection.nml at mixgoat.com/guides/traktor-library-files-explained and VirtualDJ's database.xml at mixgoat.com/guides/virtualdj-library-files-explained.
What MixGoat reads and writes
MixGoat follows the same db-path pointer Rekordbox uses (rekordboxAgent/storage/options.json), then falls back to the default Pioneer and Pioneer DJ folders, so a moved library is found without configuration; you can also point it at a .db or .xml file by hand. Library import for migration or the Set Planner reads master.db through pyrekordbox and never modifies the source. Writes (Cues & Loops save, migration into Rekordbox, sending playlists) go directly into master.db with Rekordbox closed; when that is not possible, MixGoat writes rekordbox.xml in the same folder after copying the old one to rekordbox.xml.bak and reports it as an XML export rather than a database save.
Cloud Backup (GOAT) watches the Rekordbox folder and, five quiet minutes after a change, uploads master.db, master.db-wal and master.db-shm, each gzipped, skipping the run while Rekordbox is open. On restore, an existing master.db is renamed to master.db.mixgoat-restore-bak-<timestamp> instead of being overwritten. The analysis folder is not part of the snapshot; Rekordbox rebuilds it on the next load of each track.
Back up master.db automatically with MixGoat
Cloud Backup captures master.db with its -wal and -shm files whenever they change. Part of GOAT.
Back up master.db automatically with MixGoatFrequently asked questions
- Where is the Rekordbox database on Mac?
- ~/Library/Pioneer/rekordbox/master.db, or ~/Library/Pioneer DJ/rekordbox/master.db on some installs. The user Library folder is hidden; use Finder's Go to Folder.
- Where is the Rekordbox database on Windows?
- %APPDATA%\Pioneer\rekordbox\master.db, which expands to C:\Users\<you>\AppData\Roaming\Pioneer\rekordbox\master.db. If the library was moved, options.json under rekordboxAgent\storage has the current db-path.
- Can I open master.db in a SQLite browser?
- Not directly; it is SQLCipher-encrypted and a normal SQLite browser reports it as not a database. pyrekordbox can open it with the embedded key; otherwise use rekordbox.xml.
- Can I delete the share/PIONEER/USBANLZ folder to save space?
- Rekordbox will re-analyse tracks as you load them, and cues and playlists in master.db are unaffected, but any beat grid you corrected by hand is lost with the ANLZ files. Move the library to a bigger drive instead.
- Is rekordbox.xml kept up to date automatically?
- No. It is written only when you choose File → Export Collection in xml format. Preferences → Advanced → Database → rekordbox xml is the import side and does not export anything.
- Are the library files the same in Rekordbox 6 and 7?
- Yes. Both use master.db, the -wal/-shm pair and share/PIONEER/USBANLZ in the same folder, and 7 opens a 6 library unchanged. Rekordbox 5 used a different, unencrypted database that 6 converted on first launch.