Deep-Symmetry / crate-digger

Java library for fetching and parsing rekordbox exports and track analysis files.
Other
139 stars 18 forks source link

Using Crate Digger for the .edb Device SQL database #21

Closed TheBrenny closed 2 years ago

TheBrenny commented 2 years ago

I've stumbled upon Deep-Symmetry many times over the last couple of years because I keep wanting to make something that makes my life much easier when it comes to managing my collection. I'm kind of just stuck with modifying the exported XML file for now, but I'm looking to see if the process can be somewhat automated if I can hook into the Rekordbox Database somehow.

The work you've done is amazing! You've found a lot of information on the most over-engineered protocols, and you've done excellent documentation too - something that's far too rare. 🙏

I'm willing to place bets that you've looked into the .edb files as well to see any similarities between the .pdb files, and I'm curious to know if you've found anything?

Looking at its hex/ascii content, it looks somewhat similar to what I would expect, but it's also too far different for me to make any connections in my mind.

Do you reckon it could be reversed? Unfortunately, Ubiquitous AI (the makers of Device SQL - afai could tell) run a pretty tight ship with their SDK.

brunchboy commented 2 years ago

Hello @TheBrenny thanks so much for the kind words! Unfortunately, though, I have not looked at .edb files; believe it or not, I do not enjoy reverse-engineering things, I find it incredibly tedious and difficult and time consuming, and resort to it only when there is no other way for me to achieve an important goal. And since my software works with performances, and can get data either over the remote database protocol or by reading the exported removable media files mounted in players, I have absoutely no need to read .edb files.

However, I also do have some good news for you: I know that other people have done so, and that in recent major versions of rekordbox (starting with 6), they are no longer DeviceSQL files (their developers find that format as painful and dated as we do). For example, the Mixxx project is able to read them. In fact, they are now standard SQLite 3 database files, for which a variety of open-source libraries exist to allow them to be read and updated. However, they are encrypted with SQLCipher, and I have not tried to find the key, since I don’t need to read the files, and don’t want to get involved in anti-circumvention battles. However other people have, and have discussed how to it. You may also be able to obtain help on the Mixxx developer Zulip chat, as described on their Get Involved page.

So best of luck and thanks again for the kind comments, they mean a great deal to me!