录播姬提供了 Webhook,方便有能人士基于录播姬实现其他功能。设置项里可以换行,每行一个 URL,录播姬会向所有 URL 同时发送请求。
测试 webhook 可以使用 这个 nodejs 脚本 或者 https://webhook.site。
Webhook v2
Webhook v2 的请求内容如下:
Webhook v2 支持以下几种事件类型:
- 录制开始
SessionStarted
- 文件打开
FileOpening
- 文件关闭
FileClosed
- 录制结束
SessionEnded
- 直播开始
StreamStarted
(录播姬 2.0.0 新增) - 直播结束
StreamEnded
(录播姬 2.0.0 新增)
因为之后可能会继续添加其他事件类型,请在代码中做好相应的判断。
请注意因为录播姬内部异步事件执行的顺序、网络延迟、错误重试等原因,录播姬不保证各个事件的发送、接收到的顺序。
不保证发送顺序举例:
SessionEnded
的 EventTimestamp
是 2021-05-14T20:00:00.4960899+08:00
而 FileClosed
的 EventTimestamp
是 2021-05-14T20:00:00.5071815+08:00
不保证接收顺序举例:
SessionEnded
可能会在 FileClosed
之前收到。
下一个文件的 FileOpening
有可能在上一个文件的 FileClosed
之前收到。
接收 webhook 后请尽快返回 HTTP 2XX 状态码,比如 200 OK
或 204 No Content
等。 如果返回的 HTTP 状态码不为 2xx 或请求时出现其他错误,最多会尝试三次,重试时发送的所有数据均不变,可以使用 EventId
来判断是否已经处理过当前事件。
所有事件的 EventData
里都有以下几个字段:
名字 | 含义 |
---|
RoomId | 房间号 |
ShortId | 短号,如果没有则为 0 |
Name | 主播名字 |
Title | 直播间标题 |
AreaNameParent | 直播间父分区 |
AreaNameChild | 直播间子分区 |
Recording | 当前是否正在录制 |
Streaming | 当前直播间状态是否为直播中 |
DanmakuConnected | 当前是否连接了弹幕服务器 |
录制开始
开始录制的原因可能是手动点击了开始录制按钮,或者设置了开播自动开始录制。
文件打开
一次录制可能会输出多个文件。
文件关闭
录制结束
直播开始
这个事件是在录播姬 2.0.0 添加的。
直播结束
这个事件是在录播姬 2.0.0 添加的。
Webhook v1
Webhook V1 在每个文件结束时触发,发送 HTTP POST
请求。
如果返回的 HTTP 状态码不为 2xx 或请求时出现其他错误,最多会尝试三次,重试时发送的所有数据均不变。