gabek / supbox

Get the currently playing track from Rekordbox v6 as Audio Hijack Shoutcast/Icecast metadata, display in your OBS video broadcast or export as JSON.
MIT License
52 stars 1 forks source link
audiohijack obs rekordbox shoutcast streaming

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.

Currently only supported on macOS

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.

Usage

  1. Download the zip file and unzip it somewhere.
  2. Open the config/config.yaml file.
  3. Make sure the application path points to your copy of Rekordbox.app (version 6) on your computer.
  4. Decide where you want the output files to go such as an "output" directory. Create this directory if needed.
  5. Decide if you are using OBS, Audio Hijack, or JSON output.
  6. You can remove any of the config file output destinations you're not using.
  7. Run ./supbox from the command line.
  8. You should see output when tracks change that looks like
    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.

Using with OBS

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:

Using with Rogue Ameba Audio Hijack

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.

JSON Output

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.

Disclaimers

Thank yous