Rekordbox 6 Spotify



Written by: Christiaan Maks @ 4/18/2020

Part 2: Import Downloaded Spotify Songs to Rekordbox. The process of importing tracks into Rekordbox is pretty easy. Simply follow the steps below. Step 1 Open Rekordbox and then highlight the Collection part. Step 2 Locate the converted music folders, then drag the converted songs onto the track window at the bottom of the Rekordbox screen. Rekordbox will analyze these files and adds track data.

Hey guys,

When it comes to Spotify and Rekordbox, as for me, it's possible. I got an assistant to help me here, called Spotify to MP3 Converter, which can work well to convert Spotify to Rekordbox compatible audio files. And then I can easily import Spotify songs into Rekordbox. You can have a try on the way I'm using it. It must also work for you here. Since Rekordbox 6, it is not required to enter the license key provided with some DDJs such as the DDJ-400. The paid options linked to the controller will be unlocked when the device is connected to the computer. (Spotify is not available). Indeed, you will have access to an unlimited library contrary to a limited dropbox account with. Launch Rekordbox program on your computer and then drag & drop the converted Spotify music files to the collection of Rekordbox. Or you could click on the ‘File’ ‘Import’ ‘Import Track/Import Folder/Import Playlist’ in Rekordbox program. After adding Spotify to Rekordbox, then you can use Spotify with Rekordbox without any limitation. Exporting a Rekordbox playlist as a file. Open the Rekordbox software, select your playlist, and Export as.m3u8 file; On Soundiiz, go to the Playlists tab and choose Import Playlist / From File; Select your previous exported.m3u8 file and confirm; Follow the steps to import your playlist to Spotify.

So since the new Rekordbox 6 launched, I've been scrambling to support it for rekordcloud. At first, it seemed that it was not possible since they removed the XML export option and the internal database that Rekordbox uses has been encrypted for a long time. Luckily, I've been able to figure things out and rekordcloud now fully supports Rekordbox 6. 🎉

But this article isn't about that. With Rekordbox 6 a lot of interesting new developments have happened under the hood that I'd like to share with everyone here. I'll go over the new database, the Rekordbox Agent and some other thoughts.

Few things first:

My main operating system is Windows, so all file paths in this article will be for Windows.

%AppData% is a Windows file path shortcut for C:UsersusernameAppData

New Database

Rekordbox 5 used a .EDB file to store the database at %AppData%RoamingPioneerrekordboxdatafile.edb. This file appears to be a DeviceSQL database and Pioneer has not made any information about it available. Luckily they allowed us to export our data as an XML file so accessing the database was never much of a priority.

Now with Rekordbox 6, I'm sure you've noticed that it took a while to convert your library from Rekordbox 5 to 6. This is because they've completely changed the database from DeviceSQL to SQLite. The new database now resides at %AppData%RoamingPioneerrekordboxmaster.db. This is an SQLite 3 database encrypted with SQLCipher 4. A bit more about the security below.

My educated guess is that DeviceSQL was too old for them to keep using adequately, especially with the Rekordbox Agent (more below). This was a good opportunity for them to get rid of some legacy baggage. SQLite is a file based database (it doesn't require a server) and one of the most common databases used. Probably the best choice for Rekordbox at this point.

Security

So, the new SQLite database is encrypted which means you can't just use it without the encryption key. Pioneer did this because they prefer that no one outside of Pioneer touches it (there is a forum post by Pulse but I can't find it right now). This is certainly understandable, but the data inside the database is yours so there should definitely be a way to get to it.

Since your data is stored and used locally, we already know that the key must (at some point) be present on our machine. Usually it's hidden in an executable file (possibly obfuscated, this means the key is garbled on purpose so it's hard to use without understanding the code around it). Knowing the key must be local somewhere, gives good hope that you can find it. Although sometimes this can be really hard.

You're probably wondering what the encryption key is. I'm not sure it's wise for me to just post it here. I'm not sure how upset Pioneer would be with me so I prefer not to. But if you read this article thoroughly and poke around in the source code, I'm sure you'll find it.

I thought the key might be license or machine dependent, but it appears that all databases are encrypted with the same key.

Rekordbox Agent

The other real interesting addition is the Rekordbox Agent. This looks like what they're using the achieve the new cloud sync feature. It's a completely separate program from Rekordbox 6 and it launches when you launch Rekordbox 6. Even if you don't have cloud sync, it still launches.

The Rekordbox Agent is an Electron app. [Note: removed some detailed reverse engineering instructions here.] After looking inside the source, the app appears to run the Express web framework for Node.js. We can combine this information with what we see in the Rekordbox Agent log file at %AppData%RoamingPioneerrekordboxAgentlog.log. It contains lines like these:

Rekordbox Agent launches an Express instance so it can listen to incoming events. By default it uses port 30001. You appear to be able change this in %AppData%RoamingPioneerrekordbox6rekordbox3.settings by changing the CloudAgentPortNumber key value.

There are lots of routes here and I haven't explored all of them yet, but it's fairly safe to say that the Rekordbox Agent is in charge of up- and downloading your tracks and database. There are references in the source code to copying files (eg controllers/file_copy_worker.js looks like a multi-threaded worker). The source code also contains the database model for every table (in the models folder).

This brings us to the reason of the SQLite database. The Rekordbox Agent needs database access and is written in Electron (which uses Node.js). But since DeviceSQL is an old and not well supported database, they had to do a switch. There doesn't appear to be any package on NPM for DeviceSQL so supprting it in Javascript could have been a time sink. Switching was probably the cheaper, faster and more future-proof choice.

Other interesting things I noticed in the source code:

  • Looks like your cloud sync backups go to Amazon AWS S3. More specifically (in my case), the rb-cloud-data-eu bucket in region eu-west-1. I'm in the EU so it might use multiple regions, depending on your location. But since I see the eu-west-1 reference more often, I think they only use one location. You can actually see this yourself in the Rekordbox Agent log file.
  • There are references to Google Drive and OneDrive together with Dropbox, so they may support that in the future. This is paired with something called rekordbox cloud (hopefully not to be confused with rekordcloud in the future). Maybe they are just using Dropbox now as a quick fix (and let you pay for it) and later they might include their own storage solution?
  • There is a reference to a Spotify file type. Maybe this is coming in the future? Take this with a grain of salt though, it was one small reference that did not occur elsewhere.

Extracting Your Data

The XML used to contain (almost) all our data, with a few notable exceptions such as MyTags. Now that this is no longer an option, we'll have to do it ourselves. Luckily, the SQLite database is clearly structured so getting our data out of there is no problem. I'm not going into details here, because it's really not very interesting how the database is structured.

There is one problem here though. The beatgrids are not found in the database. They appear to only be located in the ANLZ0000.DAT files. These are binary files that contain the exact beat locations (and more information such as cue points, waveform and more). These files are found at (for example) %AppData%RoamingPioneerrekordboxsharePIONEERUSBANLZ00cfc4d7-802f-430d-a845-0bd9a87cb09c. Looks familiar? These are also on your USB stick used by Pioneer CDJs. These files contain your pre-calculated waveforms, cue points, beatgrids and any other information the CDJs need.

The database points at the right .DAT file per track so finding out which file has the right beatgrid is easy. Getting them out of the .DAT file is a bit harder, but thankfully has been thoroughly researched and explained here. This certainly saved me a lot of time!

Writing Data

Rekordbox 6 can still import XML files. Honestly, I wonder why since the move to remove XML export is a step closer to a walled garden approach. But since you can still import XML, I've decided to use that method (for now) to import your data from rekordcloud back into Rekordbox. It is definitely possible to write data directly to the SQLite database, but since I don't have any documentation about it, it's safer not to do this yet. There might be unforeseen ramifications that could cause data loss.

Possibilities

One pain point of the XML export was always that it did not include MyTags. With access to the Rekordbox database, we can read now (and write) MyTags. This opens up many new possibilities in managing your MyTags. Thoughts about this? Let me know!

Maybe there are novel ways to use the full information of the database that wasn't possible earlier with the XML export. Discuss below! :)

Legal

Preface: I'm not a lawyer or legal expert by any means so take everything I say with a grain of salt.

Rekordbox encrypts the database that contains your own data. This is unlike any of the competitors. Traktor and VirtualDJ both have XML files that you can look into with any text editor. Serato saves most data into ID3 tags but can still be viewed easily with a tool like kid3. Until now this was no big deal since the XML export provided most data.

Rekordbox 6 Vs 5

If you're in the EU, you fall under the GDPR. Under Article 15 of the GDPR, it is stated that you have rights to access your own data. Pioneer must provide a way to do this. The XML export was a suitable method but no longer exists. There is no automatic way to provide access to your own data anymore. We'll see where this goes but I don't think they have a choice to either bring XML export back or open up the new database.

If you're in the US (or elsewhere): I don't think there are any applicable privacy laws here. Convince your representatives to take privacy more seriously.

Edit: most likely this does not fall under the GDPR since it is not 'personal data' (see definition in Article 4.1).

It could be different

In case Pioneer reads this: do the right thing and open up Rekordbox.

Bringing back the XML export is an option but if Pioneer wants to do it right:

  • Remove the database encryption
  • Document the database
  • Support third party developers

An open platform leads to innovation. Closing it up will cause Rekordbox to stagnate. Opening it up can lead to a whole ecosystem around Rekordbox with limitless possibilities and integrations.

Thoughts or corrections?

If you have any thoughts, or notice a mistake, let me know below.

Follow rekordcloudFollow rekordcloud

To download this software, you first need to agree to the Software End User License Agreement.
Note: In rekordbox (ver. 6.0 or later), you don't need to use 'rekordbox dj license key card' that came with your DJ equipment. For details, see here.

Software End User License Agreement

This Software End User License Agreement (“Agreement”) is between you (both the individual installing the Program and any single legal entity for which the individual is acting) (“You” or “Your”) and AlphaTheta CORPORATION (“AlphaTheta”).

1. DEFINITIONS

1.1 “Documentation” means written documentation, specifications and help content made generally available by AlphaTheta to aid in installing and using the Program.
1.2 “Program” means all or any part of AlphaTheta’s software licensed to You by AlphaTheta under this Agreement.

2. PROGRAM LICENSE

2.1 Limited License. Subject to this Agreement’s restrictions, AlphaTheta grants to You a limited, non-exclusive, non-transferable, license (without the right to sublicense):
(a) To install a single copy of the Program in Your computer or mobile device, to use the Program only for Your personal purpose complying with this Agreement and the Documentation (“Authorized Use”);
(b) To use the Documentation in support of Your Authorized Use; and
(c) To make one copy of the Program solely for backup purposes, provided that all titles and trademark, copyright and restricted rights notices are reproduced on the copy.

2.2 Restrictions. You will not copy or use the Program or Documentation except as expressly permitted by this Agreement. You may transfer the Program (when the Program is transferred related license is also transferred without any procedure), but will not sublicense, rent, lease or lend the Program, or use it for third-party training, commercial time-sharing or service bureau use. You will not Yourself or through any third party modify, reverse engineer, disassemble or decompile the Program, except to the extent expressly permitted by applicable law, and then only after You have notified AlphaTheta in writing of Your intended activities.

Rekordbox

2.3 Usage of Lyrics is limited to your personal, noncommercial use in accordance with the terms of this Agreement. You may not reproduce (other than as authorized for your own personal usage), publish, transmit, distribute, publicly display, rent or lend, modify, create derivative works from, sell or participate in the sale of or exploit in any way, in whole or in part, directly or indirectly, any of the Lyrics so provided. You agree that you are not granted any so-called “karaoke” or “sing-along” rights to Lyrics and you shall not seek to or remove any vocal track from a sound recording that shall be associated with a Lyric provided to you. You agree not to assign, transfer or transmit any Lyrics to any third party. You agree that you shall not seek to or do anything that will defeat, evade or circumvent any efforts that may be made to protect the Lyrics from any unauthorized usage. You also agree that except as specifically authorized herein, the foregoing restrictions apply to your use of Lyrics.

2.4 Ownership. AlphaTheta or its licensor retains all right, title and interest in and to all patent, copyright, trademark, trade secret and other intellectual property rights in the Program and Documentation, and any derivative works thereof. You do not acquire any other rights, express or implied, beyond the limited license set forth in this Agreement.

2.5 No Support. AlphaTheta has no obligation to provide support, maintenance, upgrades, modifications or new releases for the Program or Documentation under this Agreement.

Spotify

3. WARRANTY DISCLAIMER

THE PROGRAM AND DOCUMENTATION ARE PROVIDED “AS IS” WITHOUT ANY REPRESENTATIONS OR WARRANTIES, AND YOU AGREE TO USE THEM AT YOUR SOLE RISK. TO THE FULLEST EXTENT PERMISSIBLE BY LAW, AlphaTheta EXPRESSLY DISCLAIMS ALL WARRANTIES OF ANY KIND WITH RESPECT TO THE PROGRAM AND DOCUMENTATION, WHETHER EXPRESS, IMPLIED, STATUTORY, OR ARISING OUT OF COURSE OF PERFORMANCE, COURSE OF DEALING OR USAGE OF TRADE, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, SATISFACTORY QUALITY, ACCURACY, TITLE OR NON-INFRINGEMENT.

4. EXPORT CONTROL AND COMPLIANCE WITH LAWS AND REGULATIONS

You may not use or otherwise export or re-export the Program except as authorized by United States law and the laws of the jurisdiction in which the Program was obtained. In particular, but without limitation, the Program may not be exported or re-exported (a) into any U.S.-embargoed countries or (b) to anyone on the U.S. Treasury Department’s Specially Designated Nationals List or the U.S. Department of Commerce Denied Persons List or Entity List. By using the Program, you represent and warrant that you are not located in any such country or on any such list. You also agree that you will not use the Program for any purposes prohibited by United States law, including, without limitation, the development, design, manufacture, or production of nuclear, missile, or chemical or biological weapons.

5. U.S. GOVERNMENT RESTRICTED RIGHTS

The Program and Documentations are “commercial computer software” and “commercial computer software documentation” as those terms are defined in 48 C.F.R. §252.227-7014 (a) (1) (2007) and 252.227-7014 (a) (5) (2007). The U.S. Government’s rights with respect to the Program and Documentations are limited by this license pursuant to 48 C.F.R. § 12.212 (Computer software) (1995) and 48 C.F.R. §12.211 (Technical data) (1995) and/or 48 C.F.R. §227.7202-3, as applicable. As such, the Program and Documentations are being licensed to the U.S. Government end users: (a) only as “commercial items” as that term is defined in 48 C.F.R. §2.101 generally and as incorporated in DFAR 212.102; and (b) with only those limited rights as are granted to the public pursuant to this license. Under no circumstance will the U.S. Government or its end users be granted any greater rights than we grant to other users, as provided for in this license. Manufacturer is AlphaTheta Corporation, Yokohama i-Mark Place 6F, 4-4-5 Minatomirai, Nishi-ku, Yokohama-city, Kanagawa prefecture, Japan, ZIP: 220-0012

6. DAMAGES AND REMEDIES FOR BREACH

You agree that any breach of this Agreement’s restrictions would cause AlphaTheta irreparable harm for which money damages alone would be inadequate. In addition to damages and any other remedies to which AlphaTheta may be entitled, You agree that AlphaTheta may seek injunctive relief to prevent the actual, threatened or continued breach of this Agreement.

Spotify

7. TERMINATION

AlphaTheta may terminate this Agreement at any time upon Your breach of any provision. If this Agreement is terminated, You will stop using the Program, permanently delete it from your computer or mobile device where it resides, and destroy all copies of the Program and Documentation in Your possession, confirming to AlphaTheta in writing that You have done so. Sections 2.2, 2.3, 2.4, 3, 4, 5, 6, 7, 8 and 9 will continue in effect after this Agreement’s termination.

8. GENERAL TERMS

8.1 Limitation of Liability. In no event will AlphaTheta or its subsidiaries be liable in connection with this Agreement or its subject matter, under any theory of liability, for any indirect, incidental, special, consequential or punitive damages, or damages for lost profits, revenue, business, savings, data, use, or cost of substitute procurement, even if advised of the possibility of such damages or if such damages are foreseeable. In no event will AlphaTheta’s liability for all damages exceed the amounts actually paid by You to AlphaTheta or its subsidiaries for the Program. The parties acknowledge that the liability limits and risk allocation in this Agreement are reflected in the Program price and are essential elements of the bargain between the parties, without which AlphaTheta would not have provided the Program or entered into this Agreement.

8.2 The limitations or exclusions of warranties and liability contained in this Agreement do not affect or prejudice Your statutory rights as consumer and shall apply to You only to the extent such limitations or exclusions are permitted under the laws of the jurisdiction where You are located.

8.3 Severability and Waiver. If any provision of this Agreement is held to be illegal, invalid or otherwise unenforceable, that provision will be enforced to the extent possible or, if incapable of enforcement, deemed to be severed and deleted from this Agreement, and the remainder will continue in full force and effect. The waiver by either party of any default or breach of this Agreement will not waive any other or subsequent default or breach.

8.4 No Assignment. You may not assign, sell, transfer, delegate or otherwise dispose of this Agreement or any rights or obligations under it, whether voluntarily or involuntarily, by operation of law or otherwise, without AlphaTheta’s prior written consent. Any purported assignment, transfer or delegation by You will be null and void. Subject to the foregoing, this Agreement will be binding upon and will inure to the benefit of the parties and their respective successors and assigns.

8.5 Entire Agreement. This Agreement constitutes the entire agreement between the parties and supersedes all prior or contemporaneous agreements or representations, whether written or oral, concerning its subject matter. This Agreement may not be modified or amended without AlphaTheta’s prior and express written consent, and no other act, document, usage or custom will be deemed to amend or modify this Agreement.

8.6 You agree that this Agreement shall be governed and construed by and under the laws of Japan.

9. RESTRICTIONS TO INFRINGEMENTS OF COPYRIGHT PROTECTED DATA OWNED BY THIRD PARTY

When using the program, You must agree on the following:
(a) To follow copyright protection laws, rules and regulations designated in every country and international treaties;
(b) To legally obtain music data used in the Program;
(c) Not to bypass or decode Digital Rights Management technology implemented to the data.
In addition, you may not copy music data beyond the extent of private use. You may not give or transfer music data to third party. You may not share or intend to share the media or storage used to save music data with others. You may not save music data to media or storage which allows access to third party. You may not provide live distribution of such music data to third party.

ver. 6.5.1 (2021.03.02)

NEW

  • Support for SoundCloud Go+: High Quality Streaming.
  • macOS Big Sur now supported. (Driver software included)

IMPROVED

  • You can use rekordbox (Hardware Unlock) when the following mixer and PC/Mac are connected via USB cable and the mixer and the CDJ-3000 are connected via LAN.

DJM-TOUR1
DJM-900NXS2

Download Music For Rekordbox

  • Added the following format for rendering audio files in EDIT mode.
Premium

Is Rekordbox Compatible With Spotify

Mac: FLAC, AIFF, M4A(256kbps)
PC: FLAC, AIFF, MP3

  • Automatic deck selection for lighting is now available in PERFORMANCE mode when a PC/Mac is connected with the following units via a USB cable.

Does Rekordbox Work With Spotify

Rekordbox 6 Spotify

XDJ-XZ
DJM-V10*
DJM-TOUR1
DJM-900NXS2
DJM-750MK2

*NOTE: The DJM-V10-LF is not compatible with this feature. If the auto mode does not work as expected, please select the deck manually.

  • Changing and saving WAVEFORM CURRENT POSITION on the CDJ-3000's enlarged waveform is now available.
  • Tracks with m4p extension in iTunes Library are now shown as those with unsupported formats.

FIXED

  • Offline Locker edits would not be reflected immediately for Beatport LINK and Beatsource LINK tracks.
  • Occasionally artwork disappeared when importing Beatport LINK and Beatsource LINK tracks.
  • Unable to log in to TIDAL.
  • Improved stability and fixes for other minor issues.
  • System Requirements

    OS

    Windows 10、8.1 (64-bit, The latest service pack)
    macOS Big Sur 11 (Updated to the latest version)
    macOS Catalina 10.15 (Updated to the latest version)
    macOS Mojave 10.14 (Updated to the latest version)
    macOS High Sierra 10.13 (Updated to the latest version)
    Please read if you are considering buying a Windows 10 PC with an Intel 11th generation processor.

    CPU

    Intel® processor 1st generation or later Core™i9, i7, i5, i3
    Intel® processor 1st generation or later Core™i9, i7, i5 (Video function)
    AMD Ryzen™ 1000 series or later CPU
    Apple M1 chip (Vocal Position Detection is not available)
    To use Vocal Position Detection, you'll need an AVX compatible CPU.

    Memory

    4GB or more of RAM
    8GB or more of RAM (Video function)

    Hard disk/SSD

    2GB or more of free space (not including space for storing music files, etc.)

    Sound

    Audio output to speakers, headphones, etc. (internal or external audio device)

    USB port

    A USB 2.0 port is used to connect a controller or a mixer, and export track files to a USB storage device such as a flash drive and a hard disk drive

    LAN port

    An Ethernet LAN adapter (RJ45 port) for communicating with the DJ player is required to transfer music files to a Pioneer DJ player (i.e. CDJ-TOUR1, CDJ-2000NXS). For details, check the operating instructions of the Pioneer product, etc.

    Playable music file

    ALAC, FLAC, WAV, AIFF MP3, AAC

    Display resolution

    1280 × 768 or greater

    Internet connection

    An internet connection is needed to create a rekordbox user account and to download and activate the software.