Skip to content
OBSBot and the giveaway system at a glance

Technical overview kept separate

OBSBot covers 24/7 stream operations with playlists, OBS control, Twitch and Kick chat integration, streaming on other platforms without chat integration, Discord and web frontend control, local and exported YouTube videos, and recovery. Giveaway-System handles giveaways, community prizes, StreamSeries, claims, and the related Discord workflows. The features stay separated because these are two standalone parts of the product.

OBSBot

Playlist, OBS, platforms, and control in operating mode

The OBSBot works with a fixed root video directory, automatically builds rotating playlists from it, feeds the content into OBS, and keeps Twitch/Kick chat integration, streaming on other platforms without chat integration, token status, Discord control, the web frontend, and recovery together in a reliable 24/7 setup.

Optionally, OBSBot can bring your own or expressly authorized public YouTube videos into local playlist operations via Google Data Portability. The intended rights and privacy path is described in the OBSBot YouTube workflow.

  • Playlist building from the root video directory with subfolders, rotation, and automatic rebuilding
  • Platform-specific workflows with Twitch and Kick chat integration; other platforms continue directly through OBS without chat integration
  • Optional YouTube import only for your own or expressly authorized public videos via Google Data Portability
  • Discord, web frontend, and chat control for bot start, updates, restart, skip, voteskip, logs, and markings
giveaway system

Giveaways, StreamSeries, and prize workflows

The giveaway system covers the full giveaway flow: from prize approval in Discord through registration via Twitch direct message with !ticket to the configured bot account to automated drawings, claims, reminders, StreamSeries bonuses, and fair winning logic.

  • Registration via Twitch direct message with !ticket, maintained participant lists, claim windows, and automated drawings during the live stream
  • Prize logic with Discord submission, moderator approval, live status, and clean winner assignment
  • StreamSeries detection with dedup, cooldown, bonus stars, and adaptive pity logic
OBSBot – 24/7 stream

The three systems powering the OBSBot

StreamWizard connects OBS, Twitch/Kick, additional platform paths without chat integration, Discord, and the web frontend into a setup that not only streams, but also builds playlists automatically, monitors itself, and can be controlled remotely.

OBS WEBSOCKET

Playback & Control

The bot connects to OBS Studio via WebSocket (v5). It controls the video source, switches scenes, and starts playback — all programmatically.

  • TCP reachability check before every video
  • Configurable port & password
  • Exponential backoff on connection loss
TWITCH / KICK API

Token, Title & Chat

OAuth2 token lifecycle with automatic refresh. On Twitch and Kick, chat integrations run through the platform connection; on other platforms the bot continues through OBS without chat integration.

  • OAuth2 Authorization Code Flow
  • Automatic token refresh (checked every 180s)
  • Viewer count polling (every 5 min)
DISCORD BOT

Remote Control & Logging

Connected via JDA (Java Discord API). The mod channel and the web frontend are the command centers — commands, logs, status messages, and remote control converge there.

  • Separate mod and log channels
  • Embed messages with color codes
  • Automatic reconnect

Playlist engine for local and exported 24/7 content

This is where the difference is made between a real continuous stream and a dull endless loop.

Automatic Playlist Generation

At startup, the bot scans the configured root video directory with its subfolders for MP4 files and builds playlist.json from it. Each video is recorded with path, name, and duration. Optionally, exported YouTube videos from the intended import path are added.

Rotation & Shuffle

Each video is marked as played. Once all are done, the playlist is rebuilt with random order so repetition is less predictable.

Automatic Twitch titles per video

So viewers and Twitch category listings immediately show what is currently running, the bot builds the stream title dynamically from title prefix, file or folder name, and title suffix.

PartSourceExample
Title prefixConfiguration field🎬 Now playing:
Video nameFile or folder name (without .mp4)Best of Stream #42
Title suffixConfiguration field| 24/7 Rerun

Twitch token lifecycle without manual babysitting

The token flow is designed so your 24/7 Twitch bot does not stop because of expired authentication.

1

Generate code after bot restart

Once the bot reports in the private Discord mod channel that the token is missing or expired, open the OAuth2 authorization code flow link. A state parameter protects against CSRF.

2

Send code to bot

Use !settwitchcode <code>&lt;code&gt;</code> in the private Discord mod channel. The bot exchanges it for access and refresh tokens.

3

Automatic refresh

The token is checked every 180 seconds. If needed, the bot refreshes it automatically.

4

Status & monitoring

Use !tokenstatus to check current state at any time. Problems are reported in the Discord log channel.

Recovery, reconnects, and stability in continuous operation

These mechanisms are what turn simple OBS automation into an OBSBot that detects problems and does not stop at the first failure.

Automatic recovery

On unexpected errors, Recover() is triggered: stop bot, reset playlist, restart bot, reconnect Discord.

OBS connection monitoring

OBS is checked via TCP before each video. On timeout, exponential backoff applies.

Network monitor

A separate monitor tracks internet connectivity and triggers Twitch reconnect on recovery.

OBSBot commands for operation and interventions

These commands belong directly to 24/7 operation: start the bot, rebuild the playlist, apply updates, maintain tokens, check status, and intervene in running content. The same control model is additionally complemented by the web frontend.

Discord mod channel

CommandFunctionDetails
!bothelpShow commandsLists available OBSBot commands with a short description.
!logSend bot logSends the current log content to the log channel.
!sendfile <name>Send fileTransfers a file from the bot directory for analysis.
!settwitchcode <code>Set OAuth codeExchanges the OAuth code for access and refresh tokens.
!tokenstatusCheck token statusShows validity, expiry date, and last check.
!refreshForce refreshImmediately starts a manual token refresh.
!updateReload configurationReloads changes from bot configuration without reinstalling.
!restartRestart botRestarts OBSBot and the OBS connection.

Twitch and Kick chat in OBSBot operation

CommandFunctionDetails
!voteskipStart skip votingStarts a vote to skip the current video.
!voteParticipate in votingOnce the defined threshold is reached, the current video is skipped.
!mark <grund>Mark videoMarks problematic content for later review by mods.

System requirements and configuration

Here you can see the technical baseline for running the OBSBot on a PC, server, or headless setup.

Prerequisites

  • Java 21+ – bot runtime
  • OBS Studio with enabled WebSocket server
  • Twitch-Account with streaming permissions

Configuration fields

  • Video root path
  • Scene name / source name
  • OBS port & password

Operating modes for desktop and server

The OBSBot can run either with a UI for initial setup or headless for continuous server operation.

GUI mode

The Java Swing UI shows all fields, log area, and control buttons. Ideal for first setup.

Headless mode

Via --headless flag or automatically on systems without display. Perfect for servers.

Review and set up OBSBot in detail

If you are planning continuous 24/7 operation, these are the relevant areas for setup, stability, and ongoing control.

Use Discord for OBSBot setup Open OBSBot landing page View download flow