Documentation

Nobex Streaming Agent

The streaming agent is a desktop application (macOS, Windows, Linux) that runs your station from your own computer: it plays your media library 24/7, accepts live input from DJ software, and stays connected to your Nobex dashboard.

1. Overview

The agent uses Liquidsoap as its audio engine. Liquidsoap accepts a live stream from your DJ software, falls back to automated playlists when no live source is connected, and pushes the resulting stream to your station’s mount — with no gaps during the switch.

DJ software (Mixxx / Virtual DJ / BUTT)
        │  connects to localhost:8001/live
        ▼
Nobex Streaming Agent  ──  Liquidsoap engine
  • live input (priority)
  • auto playlist (fallback)
        │  streams to your station mount
        ▼
Your listeners

When to use the agent: you want 24/7 automation from your own machine, use a hardware mixer or external soundcard, or need advanced audio processing. If you just want to get on air with zero installs, use Broadcast from Browser on your station’s Connection page instead.

2. Download & install

Windows

  1. Download NobexStreamer for Windows and unzip it into a folder of your choice, e.g. C:\NobexStreamer.
  2. Double-click NobexStreamer.exe. If SmartScreen warns you, click More info → Run anyway, and allow the app through the firewall when Windows asks.

macOS

  1. Download NobexStreamer for macOS (Intel & Apple Silicon), unzip, and drag NobexStreamer.app to Applications.
  2. First launch: right-click the app → Open.

Linux

Build from source (Go 1.21+): go build ./cmd/nobex-streamer — or contact support for a prebuilt binary for your distribution.

The agent also needs Liquidsoap on the same machine (next section). Without it the agent still starts, but it can’t stream.

3. Installing Liquidsoap

Windows — no terminal needed

  1. Download Liquidsoap 2.2.5 for Windows and FFmpeg (FFmpeg is only needed for microphone broadcasting from the agent).
  2. Unzip both into the same folder as NobexStreamer.exe — the agent finds them automatically.

macOS

Paste this into Terminal (one time only):

brew install liquidsoap

Linux

# Debian / Ubuntu
sudo apt install liquidsoap

# Fedora / RHEL
sudo dnf install liquidsoap

Any Liquidsoap 2.1+ works — the agent’s generated configuration is validated against 2.1, 2.2, and 2.3. (Advanced: the Docker image savonet/liquidsoap works too — set liquidsoap_binary in the config.)

4. First-time setup

  1. In your dashboard, open your station’s Connection → From Your Computer tab and generate an API key and secret from the credentials panel. The secret is shown once — keep the window open.
  2. Open the NobexStreamer app. The setup window appears on first launch (later: gear icon → Settings). The API endpoint is already filled in (https://streaming-api.nobexpartners.com).
  3. Paste in your Station ID (shown on the Connection page) and the API key and secret from step 1, then save.
  4. Press Start. Your station’s dashboard shows the agent as online within about 30 seconds and your library starts playing 24/7.

5. Configuration reference

Settings are stored in ~/.nobex-streamer/config.json. The wizard writes this for you; edit it only if you need to change ports or paths. Connection credentials live in named profiles, so one install can switch between stations:

{
  "active_profile": "Default",
  "profiles": [
    {
      "name": "Default",
      "api_endpoint": "https://streaming-api.nobexpartners.com",
      "station_id": "your-station-id",
      "api_key": "nbx_...",
      "api_secret": "..."
    }
  ],
  "media_cache_dir": "~/.nobex-streamer/media",
  "log_dir": "~/.nobex-streamer/logs",
  "liquidsoap_binary": "liquidsoap",
  "liquidsoap_port": 8001,
  "heartbeat_interval": 30
}
  • liquidsoap_port — the local port DJ software connects to (default 8001). Change it if something else uses that port.
  • liquidsoap_binary — path or command for Liquidsoap; set to docker when using the Docker image.
  • media_cache_dir — where synced media from your library is stored.
  • heartbeat_interval — seconds between status reports to the dashboard.

Restart the agent (or use Reload Engine from the dashboard) after editing the file.

6. Going live from DJ software

While the agent is running, Liquidsoap listens for a live source on your machine. Point any Icecast-compatible DJ software at it — when you connect, the live feed takes over; when you disconnect, playback falls back to your automated playlist with no dead air.

Server / host: localhost
Port: 8001 (your liquidsoap_port)
Mount: /live
Password: your API secret
Format: MP3 or Ogg Vorbis

Where to enter these

  • Mixxx — Preferences → Live Broadcasting
  • Virtual DJ — Config → Broadcasting
  • BUTT — Settings → Main → Server settings (server type: Icecast)

7. Running 24/7 as a service

macOS — no terminal needed

System Settings → General → Login Items → add NobexStreamer.app. The agent starts with your Mac, lives in the menu bar, and reconnects automatically.

Linux (systemd)

Create /etc/systemd/system/nobex-streamer.service:

[Unit]
Description=NobexStreamer Agent
After=network.target

[Service]
Type=simple
User=streamer
ExecStart=/usr/local/bin/nobex-streamer
Restart=always

[Install]
WantedBy=multi-user.target
sudo systemctl enable --now nobex-streamer

Windows (NSSM)

nssm install NobexStreamer "C:\NobexStreamer\NobexStreamer.exe"
nssm start NobexStreamer

Simpler alternative on any desktop machine: add the app to your login items / startup apps — it runs in the tray and reconnects automatically.

8. Command line reference

The app opens its GUI by default — you never need the command line for normal use. Flags for advanced setups:

NobexStreamer [flags]

  --config <path>    Configuration file (default: ~/.nobex-streamer/config.json)
  --setup            Re-run the setup wizard
  --version          Show version information

9. Troubleshooting

“liquidsoap binary not found”

Liquidsoap isn’t installed or isn’t on your PATH. Install it (section 3) or set liquidsoap_binary in the config to its full path.

Agent can’t connect to the backend

  • Check the API endpoint in your config matches the one shown above.
  • Verify your API key and secret are still valid — regenerating credentials in the dashboard invalidates old ones.
  • Check your firewall allows outbound HTTPS and WebSocket connections.

DJ software can’t connect

  • Make sure the agent is running and Liquidsoap started (check the logs below).
  • The password must be your API secret, not the API key.
  • Confirm the port isn’t blocked: nc -zv localhost 8001
  • If port 8001 is taken by another app, change liquidsoap_port and update your DJ software to match.

Logs

Agent and engine logs live in ~/.nobex-streamer/logs/. To follow the engine log in real time:

tail -f ~/.nobex-streamer/logs/liquidsoap.log

GUI won’t start

  • macOS — make sure you’re on a local session (not SSH); check Console.app for errors.
  • Windows — run from PowerShell or Command Prompt, not WSL.
  • Linux — the GUI needs a desktop session (X11/Wayland); it won’t start over plain SSH.
Still stuck? Email support@nobexinc.com with your station name, platform, and the last ~50 lines of ~/.nobex-streamer/logs/liquidsoap.log.