A zero-latency, AI-powered cloud moderation proxy for live streamers using Vision Agents (Realtime Intelligent Stream Moderator).
Project description
RISM (Realtime Intelligent Stream Moderator)
RISM is a zero-latency, AI-powered cloud moderation proxy designed for live streamers. It intercepts the stream before it reaches the public, utilizing the Vision Agents framework to process audio and video in real-time. It bleeps profanity, blurs NSFW content, and intelligently monitors context, outputting a clean, brand-safe feed to platforms like Twitch or YouTube.
Architecture: Cloud Proxy
RISM uses a 3-Stage "Cloud Proxy" architecture that introduces a strict and unnoticeable 2-second processing buffer:
- Ingestion (The Origin): Stream directly to RISM via the WebRTC HTTP Ingestion Protocol (WHIP).
- The Moderation Engine (The Proxy): The stream is forked into parallel Video (YOLO11), Audio (STT & 1000Hz Bleep), and Context (Gemini 2.5 Flash) pipelines. The 2-second buffer ensures processing completes and the stream stays perfectly synchronized.
- Egress (The Destination): The cleaned tracks are automatically muxed into a standard RTMP feed and pushed to your actual Twitch/YouTube stream key.
Prerequisites
- Python 3.10+
- OBS Studio (v30+ supporting native WHIP output)
- Free GetStream account to host the Vision Agents session
Installation
- Install via
uv toolorpip:
uv tool install rism
(Alternatively, clone this repo and run uv pip install -e .)
-
Download your preferred YOLO NSFW detection model (e.g.,
nsfw_yolo.pt) or use the defaultyolo11n.pt(automatically downloads). -
Create your
.envfile:
STREAM_API_KEY="..."
STREAM_API_SECRET="..."
GOOGLE_API_KEY="..." # For Gemini 2.5 Flash
DEEPGRAM_API_KEY="..." # For STT Audio Moderation
How to use with OBS Studio
Part 1: Starting the Proxy Services
Start the main moderation engine:
rism run --no-demo
The agent establishes the GetStream Edge connection and waits for the broadcast. It initializes the Video and Audio processors, holding the 2-second synchronicity buffers.
Part 2: OBS Ingestion (WHIP)
Configure OBS to stream to RISM instead of your end destination.
- In OBS Studio, go to Settings > Stream.
- Service: WHIP
- Server:
<Your GetStream WHIP Endpoint URL for the active Call> - Click Start Streaming. OBS will ingest directly into the Vision Agent cloud network with near zero latency.
Part 3: RTMP Egress (Broadcasting the Safe Stream)
The agent automatically handles RTMP egress if you have configured the YOUTUBE_STREAM_KEY in your .env file. The output layout is strictly set to single-participant to show only the agent's safe, processed feed.
You are now done! RISM intercepts your raw OBS feed over WHIP, runs the 3 AI pipelines asynchronously over the 2-second jitter buffer, and ships the safe, moderated feed sequentially to Twitch/YouTube!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rism-0.1.0.tar.gz.
File metadata
- Download URL: rism-0.1.0.tar.gz
- Upload date:
- Size: 5.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d85937418534b849e58e2e4ec06a765dd0d26b39bb532621b50030df018fc9f
|
|
| MD5 |
0c7df95702aaedba4038f7c6b998e483
|
|
| BLAKE2b-256 |
d57f388e22b0c521fe3655bb083bd8bff8a6f49eb7948136ee009039d306c983
|
File details
Details for the file rism-0.1.0-py3-none-any.whl.
File metadata
- Download URL: rism-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b76bcc899228682bc10f251570a8f9c81e428333075a9168fb66dfc76a10c87
|
|
| MD5 |
266a0b186a9d060e89e3c3e75a7074e0
|
|
| BLAKE2b-256 |
f0527c6db854f44133e41a4b41254d530315946296a2a68610ea65349619d382
|