OBS Automated Streaming Script

User451

New Member
我已经启用了双因素身份验证,但仍然看不到“添加资源”按钮,所以发帖求助。这是一个使用人工智能开发的用于自动化 OBS 直播的脚本。
OBS 自动串流 — OBS Studio 的定时直播脚本
简介
OBS Auto Stream 是一个适用于 OBS Studio 的 Python 脚本,它可以根据预设的时间表自动启动和停止直播,无需人工干预。非常适合日常直播、定时回放和无人值守直播设置。

使用案例
定时直播:每天固定时间开始直播,时间结束后自动停止。
全天候循环播放内容:每日定时持续运行
无人值守流媒体:指没有操作员在场的远程服务器或流媒体设备。
多日排班:一周中每一天的开始/结束时间均可独立设置。
核心功能
1️⃣ 定时启动/停止
功能描述
每日独立设置开始时间(00:00 ~ 23:59)
结束时间 独立每日设置
启用日期切换,可切换一周中的每一天(周一至周日)
该脚本会定期检查当前时间,并在预定时间到达时触发 OBS 流媒体 API。

2️⃣ 智能等待间隔
该脚本会根据距离下一个预定事件的远近动态调整检查频率,从而平衡响应速度和系统资源使用情况:

状态检查间隔原理
当前正在直播 30 秒,快速响应手动停止操作
下次启动时间 < 5 分 5 秒 精确确定启动时间
下一次开始时间为 5~30 分 15 秒,中等频率
下次启动时间 > 30 分 60 秒 降低资源使用率
非流媒体播放日 5 分钟 最低后台开销
3️⃣ 手动停止锁定(防止意外重启)
当通过 OBS 主界面手动停止直播时,脚本会将此操作识别为用户操作,并阻止自动重启 300 秒。定时停止直播不会触发此锁定,因此下一串流会准时开始。

4️⃣ 事件回调机制
该脚本监听 OBS 前端事件(STREAMING_STARTED / STREAMING_STOPPED),并能区分以下情况:

✅ 脚本控制的启动/停止
✅ 用户手动启动/停止
✅ 由外部工具(例如 WebSocket 插件)触发启动/停止
5️⃣ 安全防护
保护说明
启动保护(5 秒):加载完成后的前 5 秒内跳过所有检查,防止 OBS 未完全就绪时崩溃。
冷却时间(10 秒):防止在流停止后 10 秒内重新启动,避免状态振荡。
持久化配置:所有设置都保存到 JSON 文件中,并且在 OBS 重启后仍然有效。
6️⃣ OBS 属性面板状态显示
该脚本直接在 OBS 的脚本属性面板中显示实时状态信息:

✅ 当前直播状态(直播中/已停止)
✅ 下次检查时间
✅ 距离下次启动/停止还剩时间
✅ 当前智能间隔值
文件结构
代码

复制
OBS自动串流/
├── obs_auto_stream_final_V5.py # 主脚本(放置在 OBS 脚本目录中)
└── obs_auto_stream_config.json # 配置文件(自动生成)
快速入门
步骤 1:放置脚本
将 obs_auto_stream_final_V5.py 复制到 OBS 脚本目录:

代码

复制
C:\Users\<您的用户名>\Documents\OBS_Scripts\
步骤 2:在 OBS 中加载
打开 OBS Studio
转到“工具”→“脚本”
点击“+”按钮并选择 obs_auto_stream_final_V5.py
在属性面板中进行配置:
✅ 勾选“启用自动串流”
✅ 设置开始/结束时间
✅ 查看流媒体播放日期
步骤 3:配置流媒体
请确保在“设置”→“流媒体”中正确配置您的流媒体服务器和流媒体密钥。

⚙️ 系统要求
需求详情
OBS Studio 28.x ~ 32.x(支持 Python 脚本)
Python 3.10 / 3.11(OBS 加载 Python 脚本需要此版本)
流媒体协议 RTMP 或 OBS 支持的任何其他协议
配置参考
基本设置(属性面板)
设置描述
启用自动流主控开关
每日开始时间(小时:分钟)
每日结束时间(小时:分钟)
周一至周日 每天启用/禁用流媒体播放
备注
OBS必须配置好流媒体服务器和流媒体密钥,否则自动启动将失败。
如果脚本在 OBS 启动时崩溃,请检查 Python 版本兼容性(建议使用 3.10/3.11 版本)。
首次加载后,初始配置重置可能需要重新输入时间参数。
运行时日志可在 OBS 的脚本日志窗口中查看。
测试流程
加载脚本 → 设置 2 分钟后的开始时间
等待脚本自动开始流式传输
在 OBS 中验证流状态
手动停止视频流 → 确认 300 秒锁定已激活
等待下次预定启动时间 → 确认自动恢复功能正常
 
Back
Top