1. 接口

下载pdf
更新时间:2019-11-04 17:42

注意事项:请求限频20次/s

  1. 国内的测试环境:

https://udp-apigw-test.zego.im/api/dynamic_push/add

https://udp-apigw-test.zego.im/api/dynamic_push/del

https://udp-apigw-test.zego.im/api/dynamic_push/clear

  1. 国际的测试环境:

https://udp-apigw-test.zegocloud.com/api/dynamic_push/add

https://udp-apigw-test.zegocloud.com/api/dynamic_push/del

https://udp-apigw-test.zegocloud.com/api/dynamic_push/clear

  1. 国内正式环境

https://udpapigw{appid}.zego.im/api/dynamic_push/add

https://udpapigw{appid}.zego.im/api/dynamic_push/del

https://udpapigw{appid}.zego.im/api/dynamic_push/clear

  1. 国际正式环境

https://udpapigw{appid}.zegocloud.com/api/dynamic_push/add

https://udpapigw{appid}.zegocloud.com/api/dynamic_push/del

https://udpapigw{appid}.zegocloud.com/api/dynamic_push/clear

1.1 新增转推cdn地址

接口地址:https://{host}/api/dynamic_push/add

方法:POST/JSON

新增接口主要是用来新增转推CDN任务的,建议在推流之前执行。

请求参数:

{
  "appid": 3104114736,
  "biz_type": 0,
  "timestamp": 1539769188,
  "signature": "dbc0298d653b7315c976cd2e51f614ad",

  "seq": 200,
  "guid":"16dxfd",

  "stream_id": "test-stream",
  "pushurl": "rtmp://127.0.0.1/demo/test-stream"
}

1.2 删除转推cdn地址

接口地址:http://{host}/api/dynamic_push/del

方法:POST/JSON

删除接口用来删除新增转推任务。如果流正在转推CDN,会停掉转推到CDN的流。但是需要保证转推的地址一致 (携带参数可以不一致),才能够正确删除。

请求参数:

{
  "appid": 3104114736,
  "biz_type": 0,
  "timestamp": 1539769188,
  "signature": "dbc0298d653b7315c976cd2e51f614ad",

  "seq": 200,
  "guid":"16dxfd",

  "stream_id": "test-stream",
  "pushurl": "rtmp://127.0.0.1/demo/test-stream"
}

1.3 清空转推cdn地址

接口地址:https://{host}/api/dynamic_push/clear

方法:POST/JSON

清除所有转推任务,不会停止正在转推的流。

请求参数:

{
  "appid": 3104114736,
  "biz_type": 0,
  "timestamp": 1539769188,
  "signature": "dbc0298d653b7315c976cd2e51f614ad",

  "seq": 200,
  "guid":"16dxfd",

  "stream_id": "test-stream"
}

2. 请求参数格式说明

属性名 类型 是否必填 备注
appid uint64 App ID
biz_type int32 0:live; 2: rtv
timestamp int64 Unix时间戳(秒)
signature string 签名。生成方法:md5(appid + timestamp + appsecret)
seq int64 请求序列号,同一个设备发出的请求严格递增
guid string 请求设备ID,6位数的设备号
stream_id string 流名称

加密所用的appsecretzego给出,后台称为ServerSecret

3. 示例

如新增转推CDN地址,分为以下四步。

3.1 确定参数

{
  "appid": 3104114736,
  "biz_type": 0,
  "timestamp": 1539769188,
  "seq": 200,
  "guid":"16dxfd",
  "stream_id": "test-stream",
  "pushurl": "rtmp://127.0.0.1/demo/test-stream"
}

3.2 求出signature

根据appidtimestampappseret得出signature。 加密所用的appsecretzego给出,后台称为ServerSecret

    content := fmt.Sprintf("%d%d%s", appid, timestamp, appSecret)
    signature := Md5(content)

如下所示

appid = 3104114736
timestamp = 1539769188
appSecret = "123456789abcdefg"

// 可求出
content = "31041147361539769188123456789abcdefg"
signature = "3955e05d5984bc3b4fb8aa3f59676845"

3.3 拼接请求

将请求的参数编码(UrlEncode),拼接起来。

curl -d 'appid=3104114736&biz_type=0&timestamp=1539769188&signature=3955e05d5984bc3b4fb8aa3f59676845&seq=200&guid=16dxfd&stream_id=test-stream&pushurl=rtmp%3A%2F%2F127.0.0.1%2Fdemo%2Ftest-stream' https://{host}/api/dynamic_push/add

4. 返回数据

4.1 正常返回

{
  "code": 0,
  "message": "ok"
}

4.2 数据格式

属性名 类型 是否必填 备注
code number 错误码。0表示成功
message string 错误信息

4.3 错误码

错误码 原因 处理方法
5000 拉取柔性配置错误 是否网络故障、查看柔性配置是否错误、接入点配置是否有误
5001 解密失败 检查加密密钥是否正确、用户参数类型是否正确
5002 内部错误 存储失败,寻找后台人员定位
5003 鉴权失败 检查appid密钥是否有误
5004 非法转推地址 检查转推地址是否符合要求
5005 非法请求 可能是由于网络原因导致请求乱序