Integration

XSplit Broadcaster

Control XSplit Broadcaster with full support for scenes, sources, audio, streaming, recording, and transitions.

Overview

FaustBot integrates with XSplit Broadcaster to provide comprehensive control over your streaming software. This integration enables automation of common broadcasting tasks and allows viewers to interact with your stream setup.

Scene Control

Switch scenes, get scene list, manage layouts.

Source Control

Show/hide sources, toggle visibility.

Audio Control

Mute/unmute, adjust volume levels.

Streaming

Start/stop streaming with status checks.

Recording

Control local recording sessions.

Transitions

Get and set scene transitions.

Setup

Enable XSplit Plugin Connection

XSplit Broadcaster needs to have its plugin system enabled to allow external applications like FaustBot to connect and control it.

1

Open XSplit Broadcaster

Launch XSplit Broadcaster and ensure you have an active scene set up.

2

Enable Extensions

Go to Extensions → Add extension and ensure the Remote Control extension or API access is enabled. This allows external applications to communicate with XSplit.

3

Connect from FaustBot

In FaustBot, go to XSplit in the sidebar under Integrations. Click Connect to establish the connection.

Auto-Connect

Enable Auto-Connect to automatically connect when FaustBot starts. Make sure XSplit Broadcaster is already running when FaustBot launches.

Triggers

Respond to events from XSplit Broadcaster:

XSplit Connected Connection to XSplit established
XSplit Disconnected Connection to XSplit lost
Scene Changed Active scene was switched
Streaming Started Stream went live
Streaming Stopped Stream ended
Recording Started Recording began
Recording Stopped Recording ended
Source Visibility Changed Source was shown or hidden

Effects

Scene Control

Set Scene

Switch to a specific scene.

Get Current Scene

Retrieve the active scene name.

Get All Scenes

List all available scenes.

Source Control

Show Source

Make a source visible.

Hide Source

Make a source invisible.

Toggle Source

Toggle source visibility.

Set Visibility

Explicitly set visibility state.

Audio Control

Mute Source

Mute an audio source.

Unmute Source

Unmute an audio source.

Toggle Mute

Toggle mute state.

Set Volume

Set source volume level.

Streaming & Recording

Start Streaming

Start the stream.

Stop Streaming

Stop the stream.

Toggle Streaming

Toggle stream state.

Start Recording

Start recording.

Stop Recording

Stop recording.

Toggle Recording

Toggle recording state.

Transitions

Get Transitions

List available transitions.

Set Transition

Set the active transition.

Scripting API

Control XSplit Broadcaster from your scripts using the CPH API:

Connection

Connection management
# Check connection status
is_connected = CPH.XSplitIsConnected()
if not is_connected:
    CPH.LogInfo("XSplit is not connected, attempting to connect...")
    CPH.XSplitConnect()

# Disconnect when done
CPH.XSplitDisconnect()

# Log connection state
if CPH.XSplitIsConnected():
    CPH.LogInfo("Successfully connected to XSplit Broadcaster")

Scene Control

Scene control
# Get all available scenes
scenes = CPH.XSplitGetScenes()
for scene in scenes:
    CPH.LogInfo(f"Found scene: {scene}")

# Get current active scene
current_scene = CPH.XSplitGetCurrentScene()
CPH.LogInfo(f"Current scene: {current_scene}")

# Switch to a specific scene
CPH.XSplitSetScene("Gaming")

# Switch scene based on game
game = args.get("game", "")
if game == "Fortnite":
    CPH.XSplitSetScene("Battle Royale Layout")
elif game == "Minecraft":
    CPH.XSplitSetScene("Creative Layout")

Source Control

Source control
# Get all sources in current scene
sources = CPH.XSplitGetSources()
for source in sources:
    CPH.LogInfo(f"Source: {source}")

# Show a source
CPH.XSplitShowSource("Webcam")

# Hide a source
CPH.XSplitHideSource("Webcam")

# Toggle source visibility
CPH.XSplitToggleSource("Chat Overlay")

# Set visibility explicitly
CPH.XSplitSetSourceVisibility("Alert Box", True)
CPH.XSplitSetSourceVisibility("BRB Screen", False)

Audio Control

Audio control
# Get all audio sources
audio_sources = CPH.XSplitGetAudioSources()
for source in audio_sources:
    CPH.LogInfo(f"Audio source: {source}")

# Mute a specific source
CPH.XSplitMute("Microphone")

# Unmute a source
CPH.XSplitUnmute("Microphone")

# Toggle mute state
CPH.XSplitToggleMute("Desktop Audio")

# Set mute state explicitly
CPH.XSplitSetMute("Game Audio", True)

# Set volume level (0.0 to 1.0)
CPH.XSplitSetVolume("Microphone", 0.8)
CPH.XSplitSetVolume("Desktop Audio", 0.5)

Streaming & Recording

Streaming and recording
# Check streaming status
if CPH.XSplitIsStreaming():
    CPH.LogInfo("Currently streaming!")
else:
    CPH.LogInfo("Not streaming")

# Start/stop streaming
CPH.XSplitStartStreaming()
CPH.XSplitStopStreaming()
CPH.XSplitToggleStreaming()

# Check recording status
if CPH.XSplitIsRecording():
    CPH.LogInfo("Currently recording!")

# Start/stop recording
CPH.XSplitStartRecording()
CPH.XSplitStopRecording()
CPH.XSplitToggleRecording()

# Get transitions and set one
transitions = CPH.XSplitGetTransitions()
CPH.XSplitSetTransition("Fade")

# Get full state and refresh
state = CPH.XSplitGetState()
CPH.XSplitRefresh()

API Reference

For complete method signatures and return types, see the full API reference.