! 新版开发者中心已正式上线,旧文档将于6月30日下架,不再维护 立即体验

1. 接口

下载pdf
更新时间:2020-05-12 14:06

注意事项:请求限频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/FORM

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

请求参数:

属性名 类型 是否必填 备注
appid uint64 App ID
biz_type int32 0:live; 2: rtv
timestamp int64 Unix时间戳(秒)
signature string 签名。生成方法:md5(appid + timestamp + appsecret)
seq int64 请求序列号,同一个设备发出的请求严格递增,用于区别请求时序
stream_id string 流名称
pushurl string 转推CDN地址,必须是完整的url地址

1.2 删除转推cdn地址

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

方法:POST/FORM

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

请求参数:

属性名 类型 是否必填 备注
appid uint64 App ID
biz_type int32 0:live; 2: rtv
timestamp int64 Unix时间戳(秒)
signature string 签名。生成方法:md5(appid + timestamp + appsecret)
seq int64 请求序列号,同一个设备发出的请求严格递增,用于区别请求时序
stream_id string 流名称
pushurl string 转推CDN地址,必须是完整的url地址

1.3 清空转推cdn地址

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

方法:POST/FORM

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

请求参数:

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

2. 秘钥说明

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

3. 示例

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

3.1 确定参数

属性名
appid 3104114736
biz_type 0
timestamp 1539769188
seq 200
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&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 非法请求 可能是由于网络原因导致请求乱序