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.
Open XSplit Broadcaster
Launch XSplit Broadcaster and ensure you have an active scene set up.
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.
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 establishedXSplit Disconnected Connection to XSplit lostScene Changed Active scene was switchedStreaming Started Stream went liveStreaming Stopped Stream endedRecording Started Recording beganRecording Stopped Recording endedSource Visibility Changed Source was shown or hiddenEffects
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
# 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
# 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
# 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
# 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
# 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.