Gobo Studios · a DBA of Monterey Skates LLC · Monterey, CA · (831) 264-8797 · gobostudios.com
VirtualDJ, over HTTP, on localhost:8082
Drop the plugin in VirtualDJ’s plugins folder and it starts a small HTTP server when VDJ loads. Any app on the same machine can then read what is playing — title, artist, BPM, position, live audio levels — and control playback.
It was written so SceneRig could see the beat. It turned out to be the most useful thing in the toolbox. Works on macOS and Windows. No Pro licence required.
Everything the decks know, as JSON
The API is deliberately boring: plain HTTP, plain JSON, CORS enabled so a browser dashboard can talk to it without a proxy.
Per-deck status
Title, artist, genre, file path, BPM, position, elapsed and remaining, volume, and the first-beat offset.
Live audio levels
RMS and peak, captured from VirtualDJ’s DSP callback. This is the feed a visualiser actually needs.
Playback control
Play, pause, stop, load, unload.
Parameters
Volume and pitch, in VirtualDJ’s native pitch percentage, clamped to the pitch range you have configured.
Search without disturbing the DJ
Query the local library or an online catalogue (Digitrax, Deezer, Beatport) without changing what the DJ is browsing on screen.
A way out of the box
/api/command and /api/query pass raw VDJScript through, so anything without a dedicated endpoint is still reachable.
If VirtualDJ is running, this works right now
# Health check
curl http://localhost:8082/api/ping
# Full status — both decks, crossfader, master volume
curl http://localhost:8082/api/status
# Play deck 1
curl -X POST http://localhost:8082/api/play
# Search Digitrax without touching the DJ's browser view
curl -X POST http://localhost:8082/api/search \
-H "Content-Type: application/json" \
-d '{"query":"sports car","provider":"Digitrax"}'
/api/ping answers {"pong":true}. If it does not, VirtualDJ has not loaded the plugin — restart VDJ and check the folder in the table below.
Two products lean on this one file
SceneRig polls /api/status twenty times a second and derives its own beat phase from BPM, song position, and the first-beat offset — then interpolates every frame, so the lights move smoothly between polls instead of stepping.
KaraokeFlow uses the same plugin in its VirtualDJ playback mode: load the next singer’s track into a deck with their name attached, apply the key change they requested, and control the fades from the dashboard.
Beyond our own two apps, people use this kind of endpoint for OBS overlays, home automation, and custom controllers. If VirtualDJ can do it, VDJScript can express it, and this plugin can carry it.
Copy one file into one folder
-
Get the build
vdj_rest_api.bundle.zipon macOS,vdj_rest_api.dllon Windows. -
Put it in VirtualDJ’s plugin folder
Use the folder for your platform below, and create it if it is not there. On macOS, unzip first and drag the
.bundlein. -
Start or restart VirtualDJ
The plugin loads on its own.
-
Check it answered
Visit
http://localhost:8082/api/ping. You should see{"pong":true}.
| Platform | Folder |
|---|---|
| macOS (Apple Silicon) | ~/Library/Application Support/VirtualDJ/PluginsMacArm/ |
| macOS (Intel) | ~/Library/Application Support/VirtualDJ/Plugins64/AutoStart/ |
| Windows | %USERPROFILE%\Documents\VirtualDJ\Plugins64\AutoStart\ |
Changing the port
The default is 8082. To move it, open VirtualDJ → Settings → Plugins, find “REST API”, and drag the Port slider. Restart VirtualDJ for it to take effect.
Nothing at /api/ping? VirtualDJ has not loaded the plugin. Confirm the file is in the folder for your platform above, then restart VirtualDJ.
Connection refused on 8082? Something else is using the port, or the port was changed in Settings → Plugins. Check the slider value and try that port.
What’s under it
Plugin source is © Gobo Studios. The VirtualDJ SDK headers are © Atomix Productions. The HTTP server is cpp-httplib, a single-header C++ library. The plugin runs entirely on your machine and does not phone home.
Tell us what you’re wiring it to
There is no public download link yet — builds go out by hand, and KaraokeFlow’s VirtualDJ mode ships with one. Send a note saying what platform you are on and what you are connecting to VirtualDJ, and we will send the current build back.