This tool is for users of Pioneer's Rekordbox v6 to gain access to their currently playing track. This data can be used for any number of purposes, but a large one is online streaming of audio and video. Built-in support for OBS and Audio Hijack are included.
Since I use macOS, and I have an install of Rekordbox on macOS that's what I have it working with. However, there's no reason that somebody who's using Rekordbox on Windows can't help out and make the tweaks needed to point to the file locations on a Windows install. If there's any demand maybe I'll install a VM and install Rekordbox and I'll do it myself.
./supbox
from the command line.2020/05/13 11:34:27 {ID:6d655f64-f2e5-4ec9-bd51-3a2c86984c8e Artist:VNV Nation Name:Retaliate ImagePath:/Users/gabek/Library/Pioneer/rekordbox/share/PIONEER/Artwork/bd3/82718-334f-482d-ad0a-82a1f8ba2507/artwork.jpg}
Note: If you run into an error from macOS running ./supbox
from the command line saying it's not signed or from an unknown developer first open it directly via the finder just once, and it should be fine from then on.
If you're using OBS the file path of nowplaying-obs-* would generate three files:
Within OBS you can then point to these files and add the Metadata to your broadcast.
Here's an example setup:
You can point Audio Hijack at a specially formatted text file and the software will read it and treat it as the current Metadata. This file location is configured in the config file as audioHijack under output.
For example you can set it to output/nowplaying-audiohijack.txt and the contents of the file would look something like
Title: Retaliate
Artist: VNV Nation
Artwork: /Users/me/Library/Pioneer/rekordbox/share/PIONEER/Artwork/bd3/82718-334f-482d-ad0a-82a1f8ba2507/artwork.jpg
Here's an example setup:
Please read the details that Rogue Ameba has provided under the Metadata from a “Now Playing.txt” file section if you have questions.
An option to generate a JSON file with the Metadata is available for other uses. Upload it to a web server, have your text to speech engine read the current track, whatever ideas you can come up with.
{"ID":"6d655f64-f2e5-4ec9-bd51-3a2c86984c8e","artist":"VNV Nation","track":"Retaliate","imagePath":"/Users/gabek/Library/Pioneer/rekordbox/share/PIONEER/Artwork/bd3/82718-334f-482d-ad0a-82a1f8ba2507/artwork.jpg"}
A companion to this JSON output can be found with json-scrobbler, a simple tool that just monitors a JSON file and then scrobbles the track data to Last.FM. If you're a Last.FM user, here's a way to finally scrobble your DJ sets in real-time.
This tool relies on Rekordbox marking a track as "played" before we know it's the most recently played track. I've found this currently happens one minute into playback. This is not optimal, as I'd really love to know this immediately. However, this is what Rekordbox is doing and I'll keep looking to see if there's any other way to work with this.
We're doing things with Recordbox that are unsupported and even likely completely unwanted by Pioneer. Things could change by them at any moment and even shut this down completely.