CITV 开放文档
EventHub

火山引擎直播回调

火山引擎直播回调转发接入说明

火山引擎直播回调转发到 EventHub 接入说明

本文档面向第三方客户,适用于以下场景:

  • 你已经在火山引擎控制台配置了回调地址
  • 你希望先由自己的业务服务接收火山引擎直播回调
  • 你的服务在保留火山原始回调的基础上,补充一个 eventhub 对象,再转发到 EventHub服务

本文档覆盖的回调类型包括但不限于:

  • 推流开始
  • 推流结束
  • 录制
  • 截图
  • 截图审核

核心原则:第三方客户收到火山引擎回调后,应尽量完整保留原始回调内容,并直接在原始对象基础上增加一个 eventhub 扩展对象,再转发给 EventHub服务。

1. 接入总览

推荐链路如下:

火山引擎直播
  -> 你的回调接收服务
  -> 在原始回调对象上补齐 eventhub 所需对象
  -> 转发到 EventHub服务

EventHub服务 对外接收地址为:

项目
生产 Base URLhttps://eh.citv.cc
完整地址https://eh.citv.cc/event/volc/live/{appid}
请求方法POST
Content-Typeapplication/json

其中:

  • {appid} 由 CITV 分配
  • EventHub 会根据 {appid} 找到对应的应用配置,并使用该应用的 secret 校验签名

2. 你需要做什么

第三方客户侧需要完成 4 件事:

  1. 接收火山引擎原始回调
  2. 尽量原样保留火山回调内容,不要重新包装为其他根结构
  3. 在原始回调对象上增加 eventhub 字段,补充业务信息
  4. 使用 EventHub 分配的 AppSecret 透传或重算签名,然后转发到 EventHub

3. EventHub 请求格式

请求体就是:

  • 根对象:火山引擎原始回调对象
  • 扩展对象:eventhub

也就是说,转发给 EventHub 的 JSON 结构应该是:

{
  "...火山原始回调字段...": "...",
  "eventhub": {
    "...第三方客户补充的业务字段...": "..."
  }
}

eventhub 示例:

{
  "eventhub": {
    "title": "直播活动",
    "type": 1,
    "ccid": "83633_394",
    "domains": ["<商户子域名>.<平台子域名>.citv.cn"],
    "pageUrl": "https://<终端用户页面地址>",
    "auditUrl": "http://<审核页面地址>",
    "auditors": ["ai"],
    "startTime": 1774510939000,
    "endTime": 1774510940000,
    "pushEndReason": "normal",
    "views": 26,
    "providers": [
      {
        "type": "live",
        "serviceId": "sPq1qe1riZ"
      }
    ]
  }
}

3.1 eventhub 字段说明

字段类型必填说明
titlestring内容标题,如直播间名称、视频标题等
typenumber业务侧内容类型标识,推荐枚举值:
1 = 直播
2 = 点播
3 = 伪直播(VodToLive)
ccidstring业务侧内容唯一标识,用于 封禁接口的ccid,是该直播的唯一id
domainsstring[]该内容关联的完整域名列表,用于多域名场景下的路由识别
pageUrlstring终端用户可访问的直播间或视频详情页地址
auditUrlstring审核员访问的审核页面地址,用于内容审核场景
auditorsstring[]审核员 ID 列表,标识负责该内容审核的人员,如 ["ai"]
startTimenumber直播/内容开始时间,13 位毫秒级时间戳
endTimenumber直播/内容结束时间,13 位毫秒级时间戳
viewsnumber可选当前内容的实时访问量/观看人数
pushEndReasonstring推流结束时需要,结束原因,枚举值:normal(正常结束)、block(封禁)、unknown(未知)
providersobject[]云服务商信息列表,标识该内容在第三方云服务的配置
providers[].typestring服务类型,常见值为 live(直播)或 media(媒体)
providers[].serviceIdstring云服务控制台中的服务/应用 ID, 由CITV提供

4. 火山原始字段说明

转发时,根对象建议直接使用你从火山收到的原始 JSON 对象,不要丢字段,不要只挑少数字段。

推荐做法:

  • 火山回调里原本有哪些字段,就尽量完整保留哪些字段
  • 原始字段仍放在根对象,不要挪到 eventhub
  • 对于推流开始、推流结束、录制、截图等不同回调类型,都使用同一套协议

On this page