obs 30 内置 websocket 插件(v5)已废弃旧版 `setsourcesettings` 和 `settextgdiplusproperties` 请求,需统一使用 `setinputsettings` 更新文本和图像源设置。本文详解适配方法及关键注意事项。
自 OBS 28 起,官方将 WebSocket 功能深度集成进核心,并升级至协议版本 5(v5)。该版本对输入(Input)概念进行了标准化重构:所有可配置的源(如 Text (GDI+/FT2)、Image Source、Browser Source 等)均被统称为 Input,其属性必须通过 SetInputSettings 统一设置,不再区分 SetSourceSettings 或专用文本请求。
因此,原代码中使用的 requests.SetSourceSettings 和 requests.SetTextGDIPlusProperties 在 OBS 30 + obs-websocket-py 下会静默失败(无报错但无效果),因其对应的是已移除的 v4 接口。
✅ 正确做法是统一调用 requests.SetInputSettings,并确保传入的 inputName 与 OBS 中实际源名称完全一致(区分大小写、空格和特殊字符),同时 inputSettings 字典中的键需匹配目标输入类型的实际属性名: