Migrate
Moving from rekordbox, Serato, Traktor or djay: what Open DJ reads, what it writes back, what is lost, and how to back up first. Deck A is one section per app; Deck B is the command-line tools in a source checkout.
The app imports two things.
The Mac app's first-run setup imports a rekordbox library or folders of music files. Serato, Traktor and djay libraries are read by command-line tools in a source checkout, not by the app.
| Coming from | Mac app, 1.0 alpha | Source checkout |
|---|---|---|
| rekordbox 6 or 7 | Imports the library | Also reads it; write-back is built and switched off. |
| Serato DJ Pro | Music files only | Reads a library from before Serato 4.0 into an open-dj file. |
| Traktor | Music files only | Reads the collection into an open-dj file. |
| djay Pro | Music files only | Reads the library; can sync playlists and ratings with rekordbox, dry run first. |
Music files only, what that means
Point the setup at the folders that hold your music. Open DJ writes no BPM, key or beatgrid at import; it analyzes the tracks itself and shows its progress on the last setup screen. Whether folder import reads title, artist and genre tags in the packaged app is not yet verified (PARITY-15 is open). Cue points, loops, crates and playlists from Serato, Traktor or djay do not come across this way.
SETUP-03, SETUP-14, PARITY-15
Open DJ's import only reads, but back up your current app's library before you try anything new with it. Each section below gives the steps from that app's own documentation, with the date we checked it.
From rekordbox.
The path the Mac app imports in full. It reads a copy of your library; the installed Mac app clears the write switch before its engine starts, so it will not write to your rekordbox library, a Pioneer share or a USB export. Its one library write is a djay playlist write-back, which runs only after you confirm it and backs up the playlist first. From a source checkout, writes are off by default; the one exception is undo of an earlier write you allowed.
What is read
First-run setup finds rekordbox 6 or 7 without opening its database. On import it copies the database, decrypts the copy and imports tracks, playlists with their track order, BPM, key and rating. Hot cues and beatgrids are read from the decrypted copy and from rekordbox's own analysis files, which setup checks for before it starts. The Mac app never changes your live master.db.
SETUP-01, SETUP-02, INSTALL-13
What is written back
From the Mac app, nothing. In a source checkout the write paths exist, for playlists, ratings, cues, analysis and file locations, and they are covered by tests. They sit behind a write gate that refuses by default.
SYNC-ONEWAY-01, SYNC-ONEWAY-02, SYNC-ONEWAY-03, SYNC-ONEWAY-04
Playlists you build and cues you set in Open DJ stay in Open DJ. They do not reach rekordbox, and they do not reach your USB sticks, so keep exporting sticks from rekordbox. Every write toward rekordbox's database, its share folder or a USB export refuses with one named error unless the write gate is turned on in a source checkout (how the gate is set); disabled controls say "sync to rekordbox disabled - one-way import only". The Mac app clears that setting before it starts its engine, so it cannot be turned on there. In a source checkout, the one exception is undo of an earlier write you allowed: it works with the gate off, so a write can always be reversed, and its other safety checks still run.
Tests: tests/test_rekordbox_writeback_gate.py, tests/test_rekordbox_writeback_surfaces.py, tests/test_rekordbox_writeback_recovery.py
What is lost
- Playlist folders: playlists come in by name and track order, without the folder tree around them.
- Smart playlist rules are not imported.
- My Tag and track colors are not imported.
- Changes you make in Open DJ stay in Open DJ while the gate is off.
Back up first
- In rekordbox, open the File menu, choose Library, then Backup Library, and click OK.
- Choose Yes to back up your music files too (they go in a
rekordbox_bakfolder), or No for the library only. - Pick where to save the backup, click Save, and click OK when it says the collection was backed up.
To restore: File, Library, Restore Library. Source: rekordbox 7.0.0 Instruction Manual, Collection section, checked Sat 3 Oct 2026.
From Serato DJ Pro.
The Mac app takes your music files. Your Serato library itself is read only by the tooling in a source checkout.
What is read
In the Mac app: the music files, through the folder import; its tag reading in the packaged app is not yet verified. Cue points Serato keeps inside the files are not read by that import.
In a source checkout: the open-dj tools read the _Serato_ folder (its database V2 file and crates) and the Serato cue and beatgrid tags inside each MP3 file (cue and beatgrid tags in other formats are skipped without a warning), and write an open-dj file. The Mac app does not import that file. Serato support marks database V2 as legacy: only Serato DJ Pro and Lite versions before 4.0.0 create it. So a library made by Serato DJ Pro 4.0 or later may not be readable by Open DJ's reader (untested). The reader has been tested on synthetic files only, not on a real Serato library of any version.
OPEN-02c
What is written back
Nothing that we describe as a migration step. A Serato writer exists in the source and passes its tests, but those tests use synthetic files only, and the sign-off on a real Serato library was deferred. Do not run it against your real library.
OPEN-02c, 16-VERIFICATION.md
What is lost
- Through the Mac app: everything except the files, including cue points, loops, beatgrids and crates. Tags should come across, but that is not yet verified in the packaged app.
- Through the open-dj file: smart crate rules (kept as an opaque blob), and tracks with several artists show them as one combined name.
Back up first
- Quit Serato.
- Copy the
_Serato_folder from your Music folder to another drive. - Copy the
_Serato_folder from the top of every external drive you added music from. - In Finder, hold Option, choose Go, then Library, open Application Support, and copy the
Seratofolder'sLibraryfolder. - Copy your music files without renaming them.
Sources: Serato support, Backing up and moving your library to a new computer and Backing Up Your Files, checked Sat 3 Oct 2026.
From Traktor.
The Mac app takes your music files. Your Traktor collection is read only by the tooling in a source checkout.
What is read
In the Mac app: the music files, through the folder import; its tag reading in the packaged app is not yet verified.
In a source checkout: the open-dj tools read collection.nml, with BPM, key, rating, hot cues, loops and playlists, and write an open-dj file. The Mac app does not import that file.
OPEN-02d
What is written back
Nothing that we describe as a migration step. A collection.nml writer exists in the source and passes its tests on synthetic collections, but the sign-off on a real Traktor collection was deferred. Do not run it against your real library. It has a dry run and two flags, and none of the other safety steps: no running-app check, backup, atomic write or read-back.
OPEN-02d, 16-VERIFICATION.md
What is lost
- Through the Mac app: everything except the files. Tags should come across, but that is not yet verified in the packaged app.
- Through the open-dj file: the playlist folder tree is flattened, cue colors follow Traktor's fixed palette, track colors become a palette index, and tracks with several artists show them as one combined name.
Back up first
- Quit Traktor. It saves a dated backup of your collection each time it closes.
- Copy the whole
Traktor x.x.xfolder from Documents, then Native Instruments. It holdscollection.nml, the dated backups inBackup, thenCollection, andTraktor Settings.tsi. - Copy your music files.
To restore a backup, right-click Track Collection in Traktor's browser and choose Import another Collection. Sources: Native Instruments support, How to Restore the TRAKTOR Track Collection from a Backup and How to Transfer TRAKTOR Collections, Playlists, and Settings, checked Sat 3 Oct 2026.
From djay Pro.
The Mac app takes your music files. The source checkout reads djay's library and can sync playlists and ratings with rekordbox.
What is read
In the Mac app: the music files, through the folder import; its tag reading in the packaged app is not yet verified.
In a source checkout: djay's MediaLibrary.db, opened read-only, with tracks, BPM, key, rating and playlists. Cue points come across only where the reader can decode them.
OPEN-02b, SYNC-01
What is written back
In a source checkout, two tools write into djay: playlist sync, with rekordbox as the source, and ratings sync, which writes each rating the way its resolution file says, into djay or back into rekordbox. Both are dry runs unless you pass --live and a typed confirmation, and a live ratings run also needs the rekordbox write gate on. Playlist sync updates playlists that already exist in djay; creating a new one needs an extra flag. They refuse while djay or rekordbox is running, back up the database first, read the result back, and write an undo script. djay's iCloud sync carries cue points and loops, not playlists (Algoriddim help, checked Sat 3 Oct 2026), so the changed playlists stay on this Mac. The playlist tool still warns that djay may re-read playlist data when it next starts, so keep djay quit until you have checked the result. Their tests run on fixture databases.
SYNC-03, SYNC-06, tests/sync/test_playlist_apply_*.py (safety and integration), tests/test_apply_ratings.py
What is lost
- Through the Mac app: everything except the files. Tags should come across, but that is not yet verified in the packaged app.
- Streaming-only tracks have no local file, so they cannot come across.
- Cue points the reader cannot decode. Tracks with several artists show them as one combined name.
Back up first
- Quit djay.
- Copy the whole
djayfolder in your Music folder to another drive. It holds the djay Media Library with your playlists, history, cue points and loops. - djay also keeps its own daily backups, up to ten, in
Music/djay/Backups.
Sources: Algoriddim help, How to find your djay data and move it to a new device and What to do if djay reports an error with the djay Media Library database, checked Sat 3 Oct 2026.
The tools in a source checkout.
The commands behind the sections above. The source is planned to open on Mon 5 Oct 2026; see building from source.
# adapter: rekordbox, djay, serato, traktor
python -m apps.open_dj.cli export --adapter serato --source <path to _Serato_> --out serato.open-dj.json
python -m apps.open_dj.cli export --adapter traktor --source <path to collection.nml> --out traktor.open-dj.json
# compute the plan, then apply it # djay and rekordbox must both be quit # updates playlists already in djay; a new one needs --leaf-type-byte python -m apps.sync playlist-diff python -m apps.sync.playlist_apply --dry-run python -m apps.sync.playlist_apply --live --i-understand-the-risks --playlists "<name>"
OPEN-02, SYNC-03, SYNC-ONEWAY-01