SuperAPI AI 工具集

bunny-stream-webhooks

设计与创作

查看项目

更新于 10-15 22:14

技能介绍

用途:该技能面向 Bunny Stream Webhook 的接入与调试,适用于搭建 Webhook 处理程序、排查 X-BunnyStream-Signature 校验失败,以及处理视频状态变化(编码完成、编码失败)、字幕生成、标题或描述生成等事件。

主要能力:说明 Bunny Stream 的签名机制——用视频库的只读 API Key 对原始请求体做 HMAC-SHA256,摘要以小写十六进制放在 X-BunnyStream-Signature 头中;必须对未解析的原始请求体校验,不能重新序列化 JSON,并使用时间安全比较。这是自定义方案,不是 Standard Webhooks,也不同于 Bunny 通用平台的 Webhook(后者用 HMAC-SHA1 与 x-bunny-signature),且没有官方 SDK,需手动校验。提供 Node 与 Python 的校验函数示例,以及 Express、Next.js、FastAPI 的完整处理程序示例。

使用方式:回调体仅含 VideoLibraryId、VideoGuid、Status 三个字段,不含标题、时长、分辨率;需要完整元数据时,用读写 AccessKey 调用 Stream API GET /library/{libraryId}/videos/{videoGuid},且必须先校验签名再发起回查。事件类型由 Status 表示:0 排队、1 处理中、2 编码中、3 完成、4 单分辨率完成、5 失败、6 预签名上传开始、7 预签名上传完成、8 预签名上传失败、9 字幕生成、10 标题或描述生成。签名密钥即视频库的只读 API Key,环境变量为 BUNNY_STREAM_WEBHOOK_SECRET。本地开发可用 npx hookdeck-cli listen 3000 bunny-stream --path /webhooks/bunny-stream 启动隧道。

限制:X-BunnyStream-Signature-Version 与 X-BunnyStream-Signature-Algorithm 头仅在单次抓取中观察到,未确认,不应依赖,只校验 X-BunnyStream-Signature。建议配合 webhook-handler-patterns 技能处理处理顺序、幂等、错误处理与重试。其他细节暂未提供。