You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OBS WebSocket连接时出现KeyError 'status'错误的原因排查

OBS WebSocket连接触发KeyError:'status'问题

错误信息

Exception has occurred: KeyError
'status'
File "obswebsocket_tests.py", line 3, in
client.connect()

测试代码

import obswebsocket, obswebsocket.requests
client = obswebsocket.obsws("localhost", 4444)
client.connect()
v = client.call(obswebsocket.requests.GetVersion()).getObsWebsocketVersion()

print(v)

client.disconnect()

OBS客户端界面

OBS客户端界面


问题原因及解决方法

核心原因

这个错误是OBS WebSocket版本不兼容导致的:你当前使用的OBS WebSocket是v5.x版本,但代码依赖的obswebsocket库只支持v4.x及以下的旧协议。v5版本的响应结构和旧版完全不同,旧库无法解析v5的返回内容,因此触发了KeyError:'status'。

解决思路二选一:

1. 升级代码适配v5版本协议

  • 先卸载旧库,安装适配v5的新版库:
    pip uninstall obswebsocket
    pip install obs-websocket-py
    
  • 修改代码适配v5的API(注意端口和密码配置):
    from obswebsocket import obsws, requests
    
    # 填写OBS WebSocket设置里的端口和密码(如果设置了的话),v5默认端口是4455
    client = obsws("localhost", 4455, password="你的OBS密码")
    client.connect()
    
    # v5版本的GetVersion返回结构不同,调整获取方式
    version_data = client.call(requests.GetVersion())
    print(f"OBS WebSocket版本: {version_data['obsWebSocketVersion']}")
    
    client.disconnect()
    

2. 降级OBS WebSocket插件到v4.x

如果不想修改代码,可以在OBS的插件市场中找到OBS WebSocket插件,安装v4.9.1版本(旧版协议的最后一个稳定版)。安装后在OBS的「工具→WebSocket服务器设置」中确认端口为4444,启用服务器后即可正常运行原有代码。

额外注意事项

  • 务必检查OBS的WebSocket设置:确保端口、密码和代码配置一致,且服务器处于启用状态。
  • v5版本的WebSocket协议和旧版差异极大,旧代码无法直接兼容,必须二选一调整。

内容的提问来源于stack exchange,提问作者Michael Bong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 19:01:23