Sardius MediaSupport

Stream Deck Companion Module

Updated

Control Sardius Live events directly from a Stream Deck — create broadcasts, extend event time, end streams, and switch channels without ever touching your computer.

What You'll Need

Before getting started, make sure you have:

  • A Stream Deck device (any model)
  • Bitfocus Companion — free software that bridges your Stream Deck and Sardius. Download and install it first.
  • Your Sardius API Key — found in your Sardius account settings
  • Your Sardius Account ID — found in your Sardius account settings

Part 1 — Getting Your Sardius Credentials

Before installing anything, you'll need two pieces of information from your Sardius account: an API Key and your Account ID. These are what the Stream Deck module uses to connect to your channels.

CleanShot 2026 09 05 at 13.19.312x

CleanShot 2026 09 05 at 13.20.382x

CleanShot 2026 09 05 at 13.21.472x

CleanShot 2026 09 05 at 13.22.462x

Copy your API Key — you'll need it in the next step.

CleanShot 2026 09 05 at 13.23.392x

CleanShot 2026 09 05 at 13.24.212x

Copy your Account ID as well. You'll need both values when setting up the module in Companion.


Part 2 — Installation & Setup

Step 1: Install Bitfocus Companion

Bitfocus Companion is the free software that connects your Stream Deck to external tools like Sardius. Download and install it from bitfocus.io/companion. It runs on both Mac and Windows.

Once installed, open Companion — it runs as a background app and opens its interface in your browser at http://localhost:8000.

CleanShot 2026 09 05 at 12.43.392x

Step 2: Add the Sardius Module

  1. In Companion, click Connections in the left sidebar
  2. Click + Add connection
  3. In the search box, type Sardius
  4. Click Add next to Sardius Live

CleanShot 2026 09 05 at 12.44.552x

Step 3: Enter Your Credentials

After adding the module, a settings panel opens. Fill in:

  • API Key — Paste your Sardius Stream Deck API key
  • Account ID — Paste your Sardius account identifier

Then click Save.

CleanShot 2026 09 05 at 12.51.242x

Step 4: Confirm the Connection

In your Connections list, the Sardius Live module should show a green dot and OK status within a few seconds of saving.

If it shows an error instead:

  • AuthenticationFailure — One or both credentials are incorrect. Re-enter them and save again.
  • No channels found (warning) — Credentials are valid but no channels were returned. Verify your Account ID is correct.

CleanShot 2026 09 05 at 13.09.522x

Step 5: Load Your Channels

Channels load automatically in the background after you save your credentials. Click the module again to reopen its settings — you'll now see an "Active Channels for Cycle" field listing all your Sardius channels.

If you manage multiple channels, check only the ones you want included in the cycle buttons. Leave the field empty to include all channels.

CleanShot 2026 09 05 at 13.28.192x


Part 3 — Setting Up Your Buttons (Presets)

The fastest way to get started is with presets — ready-made buttons that come pre-configured with the right action, color scheme, and visual feedback already wired up.

How to Add a Preset

  1. Click the Buttons in Companion
  2. Click any empty button slot on the grid
  3. In the right panel, open the Presets tab
  4. Find the preset you want and drag it onto a button slot

CleanShot 2026 09 05 at 13.48.002x

Available Presets

The module ships with 12 ready-to-use presets organized into three groups.

Event Control

PresetButton StyleWhat It Does
Go LiveGreenCreates a live event on the selected channel. Turns bright green with a live countdown when a broadcast is running.
End EventRedEnds the active broadcast immediately. Requires a 2-second hold — prevents accidental activation.
+5 MinYellowAdds 5 minutes to the active event's scheduled end time.
-5 MinOrangeSubtracts 5 minutes from the active event's scheduled end time.
+30 MinYellowAdds 30 minutes to the active event's scheduled end time.
-30 MinOrangeSubtracts 30 minutes from the active event's scheduled end time.
+60 MinYellowAdds 60 minutes to the active event's scheduled end time.
-60 MinOrangeSubtracts 60 minutes from the active event's scheduled end time.

Channel Control

PresetButton StyleWhat It Does
Next ChannelBlueSteps forward through your channel cycle.
Previous ChannelBlueSteps backward through your channel cycle.
Channel DisplayDark / Blue highlight when selectedShows the active channel name. Highlights blue when a channel is selected.

Status

PresetButton StyleWhat It Does
Error DisplayDark gray / Bright red on errorShows ✓ OK normally. Turns bright red and displays the error message whenever any action fails.

For most setups, this 3-column, 2-row layout covers everything you need:

Next ChannelSelected ChannelGo Live+5+30
Previous ChannelError DisplayEnd Event-5-30

CleanShot 2026 09 05 at 13.56.032x


Part 4 — Basic Usage

Going Live

  1. Use Next Channel or Previous Channel to select the channel you want to broadcast on. The Channel Display button always shows the currently selected channel name.
  2. Press Go Live. A 1-hour live event is created on that channel automatically.
  3. The Go Live button turns bright green and displays ● LIVE with a real-time countdown.

CleanShot 2026 09 05 at 13.55.172x

Extending or Shortening Event Time

While a broadcast is live, press any time button to adjust the scheduled end:

  • +5, +30, or +60 — adds that many minutes to the end time
  • -5, -30, or -60 — subtracts that many minutes from the end time

The countdown on the Go Live button updates instantly.

Ending the Broadcast

Press and hold the End Event button for 2 seconds. The broadcast ends immediately — the event's end time is set to right now.

The 2-second hold is intentional. A quick accidental tap will never cut your stream.

Switching Channels

If you manage multiple channels:

  1. Press Next Channel or Previous Channel
  2. The Channel Display button immediately updates to show the new selection
  3. All event actions (Go Live, time buttons, End Event) now target the newly selected channel

Part 5 — Error Display Button

The Error Display button gives you a real-time status indicator for every action you take.

Normal state: Shows ✓ OK in gray text on a dark background — everything is working as expected.

Error state: Turns bright red and displays the specific error message. Examples:

  • "Request timed out — check your network connection"
  • "400 — Resource conflict / Encoder busy / Try in 5 Min"
  • "Request failed with status 520"

The error clears automatically as soon as you successfully run another action. You don't need to dismiss it manually.

CleanShot 2026 09 05 at 14.01.002x


Part 6 — Working with Multiple Channels

How the Channel Cycle Works

The Next and Previous Channel buttons step through a circular list. After the last channel, the next press wraps back to the first. All feedbacks and event actions automatically follow whichever channel is selected.

By default, all channels in your account are included in the cycle. To limit it:

  1. Open the module settings in Companion
  2. Under Active Channels for Cycle, check only the channels you want

Locking a Button to a Specific Channel

Every action has a "Use selected channel" option that is checked by default. You can uncheck it to lock that button to a fixed channel, regardless of what the cycle is showing.

This is useful for:

  • Multi-operator setups where each person has their own Stream Deck targeting their own channel
  • Permanent status displays for a specific channel that shouldn't follow the cycle

To configure this, edit any button in Companion, uncheck Use selected channel, and choose the channel from the dropdown.


Part 7 — Reference: All Actions

ActionWhat It DoesOptions
Go LiveCreates a 1-hour live event and starts the broadcast on the selected channelEvent Name, Channel
Add TimeExtends the active event's scheduled end timeMinutes (default: 5), Channel
Subtract TimeShortens the active event's scheduled end timeMinutes (default: 5), Channel
End EventEnds the broadcast by setting the event end time to right nowChannel
Cycle Channel (Next)Steps forward through the channel list—
Cycle Channel (Previous)Steps backward through the channel list—
Open Control PanelOpens cp.sardius.media in your default browser—

Part 8 — Reference: Feedbacks

Feedbacks change a button's appearance based on live state. The presets already have the right feedbacks applied — you can also add any feedback to a custom button you build yourself.

FeedbackTriggers WhenDefault Button Appearance
Live Event ActiveThe selected channel has an active live eventBright green background, ● LIVE with countdown timer
Selected Channel DisplayA channel is the active selection in the cycleBlue highlight on the button
Action ErrorThe last action resulted in an errorBright red background, error message text on the button

To add a feedback to any custom button:

  1. Edit the button in Companion
  2. Click the Feedbacks tab in the right panel
  3. Click + Add feedback
  4. Choose the feedback, configure any options, and save

CleanShot 2026 09 05 at 13.59.102x


Part 9 — Reference: Variables

Variables are live data values you can embed directly in any button's text. They update automatically as things change.

How to use: Type the variable name into a button's text field in Companion. Replace connection with your module's actual name as shown in the Connections tab (for example, if your module is named Sardius-Live, use $(Sardius-Live:event_title) instead).

VariableWhat It ShowsExample Output
$(connection:selected_channel_id)ID of the currently selected channelch_abc123
$(connection:selected_channel_name)Name of the currently selected channelMain Auditorium
$(connection:event_title)Title of the active live eventSunday Service
$(connection:event_end_time)Scheduled end time of the active event3:00 PM
$(connection:event_countdown)Full countdown to event end (always HH:MM:SS[])01:23:45
$(connection:event_countdown_short)Compact countdown — shows MM:SS[] when under 60 minutes, H:MM:SS[] when over23:45
$(connection:last_error)Error message from the last failed action. Empty when no error.Request timed out

CleanShot 2026 09 05 at 14.01.592x


Part 10 — Advanced Usage

Displaying Live Data on Custom Buttons

Any button in Companion can show live data — just type a variable into its text field. For example, to show the event name and a countdown on a single button:

● LIVE
$(connection:event_title)
$(connection:event_countdown_short)

Or to show just the channel name: $(connection:selected_channel_name)

CleanShot 2026 09 05 at 14.04.142x

Adding Action Error Feedback to Other Buttons

The Action Error feedback isn't limited to the Error Display preset. You can add it to any button — for example, add it to your Go Live button so that button itself turns red if the go-live action fails. This is useful if you want fewer total buttons on your deck.

Custom Time Increments

The Add Time and Subtract Time actions accept any value from 1 to 60 minutes. To create a time button not available as a preset (like +15 min or -10 min):

  1. Add an empty button to your layout
  2. Assign the Add Time or Subtract Time action
  3. Set Minutes to the value you want

Hold-to-Confirm on Any Action

The End Event preset uses a 2-second hold requirement to prevent accidents. You can apply the same protection to any action:

  1. Edit the button in Companion
  2. In the Button tab, change the press type to Hold and set your preferred duration

Multi-Operator Setups

For organizations with multiple Stream Deck operators each controlling a dedicated channel:

  1. Assign each operator their own Stream Deck profile in Companion
  2. On each profile, uncheck Use selected channel on all action buttons and hard-code them to that operator's channel
  3. This way, no one needs to worry about which channel is currently "selected" — every button always targets the right one

Troubleshooting

  • Connection shows AuthenticationFailure

    Your API Key or Account ID is incorrect. Open the module settings in Companion, carefully re-enter both values, and click Save.

  • Connection shows "No channels found"

    Your credentials are valid but no channels were returned. Verify that your Account ID is correct and that your Sardius account has at least one channel configured. Contact Sardius support if you're unsure what your Account ID should be.

  • Channel dropdown is empty in button settings

    Channels load in the background the first time you save your credentials. Reopen the module settings by clicking the module in the Connections tab — the dropdown fills in automatically once channels have loaded. This usually takes just a few seconds after saving.

  • Go Live does nothing when I press it

    A live event is probably already active on the selected channel. Look at your Go Live button — if it's bright green, a broadcast is already running. End it first before starting a new one.

  • Add/Subtract Time or End Event does nothing

    These actions only work when a live event is currently active. Make sure your Go Live button is in its bright green live state on the selected channel before using these buttons.

  • Error Display shows "Encoder busy" or "Resource conflict"

    The encoder is already assigned to another event or session. Wait 5 minutes and try again. If the problem persists, check the Sardius Control Panel at cp.sardius.media for any conflicting events and end or remove them there.

  • Error Display shows "Request timed out"

    The module couldn't reach the Sardius API within 15 seconds. Check your internet connection and try again. If the timeouts continue, contact Sardius support.

  • Presets tab is empty or shows no Sardius presets

    Disconnect and reconnect the module: in the Connections tab, click the enable toggle to turn the module off, then back on. Wait a moment, then check the Presets tab again.


Support

For technical issues with the module: github.com/bitfocus/companion-module-sardiusmedia-sardiuslive/issues

For Sardius account or broadcasting questions, reach out at Support@Sardius.media

Related articles