直播服务端API文档

1 接口概述{#api-summary}

1.1 请求说明

1.1.1 服务地址

网易视频云直播服务使用的域名访问地址为:vcloud.163.com。

1.1.2 通信协议

网易视频云直播服务的所有接口均通过HTTPS进行通信,提供高安全性的通信通道。

1.1.3 请求方法

所有接口都只支持POST请求。

1.1.4 字符编码

所有接口均使用UTF-8编码。

1.2 公共参数

所有接口均需要放置以下公共参数在请求头中,用于标识用户和接口鉴权。后续的接口说明不再对这些参数进行说明,但每次发起请求均需要携带。

参数 类型 必须 说明
AppKey String 开发者平台分配的AppKey
Nonce String 随机数(随机数,最大长度128个字符)
CurTime String 当前UTC时间戳,从1970年1月1日0点0分0秒开始到现在的秒数
CheckSum String 服务器认证需要,SHA1(AppSecret+Nonce+CurTime),16进制字符小写

1.3 接口鉴权

接口通过请求头中的公共参数进行鉴权。用户通过在用户中心->安全中心获取到的一对安全凭证进行SHA1(AppSecret+Nonce+CurTime)计算。

重要提示: 本文档中提供的所有接口均面向开发者服务器端调用,用于计算CheckSum的AppSecret开发者应妥善保管,可在应用的服务器端存储和使用,但不应存储或传递到客户端,也不应在网页等前端代码中嵌入。

计算CheckSum的java代码举例如下:

import java.security.MessageDigest;
public class CheckSumBuilder {
    public static String getCheckSum(String appSecret, String nonce, String curTime) {
        return encode("sha1", appSecret + nonce + curTime);
    }
    private static String encode(String algorithm, String value) {
        if (value == null) {
            return null;
        }
        try {
            MessageDigest messageDigest = MessageDigest.getInstance(algorithm);
            messageDigest.update(value.getBytes());
            return getFormattedText(messageDigest.digest());
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    private static String getFormattedText(byte[] bytes) {
        int len = bytes.length;
        StringBuilder buf = new StringBuilder(len * 2);
        for (int j = 0; j < len; j++) {
            buf.append(HEX_DIGITS[(bytes[j] >> 4) & 0x0f]);
            buf.append(HEX_DIGITS[bytes[j] & 0x0f]);
        }
        return buf.toString();
    }
    private static final char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
}

1.4 返回说明

所有接口返回类型为JSON。返回字段如下:

名称 类型 说明
code Int 返回结果的状态码
ret String 返回的结果集
msg String 当返回结果的状态码不为200时,包含的错误信息

2 频道管理

2.1 创建频道

2.1.1 接口说明

创建一个直播频道

2.1.2 请求说明

POST https://vcloud.163.com/app/channel/create HTTP/1.1
Content-Type: application/json;charset=utf-8

2.1.3 参数说明

参数 类型 说明 必须
name String 频道名称(最大长度64个字符,只支持中文、字母、数字和下划线)
type int 频道类型(0:rtmp)

2.1.4 示例

curl -X POST -H "Content-Type: application/json" -H "AppKey: 29781bbc4db54742a3ebcxxxxxxxxxxx" -H "Nonce: 12345" -H "CurTime: 1469171950571" -H "CheckSum: 4ba6ca70c685eb900917e423eadaxxxxxxxxxxxxx" -d '{"name":"channel_name", "type":0}' https://vcloud.163.com/app/channel/create

2.1.5 Java示例(以下各接口的HttpClient调用方式参考此处

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.apache.http.Consts;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class Test {
    public static void main(String[] args) throws Exception{
        DefaultHttpClient httpClient = new DefaultHttpClient();
        String url = "https://vcloud.163.com/app/channel/create";
        HttpPost httpPost = new HttpPost(url);

        String appKey = "94kid09c9ig9k1loimjg012345123456";
        String appSecret = "123456789012";
        String nonce =  "1";
        String curTime = String.valueOf((new Date()).getTime() / 1000L);
        String checkSum = CheckSumBuilder.getCheckSum(appSecret, nonce ,curTime);//参考 计算CheckSum的java代码

        // 设置请求的header
        httpPost.addHeader("AppKey", appKey);
        httpPost.addHeader("Nonce", nonce);
        httpPost.addHeader("CurTime", curTime);
        httpPost.addHeader("CheckSum", checkSum);
        httpPost.addHeader("Content-Type", "application/json;charset=utf-8");

        // 设置请求的参数
        StringEntity params = new StringEntity("{\"name\":\"netease_vcloud\", \"type\":0}",Consts.UTF_8);
        httpPost.setEntity(params);

        // 执行请求
        HttpResponse response = httpClient.execute(httpPost);

        // 打印执行结果
        System.out.println(EntityUtils.toString(response.getEntity(), "utf-8"));
    }
}

2.1.6 返回说明

http 响应:json

参数 类型 说明
code int 状态码
cid String 频道ID,32位字符串
ctime Long 创建频道的时间戳
name String 频道名称
pushUrl String 推流地址
httpPullUrl String http拉流地址
hlsPullUrl String hls拉流地址
rtmpPullUrl String rtmp拉流地址
msg String 错误信息
//返回结果格式
"Content-Type": "application/json; charset=utf-8"
{
    "code" : XXX,
    "msg" : XXX,
    "ret" : {
        "cid" : XXX,
        "ctime" : XXX,
        "pushurl" : XXX,
        "httpPullUrl" : XXX,
        "hlsPullUrl" : XXX,
        "rtmpPullUrl" : XXX
    }
}

//成功结果示例
"Content-Type": "application/json; charset=utf-8" 
{
    "ret":{
        "httpPullUrl":"http://v1.live.126.net/live/cidxxxxxxxxx.flv",
        "hlsPullUrl":"http://pullhls1.live.126.net/live/cidxxxxxxxxx/playlist.m3u8",
        "rtmpPullUrl":"rtmp://v1.live.126.net/live/cidxxxxxxxxx",
        "name":"channel_name",
        "pushUrl":"rtmp://p1.live.126.net/live/cidxxxxxxxxx?wsSecret=312e11af6136a77b46afd0ebbb3102af&wsTime=1469411599",
        "ctime":1469411598850,
        "cid":"cidxxxxxxxxx"
    },
    "code":200
}

//失败结果示例
{
    "code":611,
    "msg":"频道名称已经存在"
}

2.1.7 响应状态码

HTTP状态码 含义
200 操作成功
409 用户登录认证失败
604 频道添加失败
607 用户信息不存在
610 频道名称为空
611 频道名称已经存在
612 频道类型错误
613 CheckSum为空
614 AppKey为空
615 CurTime为空
635 服务未开通,请联系客服QQ:3310203920申请开通!

2.2 修改频道

2.2.1 接口说明

修改直播频道信息

2.2.2 请求说明

POST https://vcloud.163.com/app/channel/update HTTP/1.1
Content-Type: application/json;charset=utf-8

2.2.3 参数说明

参数 类型 说明 必须
name String 频道名(最大长度64个字符)
cid String 频道ID,32位字符串
type int 频道类型 ( 0 : rtmp)

2.2.4 curl请求示例

curl -X POST -H "Content-Type: application/json" -H "AppKey: 29781bbc4db54742a3ebcxxxxxxxxxxx" -H "Nonce: 12345" -H "CurTime: 1469171950571" -H "CheckSum: 4ba6ca70c685eb900917e423eadaxxxxxxxxxxxxx" -d '{"name":"channel_name", "cid":"cidxxxxxxxxx", "type":0}' https://vcloud.163.com/app/channel/update

2.2.5 返回说明

http 响应:json

参数 类型 说明
code int 状态码
msg String 错误信息
//返回结果格式
"Content-Type": "application/json; charset=utf-8"
{
    "code" : XXX,
    "msg" : XXX,
    "ret" : {

    }
}

//错误返回示例
"Content-Type": "application/json; charset=utf-8"
{
    "code":609,
    "msg":"频道ID为空"
}

2.2.6 响应状态码

HTTP状态码 含义
200 操作成功
409 用户登录认证失败
605 频道更新失败
607 用户信息不存在
609 频道ID为空
610 频道名称为空
611 频道名称已经存在
612 频道类型错误
613 CheckSum为空
614 AppKey为空
615 CurTime为空

2.3 删除频道

2.3.1 接口说明

删除一个直播频道

2.3.2 请求说明

POST https://vcloud.163.com/app/channel/delete HTTP/1.1
Content-Type: application/json;charset=utf-8

2.3.3 参数说明

参数 类型 说明 必须
cid String 频道ID,32位字符串

2.3.4 curl请求示例

curl -X POST -H "Content-Type: application/json" -H "AppKey: 29781bbc4db54742a3ebcxxxxxxxxxxx" -H "Nonce: 12345" -H "CurTime: 1469171950571" -H "CheckSum: 4ba6ca70c685eb900917e423eadaxxxxxxxxxxxxx" -d '{"cid":"1452b15e9b6941a384a6a5688d478620"}' https://vcloud.163.com/app/channel/delete

2.3.5 返回说明

http 响应:json

参数 类型 说明
code int 状态码
msg String 错误信息
//返回结果格式
"Content-Type": "application/json; charset=utf-8"
{
    "code" : XXX,
    "msg" : XXX,
    "ret" : {

    }
}

//成功结果示例
"Content-Type": "application/json; charset=utf-8"
{
    "code" : 200,
    "ret" : {}
}

2.3.6 响应状态码

HTTP状态码 含义
200 操作成功
409 用户登录认证失败
603 频道删除失败
607 用户信息不存在
609 频道ID为空
613 CheckSum为空
614 AppKey为空
615 CurTime为空

2.4 获取频道状态

2.4.1 接口说明

获取一个直播频道的信息

2.4.2 请求说明

POST https://vcloud.163.com/app/channelstats HTTP/1.1
Content-Type: application/json;charset=utf-8

2.4.3 参数说明

参数 类型 说明 必须
cid String 频道ID,32位字符串

2.4.4 curl请求示例

curl -X POST -H "Content-Type: application/json" -H "AppKey: 29781bbc4db54742a3ebcxxxxxxxxxxx" -H "Nonce: 12345" -H "CurTime: 1469171950571" -H "CheckSum: 4ba6ca70c685eb900917e423eadaxxxxxxxxxxxxx" -d '{"cid":"cidxxxxxxxxx"}' https://vcloud.163.com/app/channelstats

2.4.5 返回说明

http 响应:json

参数 类型 说明
ctime Long 创建频道的时间戳
cid String 频道ID,32位字符串
name String 频道名称
status int 频道状态(0:空闲; 1:直播; 2:禁用; 3:直播录制)
type int 频道类型 ( 0 : rtmp, 1 : hls, 2 : http)
uid Long 用户ID
needRecord int 1-开启录制; 0-关闭录制
format int 1-flv; 0-mp4
duration int 录制切片时长(分钟),默认120分钟
filename String 录制后文件名
msg String 错误信息
//返回结果格式
"Content-Type": "application/json; charset=utf-8"
{
    "code" : XXX,
    "msg" : XXX,
    "ret" : {
        "ctime" : XXX,
        "cid" : XXX,
        "name" : XXX,
        "status" : XXX,
        "uid" : XXX,
        "needRecord" : XXX,
        "format" : XXX, 
        "duration" : XXX,
        "filename" : XXX
    }
}

//成功结果示例
"Content-Type": "application/json; charset=utf-8"
{
    "ret":{
        "needRecord":0,
        "uid":10001,
        "duration":120,
        "status":0,
        "name":"channel_name",
        "filename":"channel_name",
        "format":1,
        "type":0,
        "ctime":1469411598850,
        "cid":"cidxxxxxxxxx"
    },
    "code":200
}

2.4.6 响应状态码

HTTP状态码 含义
200 操作成功
409 用户登录认证失败
602 查询失败
607 用户信息不存在
609 频道ID为空
613 CheckSum为空
614 AppKey为空
615 CurTime为空
617 频道信息与当前用户不匹配

2.5 获取频道列表

2.5.1 接口说明

获取用户直播频道列表

2.5.2 请求说明

POST https://vcloud.163.com/app/channellist HTTP/1.1
Content-Type: application/json;charset=utf-8

2.5.3 参数说明

参数 类型 说明 必须
records int 单页记录数,默认值为10
pnum int 要取第几页,默认值为1
ofield String 排序的域,支持的排序域为:ctime(默认)
sort int 升序还是降序,1升序,0降序,默认为desc

2.5.4 curl请求示例

curl -X POST -H "Content-Type: application/json" -H "AppKey: 29781bbc4db54742a3ebcxxxxxxxxxxx" -H "Nonce: 12345" -H "CurTime: 1469171950571" -H "CheckSum: 4ba6ca70c685eb900917e423eadaxxxxxxxxxxxxx" -d '{"records":10, "pnum":1, "ofield": "ctime", "sort": 0}' https://vcloud.163.com/app/channellist

2.5.5 返回说明

http 响应:json

参数 类型 说明
ctime Long 创建频道的时间戳
cid String 频道ID,32位字符串
name String 频道名称
status int 频道状态(0:空闲; 1:直播; 2:禁用; 3:直播录制)
type int 频道类型 ( 0 : rtmp, 1 : hls, 2 : http)
uid Long 用户ID
needRecord int 1-开启录制; 0-关闭录制
format int 1-flv; 0-mp4
duration int 录制切片时长(分钟),默认120分钟
filename String 录制后文件名
msg String 错误信息
//返回结果格式
"Content-Type": "application/json; charset=utf-8"
{
    "code" : XXX,
    "msg" : XXX,
    "ret" : {
        "list" : [
            {
                "ctime" : XXX,
                "cid" : XXX,
                "name" : XXX,
                "status" : XXX,
                "uid" : XXX,
                "needRecord" : XXX,
                "format" : XXX, 
                "duration" : XXX,
                "filename" : XXX
            },

            {
                "ctime" : XXX,
                "cid" : XXX,
                "name" : XXX,
                "status" : XXX,
                "uid" : XXX,
                "needRecord" : XXX,
                "format" : XXX, 
                "duration" : XXX,
                "filename" : XXX
            },

            ...

        ]
    }
}

//成功结果示例
"Content-Type": "application/json; charset=utf-8"        
{
    "ret":{
        "pnum":1,
        "list":[
            {
                "needRecord":0,
                "uid":10001,
                "duration":120,
                "status":0,
                "name":"channel_name",
                "filename":"channel_name",
                "format":1,
                "type":0,
                "ctime":1469411598850,
                "cid":"cidxxxxxxxxx"
            },
            {
                "needRecord":0,
                "uid":10001,
                "duration":120,
                "status":0,
                "name":"11111",
                "filename":"11111",
                "format":1,
                "type":0,
                "ctime":1458701553160,
                "cid":"614a2eb9741f46658f400e681e9bdee0"
            }
        ],
        ...
    },
    "code":200
}

2.5.6 响应状态码

HTTP状态码 含义
200 操作成功
409 用户登录认证失败
602 查询失败
607 用户信息不存在
613 CheckSum为空
614 AppKey为空
615 CurTime为空
618 查询数据信息不存在
631 请求参数错误

2.6 重新获取推流地址

2.6.1 接口说明

用户创建频道时获取的推流地址失效时,重新获取推流地址。

2.6.2 请求说明

POST https://vcloud.163.com/app/address HTTP/1.1
Content-Type: application/json;charset=utf-8

2.6.3 参数说明

参数 类型 说明 必须
cid String 频道ID,32位字符串

2.6.4 curl请求示例

curl -X POST -H "Content-Type: application/json" -H "AppKey: 29781bbc4db54742a3ebcxxxxxxxxxxx" -H "Nonce: 12345" -H "CurTime: 1469171950571" -H "CheckSum: 4ba6ca70c685eb900917e423eadaxxxxxxxxxxxxx" -d '{"cid":"cidxxxxxxxxx"}' https://vcloud.163.com/app/address

2.6.5 返回说明

http 响应:json

参数 类型 说明
code int 状态码
pushUrl String 推流地址
httpPullUrl String http拉流地址
hlsPullUrl String hls拉流地址
rtmpPullUrl String rtmp拉流地址
msg String 错误信息
//返回结果格式
"Content-Type": "application/json; charset=utf-8"
{
    "code" : XXX,
    "msg" : XXX,
    "ret" : {
        "pushUrl" : XXX,
        "httpPullUrl" : XXX,
        "hlsPullUrl" : XXX,
        "rtmpPullUrl" : XXX
    }
}

//成功结果示例
"Content-Type": "application/json; charset=utf-8"
{
    "ret":{
        "httpPullUrl":"http://v1.live.126.net/live/cidxxxxxxxxx.flv",
        "hlsPullUrl":"http://pullhls1.live.126.net/live/cidxxxxxxxxx/playlist.m3u8",
        "rtmpPullUrl":"rtmp://v1.live.126.net/live/cidxxxxxxxxx",
        "name":"channel_name",
        "pushUrl":"rtmp://p1.live.126.net/live/cidxxxxxxxxx?wsSecret=582e02209271e6bf7fc762e68a7c51cc&wsTime=1469416637"
    },
    "code":200
}

2.6.6 响应状态码

HTTP状态码 含义
200 操作成功
409 用户登录认证失败
602 查询失败:获取直播地址失败
607 用户信息不存在
609 频道ID为空
613 CheckSum为空
614 AppKey为空
615 CurTime为空
617 频道信息与当前用户不匹配

2.7 设置频道为录制状态

2.7.1 接口说明

设置频道为录制状态,用户推流时,即可录制为视频文件。

2.7.2 请求说明

POST https://vcloud.163.com/app/channel/setAlwaysRecord HTTP/1.1
Content-Type: application/json;charset=utf-8

2.7.3 参数说明

参数 类型 说明 必须
cid String 频道ID,32位字符串
needRecord int 1-开启录制; 0-关闭录制
format int 1-flv; 0-mp4
duration int 录制切片时长(分钟),5~120分钟
filename String 录制后文件名(只支持中文、字母和数字),格式为filename_YYYYMMDD-HHmmssYYYYMMDD-HHmmss, 文件名录制起始时间(年月日时分秒) -录制结束时间(年月日时分秒)

2.7.4 curl请求示例

curl -X POST -H "Content-Type: application/json" -H "AppKey: 29781bbc4db54742a3ebcxxxxxxxxxxx" -H "Nonce: 12345" -H "CurTime: 1469171950571" -H "CheckSum: 4ba6ca70c685eb900917e423eadaxxxxxxxxxxxxx" -d '{"cid": "cidxxxxxxxxx", "needRecord": 1, "format":1, "duration":20, "filename":"record"}' https://vcloud.163.com/app/channel/setAlwaysRecord

2.7.5 返回说明

http 响应:json

参数 类型 说明
code int 状态码
msg String 错误信息
//返回结果格式
"Content-Type": "application/json; charset=utf-8"
{
    "code" : XXX,
    "msg" : XXX
}

//错误返回示例
"Content-Type": "application/json; charset=utf-8"
{
    "code":723,
    "msg":"使用直播录制功能需开通云点播服务"
}

2.7.6 响应状态码

HTTP状态码 含义
200 操作成功
409 用户登录认证失败
501 内部错误
613 CheckSum为空
614 AppKey为空
615 CurTime为空
617 频道信息与当前用户不匹配
618 查询数据信息不存在
631 请求参数错误
723 使用直播录制功能需开通云点播服务

2.8 禁用频道

2.8.1 接口说明

禁用用户正在直播的频道。

2.8.2 请求说明

POST https://vcloud.163.com/app/channel/pause HTTP/1.1
Content-Type: application/json;charset=utf-8

2.8.3 参数说明

参数 类型 说明 必须
cid String 频道ID,32位字符串

2.8.4 curl请求示例

curl -X POST -H "Content-Type: application/json" -H "AppKey: 29781bbc4db54742a3ebcxxxxxxxxxxx" -H "Nonce: 12345" -H "CurTime: 1469171950571" -H "CheckSum: 4ba6ca70c685eb900917e423eadaxxxxxxxxxxxxx" -d '{"cid":"cidxxxxxxxxx"}' https://vcloud.163.com/app/channel/pause

2.8.5 返回说明

http 响应:json

参数 类型 说明
code int 状态码
msg String 错误信息
//返回结果格式
"Content-Type": "application/json; charset=utf-8"
{
    "code" : XXX,
    "msg" : XXX
}

//成功结果示例
"Content-Type": "application/json; charset=utf-8"
{
    "code" : 200
}

2.8.6 响应状态码

HTTP状态码 含义
200 操作成功
409 用户登录认证失败
501 内部错误
613 CheckSum为空
614 AppKey为空
615 CurTime为空
617 频道信息与当前用户不匹配
618 查询数据信息不存在
629 频道禁用失败
631 请求参数错误

2.9 批量禁用频道

2.9.1 接口说明

禁用一组用户正在直播的频道。

2.9.2 请求说明

POST https://vcloud.163.com/app/channellist/pause HTTP/1.1
Content-Type: application/json;charset=utf-8

2.9.3 参数说明

参数 类型 说明 必须
cidList JsonArray 频道ID列表

2.9.4 curl请求示例

curl -X POST -H "Content-Type: application/json" -H "AppKey: 29781bbc4db54742a3ebcxxxxxxxxxxx" -H "Nonce: 12345" -H "CurTime: 1469171950571" -H "CheckSum: 4ba6ca70c685eb900917e423eadaxxxxxxxxxxxxx" -d '{"cidList": ["cidxxxxxxxxx", "cidxxxxxxxxx1", "cidxxxxxxxxx2"]}' https://vcloud.163.com/app/channellist/pause

2.9.5 返回说明

http 响应:json

参数 类型 说明
code int 状态码
msg String 错误信息
successList JsonArray 成功禁用cid列表
//返回结果格式
"Content-Type": "application/json; charset=utf-8"
{
    "code" : XXX,
    "msg" : XXX,
    "ret" : {
        "successList" : [
             XXX,
             XXX,
             XXX,
             ...
         ]
    }
}

//成功结果示例
"Content-Type": "application/json; charset=utf-8"
{
    "ret":{
        "successList":[
            "cidxxxxxxxxx",
            "cidxxxxxxxxx1",
            "cidxxxxxxxxx2"
        ]
    },
    "code":200
}

2.9.6 响应状态码

HTTP状态码 含义
200 操作成功
409 用户登录认证失败
501 内部错误
613 CheckSum为空
614 AppKey为空
615 CurTime为空
631 请求参数错误

2.10 恢复频道

2.10.1 接口说明

恢复用户被禁用的频道。

2.10.2 请求说明

POST https://vcloud.163.com/app/channel/resume HTTP/1.1
Content-Type: application/json;charset=utf-8

2.10.3 参数说明

参数 类型 说明 必须
cid String 频道ID,32位字符串

2.10.4 curl请求示例

curl -X POST -H "Content-Type: application/json" -H "AppKey: 29781bbc4db54742a3ebcxxxxxxxxxxx" -H "Nonce: 12345" -H "CurTime: 1469171950571" -H "CheckSum: 4ba6ca70c685eb900917e423eadaxxxxxxxxxxxxx" -d '{"cid":"cidxxxxxxxxx"}' https://vcloud.163.com/app/channel/resume

2.10.5 返回说明

http 响应:json

参数 类型 说明
code int 状态码
msg String 错误信息
//返回结果格式
"Content-Type": "application/json; charset=utf-8"
{
    "code" : XXX,
    "msg" : XXX
}

//成功结果示例
"Content-Type": "application/json; charset=utf-8"
{
    "code" : 200
}

2.10.6 响应状态码

HTTP状态码 含义
200 操作成功
409 用户登录认证失败
501 内部错误
613 CheckSum为空
614 AppKey为空
615 CurTime为空
617 频道信息与当前用户不匹配
618 查询数据信息不存在
630 频道恢复失败
631 请求参数错误

2.11 批量恢复频道

2.11.1 接口说明

恢复一组用户正在直播的频道。

2.11.2 请求说明

POST https://vcloud.163.com/app/channellist/resume HTTP/1.1
Content-Type: application/json;charset=utf-8

2.11.3 参数说明

参数 类型 说明 必须
cidList JsonArray 频道ID列表

2.11.4 curl请求示例

curl -X POST -H "Content-Type: application/json" -H "AppKey: 29781bbc4db54742a3ebcxxxxxxxxxxx" -H "Nonce: 12345" -H "CurTime: 1469171950571" -H "CheckSum: 4ba6ca70c685eb900917e423eadaxxxxxxxxxxxxx" -d '{"cidList": ["cidxxxxxxxxx", "cidxxxxxxxxx1", "cidxxxxxxxxx2"]}' https://vcloud.163.com/app/channellist/resume

2.11.5 返回说明

http 响应:json

参数 类型 说明
code int 状态码
msg String 错误信息
successList JsonArray 成功禁用cid列表
//返回结果格式
"Content-Type": "application/json; charset=utf-8"
{
    "code" : XXX,
    "msg" : XXX,
    "ret" : {
        "successList" : [
             XXX,
             XXX,
             XXX,
             ...
         ]
    }
}

//成功返回示例
"Content-Type": "application/json; charset=utf-8"
{
    "ret":{
        "successList":[
            "cidxxxxxxxxx",
            "cidxxxxxxxxx1",
            "cidxxxxxxxxx2"
        ]
    },
    "code":200
}

2.11.6 响应状态码

HTTP状态码 含义
200 操作成功
409 用户登录认证失败
501 内部错误
613 CheckSum为空
614 AppKey为空
615 CurTime为空
631 请求参数错误

2.12 获取录制视频文件列表

2.12.1 接口说明

获取某频道录制视频文件列表。(最多获取到从当前时间到七天前的文件列表)

2.12.2 请求说明

POST https://vcloud.163.com/app/videolist HTTP/1.1
Content-Type: application/json;charset=utf-8

2.12.3 参数说明

参数 类型 说明 必须
cid String 频道ID,32位字符串

2.12.4 curl请求示例

curl -X POST -H "Content-Type: application/json" -H "AppKey: 29781bbc4db54742a3ebcxxxxxxxxxxx" -H "Nonce: 12345" -H "CurTime: 1469171950571" -H "CheckSum: 4ba6ca70c685eb900917e423eadaxxxxxxxxxxxxx" -d '{"cid":"cidxxxxxxxxx"}' https://vcloud.163.com/app/videolist
curl -X POST -H "Content-Type: application/json" -H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" -H "Nonce: 12345" -H "CurTime: 1469427735815" -H "CheckSum: 86d9602149544997a86769a8d6088cabb12b212b" -d '{"cid":"291e3a9d662c4cfaa672bad689f0750b"}' https://vcloud.163.com/app/videolist

2.12.5 返回说明

http 响应:json

参数 类型 说明
code int 状态码
msg String 错误信息
videoList JsonArray 录制视频列表
video_name String 录制后文件名,格式为filename_YYYYMMDD-HHmmssYYYYMMDD-HHmmss, 文件名录制起始时间(年月日时分秒) -录制结束时间(年月日时分秒)
orig_video_key String 视频文件在点播桶中的存储路径
uid Long 用户ID
vid Long 视频文件ID
//返回结果格式
"Content-Type": "application/json; charset=utf-8"
{
    "code" : XXX,
    "msg" : XXX,
     "ret" : {
        "videoList" : [
            {
                "video_name" : XXX,
                "orig_video_key" : XXX,
                "uid" : XXX,
                "vid" : XXX
            },

            {
                "video_name" : XXX,
                "orig_video_key" : XXX,
                "uid" : XXX,
                "vid" : XXX
            },

            ...

        ]
    }
}

//成功结果示例
"Content-Type": "application/json; charset=utf-8"
{
    "ret":{
        "videoList":[
            {
                "video_name":"new_20160628-113352_20160628-133351",
                "orig_video_key":"1_291e3a9d662c4cfaa672bad689f0750b_1467084832593_1467092031353_1312-00001.flv",
                "uid":24133,
                "vid":42
            },
            {
                "video_name":"new_20160628-093349_20160628-113352",
                "orig_video_key":"1_291e3a9d662c4cfaa672bad689f0750b_1467077629013_1467084832593_1312-00000.flv",
                "uid":24133,
                "vid":41
            },
            ...
        ]
    },
    "code":200
}

2.12.6 响应状态码

HTTP状态码 含义
200 操作成功
409 用户登录认证失败
501 内部错误
613 CheckSum为空
614 AppKey为空
615 CurTime为空
618 频道信息不存在
631 请求参数错误

2.13 获取某一时间范围的录制视频文件列表

2.13.1 接口说明

通过开始和结束的时间点,获取某频道录制视频文件列表。(时间跨度不能超过1周)

2.13.2 请求说明

POST https://vcloud.163.com/app/vodvideolist HTTP/1.1
Content-Type: application/json;charset=utf-8

2.13.3 参数说明

参数 类型 说明 必须
cid String 频道ID,32位字符串
beginTime long 查询的起始时间戳(毫秒)
endTime long 查询的结束时间戳(毫秒)

2.13.4 curl请求示例

curl -X POST -H "Content-Type: application/json" -H "AppKey: 29781bbc4db54742a3ebcxxxxxxxxxxx" -H "Nonce: 12345" -H "CurTime: 1469171950571" -H "CheckSum: 4ba6ca70c685eb900917e423eadaxxxxxxxxxxxxx" -d '{"cid":"cidxxxxxxxxx", "beginTime":begintime, "endTime":endTime}' https://vcloud.163.com/app/vodvideolist
curl -X POST -H "Content-Type: application/json" -H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" -H "Nonce: 12345" -H "CurTime: 1469427735815" -H "CheckSum: 86d9602149544997a86769a8d6088cabb12b212b" -d '{"cid":"291e3a9d662c4cfaa672bad689f0750b", "beginTime":1476115200000, "endTime":1476201600000}' https://vcloud.163.com/app/vodvideolist

2.13.5 返回说明

http 响应:json

参数 类型 说明
code int 状态码
msg String 错误信息
videoList JsonArray 录制视频列表
name String 录制后文件名,格式为filename_YYYYMMDD-HHmmssYYYYMMDD-HHmmss, 文件名录制起始时间(年月日时分秒) -录制结束时间(年月日时分秒)
url String 视频文件在点播桶中的存储路径
vid Long 视频文件ID
//返回结果格式
"Content-Type": "application/json; charset=utf-8"
{
    "code" : XXX,
    "msg" : XXX,
     "ret" : {
        "videoList" : [
            {
                "name" : XXX,
                "url" : XXX,
                "vid" : XXX
            },

            {
                "name" : XXX,
                "url" : XXX,
                "vid" : XXX
            },

            ...

        ]
    }
}

//成功结果示例
"Content-Type": "application/json; charset=utf-8"
{
    "ret":{
        "videoList":[
            {
                "name":"new_20160628-113352_20160628-133351",
                "url":"1_291e3a9d662c4cfaa672bad689f0750b_1467084832593_1467092031353_1312-00001.flv",
                "vid":42
            },
            {
                "name":"new_20160628-093349_20160628-113352",
                "url":"1_291e3a9d662c4cfaa672bad689f0750b_1467077629013_1467084832593_1312-00000.flv",
                "vid":41
            },
            ...
        ]
    },
    "code":200
}

2.13.6 响应状态码

HTTP状态码 含义
200 操作成功
409 用户登录认证失败
501 内部错误
613 CheckSum为空
614 AppKey为空
615 CurTime为空
618 频道信息不存在
631 请求参数错误

2.14 设置视频录制回调地址

2.14.1 接口说明

用户录制文件生成后,会将生成文件信息推送到该地址, 目前支持HTTP POST方式。

2.14.2 请求说明

POST https://vcloud.163.com/app/record/setcallback HTTP/1.1
Content-Type: application/json;charset=utf-8

2.14.3 参数说明

参数 类型 说明 必须
recordClk String 录制文件生成回调地址(http开头)

2.14.4 curl请求示例

curl -X POST -H "Content-Type: application/json" -H "AppKey: 29781bbc4db54742a3ebcxxxxxxxxxxx" -H "Nonce: 12345" -H "CurTime: 1469171950571" -H "CheckSum: 4ba6ca70c685eb900917e423eadaxxxxxxxxxxxxx" -d '{"recordClk":"http://xxxxxxxxx"}' https://vcloud.163.com/app/record/setcallback

2.14.5 返回说明

http 响应:json

参数 类型 说明
code int 状态码
result boolean 是否设置成功
//返回结果格式
"Content-Type": "application/json; charset=utf-8"
{
    "code" : XXX,
    "ret" : {
        result : XXX
    }
}

//成功结果示例
"Content-Type": "application/json; charset=utf-8"
{
    "ret":{
        "result":true
    },
    "code":200
}

2.14.6 响应状态码

HTTP状态码 含义
200 操作成功
409 用户登录认证失败
501 内部错误
613 CheckSum为空
614 AppKey为空
615 CurTime为空
618 频道信息不存在
631 请求参数错误

2.14.7 回调内容示例

{"vid":"7563","orig_video_key":"8bfe052367414ef1bf8baa5b118111_1480499359291_1480499570111_2541778-00002.flv","video_name":"创建频道1_20161130-174919_20161130-175250","uid":"10000","nId":"nId1144","beginTime":"1480499359291","endTime":"1480499570111","cid":"1234XXX"}
参数 说明
video_name 录制后文件名,格式为filename_YYYYMMDD-HHmmssYYYYMMDD-HHmmss, 文件名录制起始时间(年月日时分秒) -录制结束时间(年月日时分秒)
orig_video_key 视频文件在点播桶中的存储路径
uid 用户ID
vid 视频文件ID
cid 频道ID
beginTime 录制文件起始时间戳(毫秒)
endTime 录制文件结束时间戳(毫秒)
nId 消息ID,同一条消息nId全局唯一,网络超时或接收方返回非200状态码时根据业务规则进行重发,接收方接到多条通知情况下可用于进行消息去重
sign(http请求头) 对回调body内容按指定格式转换后进行MD5加密生成的签名,sign字段为http请求头内容。签名规则:将body所有字段按key进行字典排序(升序)组成待签名字符串content,对字符串content+signKey进行MD5签名 如:
beginTime=1483406830579&cid=6355099987a648bfb8fb265847&endTime=1483406857109&nId=nId1000&orig
_video_key=6355099987a648bfbec0c53.mp4&uid=100&vid=1000&video_name=092710_20170103signKey进行MD5签名

2.15 设置回调的加签秘钥

2.15.1 接口说明

用该秘钥对回调内容生成MD5签名,用于用户接口的校验。可以不设置,默认为“vcloud”。该秘钥对用户所有设置的回调地址生效。

2.15.2 请求说明

POST https://vcloud.163.com/app/callback/setSignKey HTTP/1.1
Content-Type: application/json;charset=utf-8

2.15.3 参数说明

参数 类型 说明 必须
signKey String 加签秘钥

2.15.4 curl请求示例

curl -X POST -H "Content-Type: application/json" -H "AppKey: 29781bbc4db54742a3ebcxxxxxxxxxxx" -H "Nonce: 12345" -H "CurTime: 1469171950571" -H "CheckSum: 4ba6ca70c685eb900917e423eadaxxxxxxxxxxxxx" -d '{"signKey":"xxxxxxxxx"}' https://vcloud.163.com/app/callback/setSignKey

2.15.5 返回说明

http 响应:json

参数 类型 说明
code int 状态码
result boolean 是否设置成功
//返回结果格式
"Content-Type": "application/json; charset=utf-8"
{
    "code" : XXX,
    "ret" : {
        result : XXX
    }
}

//成功结果示例
"Content-Type": "application/json; charset=utf-8"
{
    "ret":{
        "result":true
    },
    "code":200
}

2.15.6 响应状态码

HTTP状态码 含义
200 操作成功
409 用户登录认证失败
501 内部错误
613 CheckSum为空
614 AppKey为空
615 CurTime为空
618 频道信息不存在
631 请求参数错误

2.16 录制文件合并

2.16.1 接口说明

对于同一次录制产生的切片文件,合并成一个文件,通过查询录制文件列表接口可获取。仅支持MP4格式的文件,且同时在合并的任务数不能超过3个, 待合并视频总时长不得超过4小时,1分钟接口调用不能超过10次。如果用户设置了回调地址,也会将合并好的视频回调给用户(回调内容不包含beginTime,endTime),参看接口2.14 (设置视频录制回调地址)。

2.16.2 请求说明

POST https://vcloud.163.com/app/video/merge HTTP/1.1
Content-Type: application/json;charset=utf-8

2.16.3 参数说明

参数 类型 说明 必须
outputName String 合并文件的名称(不能含有空格)
vidList JsonArray 待合并的视频文件的ID列表(文件ID类型为long)

2.16.4 curl请求示例

curl -X POST -H "Content-Type: application/json" -H "AppKey: 29781bbc4db54742a3ebcxxxxxxxxxxx" -H "Nonce: 12345" -H "CurTime: 1469171950571" -H "CheckSum: 4ba6ca70c685eb900917e423eadaxxxxxxxxxxxxx" -d '{"outputName":"xxxxxxxxx", "vidList": [vidxxxxxxxxx0, vidxxxxxxxxx1, vidxxxxxxxxx2]}' https://vcloud.163.com/app/video/merge

2.16.5 返回说明

http 响应:json

参数 类型 说明
code int 状态码
result boolean 请求是否成功
//返回结果格式
"Content-Type": "application/json; charset=utf-8"
{
    "code" : XXX,
    "ret" : {
        result : XXX
    }
}

//成功结果示例
"Content-Type": "application/json; charset=utf-8"
{
    "ret":{
        "result":true
    },
    "code":200
}

2.16.6 响应状态码

HTTP状态码 含义
200 操作成功
409 用户登录认证失败
501 内部错误
613 CheckSum为空
614 AppKey为空
615 CurTime为空
618 频道信息不存在
631 请求参数错误
638 访问频率超限
639 任务数量已达上限