XML Database Format#
The Rekordbox XML format is well documented by Pioneer in [1] and [2].
The first entry of the XML file should be displayed as follows:
<?xml version="1.0" encoding="UTF-8" ?>
Warning
In order to save playlists and their information to Rekordbox, all rows from the second row and beyond must follow a format which rekordbox supports.
General structure#
The general structure of the Rekordbox XML file is as follows:
<?xml version="1.0" encoding="UTF-8" ?>
<DJ_PLAYLISTS Version="1.0.0">
<PRODUCT Name="rekordbox" Version="5.4.3" Company="Pioneer DJ"/>
<COLLECTION Entries="1234">
<TRACK TrackID="1" Name="NOISE" Artist="" Composer="" Album="" Grouping=""
Genre="" Kind="WAV File" Size="1382226" TotalTime="5" DiscNumber="0"
TrackNumber="0" Year="0" AverageBpm="0.00" DateAdded="2017-09-07"
BitRate="2116" SampleRate="44100" Comments="" PlayCount="0" Rating="0"
Location="file://localhost/C:/Users/user/Music/PioneerDJ/Sampler/OSC_SAMPLER/PRESET%20ONESHOT/NOISE.wav"
Remixer="" Tonality="" Label="" Mix=""/>
<TRACK TrackID="2" Name="SINEWAVE" Artist="" Composer="" Album="" Grouping=""
Genre="" Kind="WAV File" Size="1515258" TotalTime="5" DiscNumber="0"
TrackNumber="0" Year="0" AverageBpm="0.00" DateAdded="2017-09-07"
BitRate="2116" SampleRate="44100" Comments="" PlayCount="0" Rating="0"
Location="file://localhost/C:/Users/user/Music/PioneerDJ/Sampler/OSC_SAMPLER/PRESET%20ONESHOT/SINEWAVE.wav"
Remixer="" Tonality="" Label="" Mix="">
<TEMPO Inizio="0.232" Bpm="172.00" Metro="4/4" Battito="1"/>
<POSITION_MARK Name="" Type="0" Start="0.232" Num="-1"/>
...
</TRACK>
...
</COLLECTION>
<PLAYLISTS>
<NODE Type="0" Name="ROOT" Count="11">
<NODE Name="Favourites" Type="1" KeyType="0" Entries="56">
<TRACK Key="1"/>
<TRACK Key="2"/>
...
</NODE>
</NODE>
...
</PLAYLISTS>
</DJ_PLAYLISTS>
Supported Elements and Attributes#
Element |
Description |
Type |
Notes |
---|---|---|---|
DJ_PLAYLIST |
|||
Version |
Version of XML format |
utf-8 |
The latest version is 1.0.0 |
PRODUCT |
|||
Name |
Name of product |
utf-8 |
This name will be displayed in each application software. |
Version |
Version of application |
utf-8 |
|
Company |
Name of company |
utf-8 |
|
COLLECTION |
|||
Entries |
Number of TRACK in COLLECTION |
sint32 |
|
TRACK |
“Location” is essential for each track |
||
TrackID |
Identification of track |
utf-8 |
|
Name |
Name of track |
utf-8 |
|
Artist |
Name of artist |
utf-8 |
|
Composer |
Name of composer (or producer) |
utf-8 |
|
Album |
Name of album |
utf-8 |
|
Grouping |
Name of group |
utf-8 |
|
Genre |
Name of genre |
utf-8 |
|
Kind |
Type of audio file |
utf-8 |
|
Size |
Size of audio file |
sint64 |
Unit: Octet |
TotalTime |
Duration of track |
float64 |
Unit: Second (without decimal numbers) |
DiscNumber |
Number of the disc of the album |
sint32 |
|
TrackNumber |
Number of the track of the album |
sint32 |
|
Year |
Year of release |
sint32 |
|
AverageBpm |
Value of average BPM |
float64 |
Unit: Second (with decimal numbers) |
DateModified |
Date of last modification |
utf-8 |
Format: yyyy-mm-dd; ex.: 2010-08-21 |
DateAdded |
Date of addition |
utf-8 |
Format: yyyy-mm-dd; ex.: 2010-08-21 |
BitRate |
Encoding bit rate |
sint32 |
Unit: Kbps |
SampleRate |
Frequency of sampling |
float64 |
Unit: Hertz |
Comments |
Comments |
utf-8 |
|
PlayCount |
Play count of the track |
sint32 |
|
LastPlayed |
Date of last playing |
utf-8 |
Format: yyyy-mm-dd; ex.: 2010-08-21 |
Rating |
Rating of the track |
sint32 |
0=”0”, 1=”51”, 2=”102”, 3=”153”, 4=”204”, 5=”255” |
Location |
Location of the file |
utf-8 (URI) |
includes the file name |
Remixer |
Name of remixer |
utf-8 |
|
Tonality |
Tonality (Kind of musical key) |
utf-8 |
|
Label |
Name of record label |
utf-8 |
|
Mix |
Name of mix |
utf-8 |
|
Colour |
Colour for track grouping |
utf-8 |
RGB format (3 bytes) |
TEMPO |
BeatGrid; More than two “TEMPO” can exist for each track |
||
Inizio |
Start position of BeatGrid |
float64 |
Unit: Second (with decimal numbers) |
Bpm |
Value of BPM |
float64 |
Unit: Second (with decimal numbers) |
Metro |
Kind of musical meter |
utf-8 |
ex. 3/4, 4/4, 7/8 … |
Battito |
Beat number in the bar |
sint32 |
If “Metro” is 4/4, the value should be 1, 2, 3 or 4 |
POSITION_MARK |
More than two “POSITION MARK” can exist for each track |
||
Name |
Name of position mark |
utf-8 |
|
Type |
Type of position mark |
sint32 |
Cue=”0”, Fade-In=”1”, Fade-Out=”2”, Load=”3”, Loop=”4” |
Start |
Start position of position mark |
float64 |
Unit: Second (with decimal numbers) |
End |
End position of position mark |
float64 |
Unit: Second (with decimal numbers) |
Num |
Number of the position mark |
sint32 |
Hot Cue: A=”0”, B=”1”, C=”2”; Memory Cue: “-1” |
Playlists are a bit more complex since they are nested:
Element |
Description |
Type |
Notes |
---|---|---|---|
NODE |
|||
Type |
Type of NODE |
sint32 |
“0” (FOLDER) |
Name |
Name of NODE |
utf-8 |
(“ROOT”) |
Count |
Number of items in the NODE |
sint32 |
|
NODE |
|||
Type |
Type of NODE |
sint32 |
“0” (FOLDER) |
Name |
Name of NODE |
utf-8 |
(“ROOT”) |
(if “Type” == “1”) |
Node is a PLAYLIST |
||
Entries |
Number of TRACK in PLAYLIST |
sint32 |
|
KeyType |
Kind of identification |
sint32 |
“0” (Track ID) or “1”(Location) |
TRACK |
|||
Key |
Identification of track |
sint32/utf-8 |
|
(if “Type” == “0”) |
Node is a FOLDER |
||
Count |
Number of items in the NODE |
sint32 |
Rekordbox track colors:
Name |
Hex |
RGB |
---|---|---|
Rose |
0xFF007F |
255, 0, 127 |
Red |
0xFF0000 |
255, 0, 0 |
Orange |
0xFFA500 |
255, 165, 0 |
Lemon |
0xFFFF00 |
255, 255, 0 |
Green |
0x00FF00 |
0, 255, 0 |
Turquoise |
0x25FDE9 |
37, 253, 233 |
Blue |
0x0000FF |
0, 0, 255 |
Violet |
0x660099 |
102, 0, 153 |