搜索视频

接口URL

https://api.polyv.net/v3/video/list-video

接口说明

(接口调用有频率限制,详细请查看)

1、接口用于搜索视频
2、接口支持https

请求方式

GET,POST

请求参数

参数名 必选 类型 说明
appId string 子账号appId
timestamp long 当前13位当前时间戳,3分钟有效
sign string 签名值,32位大写MD5值
cateId long 视频分类ID
title string 按标题搜索
uploader string 上传者
status int 视频状态
containSubCate string 是否包含子分类, Y 包含, N 不包含
startTime long 按创建时间范围查询,起始时间戳,13位时间戳
endTime long 结束时间戳,13位时间戳
page int 页码,默认为1
pageSize int 页面大小,默认为10
sort string 排序creationTimeDesc或creationTimeAsc

响应成功JSON示例:

// 请求成功
{
    "requestId": "652c7f9b-bfc4-4cd1-b58b-b73062bba229",
    "code": 200,
    "status": "success",
    "error": null,
    "data": {
        "pageNumber": 1,
        "totalPages": 65,
        "pageSize": 1,
        "contents": [
            {
                "vid": "a2dc4f2517d7a3b462dc1876c333fd32_a",
                "basicInfo": {
                    "title": "视频标题",
                    "description": "视频秒数",
                    "duration": 732.0,
                    "coverURL": "https://img.videocc.net/uimage/a/a2dc4f2517/2/a2dc4f2517d7a3b462dc1876c333fd32_0_b.jpg",
                    "creationTime": "2021-05-02 09:29:39",
                    "updateTime": "2021-05-02 09:35:12",
                    "size": 61663766,
                    "status": 61,
                    "cateId": 1,
                    "cateName": "默认分类",
                    "tags": "",
                    "uploader": "API"
                }
            }
        ],
        "totalItems": 65
    }
}

响应失败JSON示例:

// 时间戳错误
{
    "requestId": "5ede3d23-45f0-4661-99be-e95d07daf049",
    "code": 400,
    "status": "error",
    "error": {
        "code": 100,
        "desc": "invalid timestamp"
    },
    "data": null
}
// appId不正确
{
    "requestId": "5ede3d23-45f0-4661-99be-e95d07daf049",
    "code": 400,
    "status": "error",
    "error": {
        "code": 101,
        "desc": "application not exist"
    },
    "data": null
}
// 子账号不存在
{
    "requestId": "5ede3d23-45f0-4661-99be-e95d07daf049",
    "code": 400,
    "status": "error",
    "error": {
        "code": 102,
        "desc": "user children not exist"
    },
    "data": null
}
// 子账号过期
{
    "requestId": "5ede3d23-45f0-4661-99be-e95d07daf049",
    "code": 403,
    "status": "error",
    "error": {
        "code": 103,
        "desc": "user children expired"
    },
    "data": null
}
// 签名错误
{
    "requestId": "5ede3d23-45f0-4661-99be-e95d07daf049",
    "code": 403,
    "status": "error",
    "error": {
        "code": 104,
        "desc": "invalid signature"
    },
    "data": null
}
// 账号权限不足
{
    "requestId": "5ede3d23-45f0-4661-99be-e95d07daf049",
    "code": 403,
    "status": "error",
    "error": {
        "code": 105,
        "desc": "permission limited"
    },
    "data": null
}
// 无法操作此分类,权限不足
{
    "requestId": "5ede3d23-45f0-4661-99be-e95d07daf049",
    "code": 400,
    "status": "error",
    "error": {
        "code": 106,
        "desc": "category limited"
    },
    "data": null
}
// 分类id不存在
{
    "requestId": "5ede3d23-45f0-4661-99be-e95d07daf049",
    "code": 400,
    "status": "error",
    "error": {
        "code": 3001,
        "desc": "category not exist"
    },
    "data": null
}

字段说明

字段 说明
requestId 本次请求的ID
code 响应http状态码
status 状态
error.code 错误码
error.desc 错误描述
data 返回结果集
data.pageNumber 当前的页数
data.pageSize 每页条数
data.totalItems 总的条数
data.contents 查询的结果列表
data.content[0].vid 视频id
data.contents[0].basicInfo.title 视频标题
data.contents[0].basicInfo.description 视频描述
data.contents[0].basicInfo.duration 源视频时长,单位:秒
data.contents[0].basicInfo.coverURL 首图地址,大图
data.contents[0].basicInfo.creationTime 创建时间
data.contents[0].basicInfo.updateTime 更新时间
data.contents[0].basicInfo.size 源文件大小,单位:Bytes
data.contents[0].basicInfo.status 视频状态码
data.contents[0].basicInfo.cateId 分类id, 如1为根目录
data.contents[0].basicInfo.cateName 分类名称
data.contents[0].basicInfo.tags 标签
data.contents[0].basicInfo.uploader 上传者
视频状态码 含义
60/61 已发布
10 等待编码
20 正在编码
50 等待审核
51 审核不通过
-1 已删除

java请求示例

public void testListVideo() {
        String url = "https://api.polyv.net/v3/video/list-video";
        // appId和加密串
        String appId = "xxxxxxx";
        String appSecret = "xxxxxxxxxxxxxxxxxx";

        long cateId = 1594482470001L;
        Map<String, String> params = new HashMap<>();
        params.put("cateId", String.valueOf(cateId));
        params.put("title", "标题1");
        params.put("uploader", "xxx");
        params.put("status", "60");
        params.put("containSubCate", "Y");
        params.put("page", String.valueOf(1));
        params.put("pageSize", String.valueOf(10));
        params.put("sort", "creationTimeDesc");
        // 调用Polyv的工具类方法设置sign
        PolyvTool.setLiveSign(params, appId, appSecret);
        String content = HttpClientUtil.getInstance()
                .sendHttpGet(url + "?" +  PolyvTool.mapJoinEncode(params));
        System.out.println(content);
}

签名规则及工具文件代码

https://dev.polyv.net/2020/liveproduct/l-api/rule/live-api-java-detail/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

批量修改视频所属分类

接口URL

https://api.polyv.net/v3/video/update-category

接口说明

(接口调用有频率限制,详细请查看)

1、接口用于修改视频所属的分类,支持批量修改
2、接口支持https

请求方式

POST

请求参数

参数名 必选 类型 说明
appId string 子账号appId
timestamp long 当前13位当前时间戳,3分钟有效
sign string 签名值,32位大写MD5值
vids string 视频ID串,多个视频ID之间用英文逗号(,)分隔
cateId long 视频分类ID

响应成功JSON示例:

// 修改成功
{
    "requestId": "5ede3d23-45f0-4661-99be-e95d07daf049",
    "code": 200,
    "status": "success",
    "error": "",
    "data": null
}

响应失败JSON示例:

// 时间戳错误
{
    "requestId": "5ede3d23-45f0-4661-99be-e95d07daf049",
    "code": 400,
    "status": "error",
    "error": {
        "code": 100,
        "desc": "invalid timestamp"
    },
    "data": null
}
// appId不正确
{
    "requestId": "5ede3d23-45f0-4661-99be-e95d07daf049",
    "code": 400,
    "status": "error",
    "error": {
        "code": 101,
        "desc": "application not exist"
    },
    "data": null
}
// 子账号不存在
{
    "requestId": "5ede3d23-45f0-4661-99be-e95d07daf049",
    "code": 400,
    "status": "error",
    "error": {
        "code": 102,
        "desc": "user children not exist"
    },
    "data": null
}
// 子账号过期
{
    "requestId": "5ede3d23-45f0-4661-99be-e95d07daf049",
    "code": 400,
    "status": "error",
    "error": {
        "code": 103,
        "desc": "user children expired"
    },
    "data": null
}
// 签名错误
{
    "requestId": "5ede3d23-45f0-4661-99be-e95d07daf049",
    "code": 400,
    "status": "error",
    "error": {
        "code": 104,
        "desc": "invalid signature"
    },
    "data": null
}
// 视频vid错误
{
    "requestId": "5ede3d23-45f0-4661-99be-e95d07daf049",
    "code": 400,
    "status": "error",
    "error": {
        "code": 2000,
        "desc": "invalid vid"
    },
    "data": null
}
// 分类ID不存在
{
    "requestId": "5ede3d23-45f0-4661-99be-e95d07daf049",
    "code": 400,
    "status": "error",
    "error": {
        "code": 3001,
        "desc": "category not exist"
    },
    "data": null
}
// 分类ID错误
{
    "requestId": "5ede3d23-45f0-4661-99be-e95d07daf049",
    "code": 403,
    "status": "error",
    "error": {
        "code": 106,
        "desc": "category limited"
    },
    "data": null
}

字段说明

字段 说明
requestId 本次请求的ID
code 响应http状态码
status 状态
error.code 错误码
error.desc 错误描述
data 返回数据

java请求示例

public void testUpdateVideoCategory() {
        String url = "https://api.polyv.net/v3/video/update-category";
        // appId和加密串
        String appId = "xxxxxxx";
        String appSecret = "xxxxxxxxxxxxxxxxxx";
        String vids = "abc,def";
        long cataId = 1594482470001L;
        Map<String, String> params = new HashMap<>();
        params.put("vids", vids);
        params.put("cateId", String.valueOf(cataId));
        // 调用Polyv的工具类方法设置sign
        PolyvTool.setLiveSign(params, appId, appSecret);
        String content = HttpClientUtil.getInstance()
                .sendHttpPost(url, params);
        System.out.println(content);
}

签名规则及工具文件代码

https://dev.polyv.net/2020/liveproduct/l-api/rule/live-api-java-detail/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

Java点播通用签名方法

一、userId、secretkey值的获取

QQ图片20160621165340
在点播播管理后台,点击API设置,在显示的页面中获取userId、secretkey值。

二、sign生成规则

将请求所需所有参数按照参数名字典顺序排列,连接参数名与参数值,并在尾部加上secretkey,生成SHA1加密值转大写,作为sign。注:目前为null或空串的字段不参与签名

三、Java sign生成示例

public static String getSign(Map<String, String> maps, String secretkey) throws Exception {
        Long ptime = System.currentTimeMillis();
        maps.put("ptime", ptime.toString());
        List<String> keys = new ArrayList<>(maps.keySet());
        List<String> tmp = new ArrayList<>();
        Collections.sort(keys);
        for (String key : keys) {
            if (null != maps.get(key) && maps.get(key).length() > 0) {
                tmp.add(key + "=" + maps.get(key));
            }
        }
        String join = String.join("&", tmp) + secretkey;
        return getSha1(join).toUpperCase();
    }

    public static String getSha1(String input) throws NoSuchAlgorithmException {
        MessageDigest mDigest = MessageDigest.getInstance("SHA1");
        byte[] result = mDigest.digest(input.getBytes(StandardCharsets.UTF_8));
        StringBuilder sb = new StringBuilder();
        for (int b : result) {
            sb.append(Integer.toString((b & 0xff) + 0x100, 16).substring(1));
        }
        return sb.toString();
    }
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

删除视频关联的课件

接口URL

https://api.polyv.net/v2/video/${userid}/deletePPT

接口说明

(接口调用有频率限制,详细请查看)

接口用于删除视频关联课件

返回结果支持格式

JSON

请求方式

POST

请求参数

参数名 必选 类型及范围 说明
userid true string 用户id,路径参数
ptime true string 当前13位毫秒级时间戳,3分钟内有效
sign true string 签名,40位大写的sha1值
vid true string 视频vid

返回结果

{
    "code": 200, 
    "status": "success", 
    "message": "success"
}

失败返回json(不带jsonp)

{
  "code": 400,
  "status": "error",
  "message": "ptime is too old.",
  "data": ""
}

响应说明

错误代码 message 说明
400 sign can not be empty. 加密串为空
400 ptime is too old. 时间戳过期
400 ptime is illegal. 时间戳参数格式不对或者超过当前时间3分钟
400 Could not find user by userid. userid不存在
400 the sign is not right. 加密串不正确
400 该视频尚未关联课件 该视频尚未关联课件

PHP请求示例

<?php
header("Content-type: text/html; charset=utf-8");
$userid="用户id";
$secretkey="用户secretkey";
$params = array(
    'ptime' => time()*1000,
    'vid' => 'b0f704132491a4ba75c4eead81a8aca9_b'
);

# 创建排序后的字典
foreach ($params as $key=>$value){
    $arr[$key] = $key;
}
sort($arr);
$str='';
$length=count($arr);
foreach ($arr as $k => $v) {
    $str = $str.$v.'='.$params[$v];
    if($k < $length-1) {
      $str = $str.'&';
    }
}
$hash=strtoupper(sha1($str.$secretkey));

$params['sign']=$hash;
$url="http://api.polyv.net/v2/video/${userid}/deletePPT?".http_build_query($params);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
//打印获得的数据
print_r($output);
?>

签名规则:

将非空的请求参数按照参数名字典顺序排列,连接参数名与参数值,并在尾部加上secretkey,生成40位大写SHA1值,作为sign。 以下是示例过程:

1、请求参数为

ptime = "1492591990000"
vid = "382839019131be68715e9455f8d0971a_3"
format = "json"

2、将请求参数按照参数名字典顺序排列

format = "json"
ptime = "1492591990000"
vid = "382839019131be68715e9455f8d0971a_3"

3、连接字符串
连接参数名与参数值,并在尾部加上secretkey(secretkey的值为tIQp4ATe9Z),如下:

format=json&ptime=1492591990000&vid=382839019131be68715e9455f8d0971a_3tIQp4ATe9Z

4、生成签名sign

50BF9B165630A8047EB1D17D95A469CC51FF754E
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

查询视频关联的课件

接口URL

https://api.polyv.net/v2/video/${userid}/getPPTPage

接口说明

(接口调用有频率限制,详细请查看)

接口用于获取视频关联课件信息

返回结果支持格式

JSON

请求方式

GET

请求参数

参数名 必选 类型及范围 说明
userid true string 用户id,路径参数
ptime true string 当前13位毫秒级时间戳,3分钟内有效
sign true string 签名,40位大写的sha1值
vid true string 视频vid

返回结果

{
    "code": 200, 
    "status": "success", 
    "message": "success", 
    "data": [
        {
            "pageNo": 1, 
            "pageTitle": "Java锁事", 
            "pageImage": "https://doc-oss.polyv.net/images/2020/04/913dbde44242910b2681a8183a354a71160b03c/913dbde44242910b26851a8183a354a71160b03c_0000.jpeg", 
            "pageThumbnail": "https://doc-oss.polyv.net/images/2020/04/913dbde44242910b2681a8183a354a71160b03c/913dbde44242910b26851a8183a354a71160b03c_0000_s.jpeg", 
            "showTime": 0
        }
    ]
}

失败返回json(不带jsonp)

{
  "code": 400,
  "status": "error",
  "message": "ptime is too old.",
  "data": ""
}

字段描述

字段名称 描述
pageNo 课件页码
pageTitle 页面标题
pageImage 转码后的图片URL
pageThumbnail 缩略图URL
showTime 视频播放到第几秒时显示该页PPT,单位:秒

响应说明

错误代码 message 说明
400 sign can not be empty. 加密串为空
400 ptime is too old. 时间戳过期
400 ptime is illegal. 时间戳参数格式不对或者超过当前时间3分钟
400 Could not find user by userid. userid不存在
400 the sign is not right. 加密串不正确
400 该视频尚未关联课件 该视频尚未关联课件

PHP请求示例

<?php
header("Content-type: text/html; charset=utf-8");
$userid="用户id";
$secretkey="用户secretKey";
$params = array(
    'ptime' => time()*1000,
    'vid' => 'b0f704132491a4ba75c4eead81a8aca9_b'
);

# 创建排序后的字典
foreach ($params as $key=>$value){
    $arr[$key] = $key;
}
sort($arr);
$str='';
$length=count($arr);
foreach ($arr as $k => $v) {
    $str = $str.$v.'='.$params[$v];
    if($k < $length-1) {
      $str = $str.'&';
    }
}
$hash=strtoupper(sha1($str.$secretkey));

$params['sign']=$hash;
$url="http://api.polyv.net/v2/video/${userid}/getPPTPage?".http_build_query($params);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
//打印获得的数据
print_r($output);
?>

签名规则:

将非空的请求参数按照参数名字典顺序排列,连接参数名与参数值,并在尾部加上secretkey,生成40位大写SHA1值,作为sign。 以下是示例过程:

1、请求参数为

ptime = "1492591990000"
vid = "382839019131be68715e9455f8d0971a_3"
format = "json"

2、将请求参数按照参数名字典顺序排列

format = "json"
ptime = "1492591990000"
vid = "382839019131be68715e9455f8d0971a_3"

3、连接字符串
连接参数名与参数值,并在尾部加上secretkey(secretkey的值为tIQp4ATe9Z),如下:

format=json&ptime=1492591990000&vid=382839019131be68715e9455f8d0971a_3tIQp4ATe9Z

4、生成签名sign

50BF9B165630A8047EB1D17D95A469CC51FF754E
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

上传课件

接口URL

http://api.polyv.net/v2/video/{userid}/uploadPPT/asyn

接口说明

(接口调用有频率限制,详细请查看)

  1. 上传课件,支持ppt、pptx及pdf文件格式。
  2. 接口只返回上传结果,课件转换结果需通过事件回调获取,详见:回调通知说明

返回结果支持格式

JSON

请求方式

POST

请求数限制

TRUE

请求参数

参数名 必选 类型及范围 说明
vid true string 视频ID
sign true string 签名,40位大写的sha1值
ptime true string 当前13位毫秒级时间戳,3分钟内有效
format false string 默认返回json格式,如果format=xml返回xml格式
jsonp false string 例如,正常情况{error:0,data:””},加 jsonp=a后返回a({error:0,data:””})
courseware true file 上传ppt文件

JSON示例

成功数据返回

{
    "code": 200,
    "status": "success",
    "message": "success",
    "data": "ppt上传成功."
}

返回错误json

{
    "code":400,
    "status":"error",
    "message":"sign can not be empty.",
    "data":""
}

上传文件大小不能超过50M

{
    "code":400,
    "status":"error",
    "message":"ppt文件不能超过50M",
    "data":""
}

文件类型错误

{
    "code":400,
    "status":"error",
    "message":"文件类型必须为ppt、pptx或pdf",
    "data":""
}

当视频已关联课件,并且在转码中,则不允许上传。

{
    "code":400,
    "status":"error",
    "message":"当前vid关联的课件正在转码中,请稍后再试。",
    "data":""
}

PHP示例代码

<?php
$userid="2d939377c2";
$vid="2d939377c272967efcdb812a1dad8c5c_2";
$ptime=time()*1000;
$secretkey="3OmoLbTlHu";
$str="ptime=$ptime&vid=$vid".$secretkey;
$sign=strtoupper(sha1($str));
?>
<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8">
   <title>上传PPT异步转换</title>
</head>
<body>
   <form action="http://api.polyv.net/v2/video/<?php echo $userid; ?>/uploadPPT/asyn" method="post" enctype='multipart/form-data'>
     <input type="hidden" name="ptime" value="<?php echo $ptime; ?>">
     <input type="hidden" name="vid" value="<?php echo $vid; ?>">
     <input type="hidden" name="sign" value="<?php echo $sign; ?>">
     ppt:<input type="file" name="courseware" id="fileupload1" /><br>
   <input type="submit" value="点击上传"/>
 </form>
</body>
</html>

签名规则

将非空的请求参数按照参数名字典顺序排列,连接参数名与参数值,并在尾部加上secretkey,生成40位大写SHA1值,作为sign。 以下是示例过程:

1、请求参数为

"ptime" = "1493188350000"
"vid" = "3828390191de2b3fd3467c36187aac08_3"

2、将请求参数按照参数名字典顺序排列

"ptime" = "1493188350000"
"vid" = "3828390191de2b3fd3467c36187aac08_3"

3、连接字符串
连接参数名与参数值,并在尾部加上secretkey(secretkey的值为tIQp4ATe9Z),如下:

ptime=1493188350000&vid=3828390191de2b3fd3467c36187aac08_3tIQp4ATe9Z

4、生成签名sign

4CE511177FD5A8A3E56EB31A20776C0DE157519A
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

回调通知使用说明

功能说明

在视频相关处理环节(如上传、转码、审核)完成后,系统会将处理结果提交到配置的回调地址,通知用户处理进展和状态,以便进行其他业务操作。

回调配置

登录云点播管理后台,在 设置 --> 回调设置 配置回调URL。
image-20200224093654793

事件类型

目前支持的事件通知类型参考如下:

一、视频上传完成

点播服务端接收完上传的视频文件后,会产生视频上传完成事件。

HTTP请求方式为:GET。

事件内容

名称 描述
sign 系统签名,由“upload”字符串拼接vid、secretkey并做MD5运算生成。例如,vid的值为e2e84a738302f20a4f6eb202976f5c63_e,secretkey的值为7UagtQOq2A,将字符串uploade2e84a738302f20a4f6eb202976f5c63_e7UagtQOq2A进行MD5计算,得到sign的值为:b245e3e65aa45b60dc02337b5cd914a7
type 回调类型:upload 已上传,invalidVideo 不合规格视频(当上传的视频的信息无法被系统分析时,判断为不合规格视频)。
vid 视频ID
state 用户自定义数据,在上传视频接口上传SDK中,如果提交了该字段,会在事件完成回调时透传返回。

回调示例

http://demo.polyv.net/callback?sign=b245e3e65aa45b60dc02337b5cd914a7&type=upload&vid=e2e84a738302f20a4f6eb202976f5c63_e

二、异步上传处理失败

当使用管理后台的视频同步功能或者使用异步方式上传视频,处理失败时会产生此事件。

当收到此回调时,说明远程上传视频失败,需检查源视频的URL地址。

HTTP请求方式为:GET。

事件内容

名称 描述
sign 系统签名,由type、fileUrl、secretkey按顺序拼接并做MD5运算生成。例如:fileUrl 的值为 "http://a.mp4" , secretkey 的值为 kXmHMLeX6M ,将字符串 async_uploadhttp://a.mp4kXmHMLeX6M 进行MD5计算,得到 c2f168b96d882c1a03f1021c29208916
type 回调类型,返回固定值:async_upload。
fileUrl 用户提交的需要远程上传的视频URL地址
title 用户提交的需要远程上传的视频标题
state 用户自定义数据,在上传远程视频接口中,如果提交了该字段,会在事件完成回调时透传返回。

回调示例

http://demo.polyv.net/callback?sign=c2f168b96d882c1a03f1021c29208916&fileUrl=http://a.mp4&type=async_upload&title=test

三、视频同步失败

当视频上传成功后,系统需要把上传至边缘节点的视频源文件同步回中心节点,同步失败时会产生此事件。

HTTP请求方式为:GET。

事件内容

名称 描述
sign 系统签名,由type、vid、secretkey按顺序拼接并做MD5运算生成。
type 回调类型,返回固定值:videoSyncedFail。
vid 视频ID

回调示例

http://demo.polyv.net/callback?sign=b245e3e65aa45b60dc02337b5cd914a7&type=videoSyncedFail&vid=e2e84a738302f20a4f6eb202976f5c63_e

四、视频单个清晰度转码完成

视频的某种格式的某个清晰度(如:高清的mp4格式)转码完成时会产生此事件。

视频任一清晰度转码完成并审核通过后即可播放(视频状态会更新为“已发布”,如果其它清晰度的转码还未完成,播放器会自动选择已完成转码的清晰度)。

HTTP请求方式为:GET。

事件内容

名称 描述
sign 系统签名,由type、format、vid、df、secretkey按顺序拼接并做MD5运算生成,例如type的值为encode,format的值为flv,vid的值为e2e84a738302f20a4f6eb202976f5c63_e,df的值为1,secretkey的值为7UagtQOq2A,将字符串encodeflve2e84a738302f20a4f6eb202976f5c63_e17UagtQOq2A进行MD5计算,得到3c3eab358901ad19bc59b5df7704ed48
type 回调类型:encode 转码完成,encode_failed 转码失败
format 转码后的视频格式,非加密视频默认转码出flv、mp4格式;加密视频默认转码出pdx、m3u8格式。
vid 视频ID
df 视频清晰度:1 流畅,2 高清,3 超清

回调示例

http://demo.polyv.net/callback?sign=3c3eab358901ad19bc59b5df7704ed48&type=encode&format=mp4&vid=e2e84a738302f20a4f6eb202976f5c63_e&df=1

五、视频全部清晰度转码完成

视频所有清晰度转码完成会产生此事件。 一般和视频的最后一个转码完成的清晰度的事件,同时触发。

由于返回内容较多,该回调的请求方式为POST。并且,除了sign之外的其它回调时间内容,是放在请求体 (request body) 中的,而非放在URL中。

事件内容

名称 描述
sign 系统签名,由eventType、vid、secretkey按顺序拼接并做MD5运算生成。注:sign不在POST Body中,而是作为回调URL中的一个参数返回
eventType 事件类型,取固定值:TranscodeComplete
status 视频转码状态,取值:success 成功,fail 失败 。只要有一个清晰度转码成功即返回success。
vid 视频ID
videoInfos 视频转码详情

videoInfos为数组,每个视频流的信息字段如下:

名称 描述
status 单个清晰度视频转码状态,取值:success 成功,fail 失败
format 视频格式
df 视频清晰度:1 流畅,2 高清,3 超清
bitrate 视频码率
duration 视频时长,单位:秒
size 视频大小,单位:Byte
resolution 视频分辨率

回调示例

Content-Type:application/json
Request URL:http://demo.polyv.net/callback?sign=3c3eab358901ad19bc59b5df7704ed48
HTTP POST Body:
{
  "eventType": "TranscodeComplete",
  "status": "success"
  "vid": "812a792458101ebf5ff6a1e5e76e1c58_8",
  "videoInfos": [
    {
      "duration": 883,
      "df": 1,
      "size": 15499011,
      "format": "mp4",
      "bitrate": 256,
      "resolution": "480x360",
      "status": "success"
    },
    {
      "duration": 883,
      "df": 2,
      "size": 27574109,
      "format": "mp4",
      "bitrate": 512,
      "resolution": "848x636",
      "status": "success"
    }
  ]
}

六、视频审核完成

视频任一清晰度转码完成后需经过智能审核或人工审核,只有审核通过的视频才可播放。审核完成后会产生此事件。

HTTP请求方式为:GET。

事件内容

名称 描述
sign 系统签名,由“manage”字符串拼接type、vid、secretkey并做MD5运算生成。例如,type的值为pass,vid的值为e2e84a738302f20a4f6eb202976f5c63_e,secretkey的值为7UagtQOq2A,将字符串managepasse2e84a738302f20a4f6eb202976f5c63_e7UagtQOq2A进行MD5计算,得到8ebb91d444ce53fafa3256670fb65d84
type 回调类型:pass 审核通过 nopass 审核不通过
vid 视频ID

回调示例

http://demo.polyv.net/callback?type=pass&vid=e2e84a738302f20a4f6eb202976f5c63_e&sign=8ebb91d444ce53fafa3256670fb65d84

七、视频删除完成

当视频文件被删除至回收站或者从回收站彻底删除时,会产生此事件。

HTTP请求方式为:POST。

事件内容

名称 描述
sign 系统签名,由eventType、secretkey按顺序拼接并做MD5运算生成:md5("DeleteMediaComplete"+secretKey) 。
注:sign不在POST Body中,而是作为回调URL中的一个参数返回。
eventType 回调类型,取固定值:DeleteMediaComplete
operateTime 操作时间,例如:2020-01-20 07:49:17
operator 操作者账号
status 操作状态,success 成功
deleteType 删除方式:MoveToTrash 删除到回收站 DeletePermanently 永久删除
vids 被删除视频的vid,批量删除时返回多个vid

回调示例

Content-Type:application/json
Request URL:http://demo.polyv.net/callback?sign=3c3eab358901ad19bc59b5df7704ed48
HTTP POST Body:
{
  "eventType": "DeleteMediaComplete",
  "operateTime": "2020-01-20 07:49:17",
  "operator": "aaa@polyv.net",
  "status": "success",
  "deleteType": "MoveToTrash",
  "vids": "e2e84a738302f20a4f6eb202976f5c63_e,e2e84a738302f20a4f6eb202976f5c63_f"
}

八、视频内容安全审核不通过

当视频经过AI智能扫描,发现有确认或疑似违规内容时,会产生此事件。

HTTP请求方式为:POST。

事件内容

名称 描述
sign 系统签名,由eventType、secretkey按顺序拼接并做MD5运算生成,md5("AIContentScanNotPassed"+secretKey)。
注:sign不在POST Body中,而是作为回调URL中的一个参数返回
eventType 回调类型,取固定值:AIContentScanNotPassed
scanSource 扫描来源,video 视频 ppt 三分屏课件
vid 视频ID
scanResults 扫描结果数组,包含一个或多个扫描结果,详见下表:

扫描结果信息如下:

名称 描述
imageUrl 检测图片的URL
scene 检测场景:porn 鉴黄 terrorism 暴恐涉政识别
label 检测结果分类,当scene=porn时,label取值为:
- normal 正常图片
- sexy 性感图片
- porn 色情图片
当scene为terrorism时,label取值为:
- normal 正常图片
- politics 涉政图片
- bloody 血腥图片
- weapon 武器
- others 其它
suggestion 检测建议:review 需人工复审;block 确认违规
rate 检测结果为该分类的概率,取值范围[0.00-100.00]

回调示例

Content-Type:application/json
Request URL:http://demo.polyv.net/callback?sign=6c5b14548fb9c06ee1b987debf88f639
HTTP POST Body:
{
  "eventType": "AIContentScanNotPassed",
  "scanSource": "video",
  "vid": "8205ac89d3699e1fc08cd8f9b8486748",
  "scanResults": [
    {
      "imageUrl": "http://img.videocc.net/uimage/8/8205ac89d3/8/8205ac89d3699e1fc08cd8f9b8486748_0_b.jpg",
      "scene": "porn",
      "label": "sexy",
      "suggestion": "block",
      "rate": 93.26
    }
  ]
}

九、课件转换完成

当上传的课件(PPT、PDF文件)转换图片完成时,会产生此事件。

HTTP请求方式为:POST。

事件内容

名称 描述
sign 系统签名,由eventType、secretkey按顺序拼接并做MD5运算生成,md5("CoursewareConvertComplete"+secretKey)。
注:sign不在POST Body中,而是作为回调URL中的一个参数返回
eventType 回调类型,取固定值:CoursewareConvertComplete
status success 转换成功, convertFailed 转换失败,auditNotPassed 内容审核不通过
vid 视频ID
convertedImages 转换后的图片,包含一个或多个图片信息,当转换失败时不返回。详见下表:

转换后的图片信息如下:

名称 描述
pageNo 课件页码,从1开始
pageTitle 课件页标题,若PPT文件中未设置页标题,则值为空
pageImage 转换后的图片地址
pageThumbnail 缩略图地址

回调示例

Content-Type:application/json
Request URL:http://demo.polyv.net/callback?sign=de9d5652a5682718c5662499c5e4e5bb
HTTP POST Body:
{
  "eventType": "CoursewareConvertComplete",
  "status": "success",
  "vid": "f13e995735d99df23a7728be335e7a41_f",
  "convertedImages": [
    {
      "pageNo": 1,
      "pageTitle": "第一页的标题",
      "pageImage": "https://doc-oss.polyv.net/images/2020/04/b0a8a0ed3425c117e6552cd027b6eb4b31243c9/b0a8a0e6d3425c117e6552cd027b6eb4b31243c9_0000.jpeg",
      "pageThumbnail": "https://doc-oss.polyv.net/images/2020/04/b0a8a0ed3425c117e6552cd027b6eb4b31243c9/b0a8a0e6d3425c117e6552cd027b6eb4b31243c9_0000_s.jpeg"
    },
    {
      "pageNo": 2,
      "pageTitle": "第二页的标题",
      "pageImage": "https://doc-oss.polyv.net/images/2020/04/b0a8a0ed3425c117e6552cd027b6eb4b31243c9/b0a8a0e6d3425c117e6552cd027b6eb4b31243c9_0001.jpeg",
      "pageThumbnail": "https://doc-oss.polyv.net/images/2020/04/b0a8a0ed3425c117e6552cd027b6eb4b31243c9/b0a8a0e6d3425c117e6552cd027b6eb4b31243c9_0001_s.jpeg"
    }
  ]
}
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

恢复回收站视频API接口

接口URL

https://api.polyv.net/v2/video/{userId}/recover-videos

接口说明

(接口调用有频率限制,详细请查看)

该接口恢复点播回收站中的视频,接口支持批量恢复,一次性最多支持恢复100个视频。

返回结果支持格式

JSON

请求方式

POST

请求参数

参数名 必选 类型及范围 说明
userId true string 用户id,路径参数
ptime true string 当前13位毫秒级时间戳,3分钟内有效
sign true string 签名,40位大写的sha1值
vids true string 点播视频vid

返回结果

{
    "code": 200,
    "status": "success",
    "message": "success",
    "data": ""
}

失败返回json

// 时间戳过期:
{
  "code": 400,
  "status": "error",
  "message": "ptime is too old.",
  "data": ""
}
// 视频vids为空
{
    "code": 400,
    "status": "error",
    "message": "vids can't be empty",
    "data": ""
}
// vids数量超过100个
{
    "code": 400,
    "status": "error",
    "message": "vids limits 100",
    "data": ""
}
// 签名报错
{
    "code": 400,
    "status": "error",
    "message": "the sign is not right.",
    "data": ""
}

响应参数说明

字段 说明 类型 schema
code 响应码 int32
status 响应状态:success/error/fail string
message 错误信息说明 string
data 响应数据

响应错误说明

错误代码 message 说明
400 sign can not be empty. 加密串为空
400 ptime is too old. 时间戳过期
400 ptime is illegal. 时间戳参数格式不对或者超过当前时间3分钟
400 Could not find user by userId. userId不存在
400 the sign is not right. 签名不正确
400 vids can't be empty 视频vid为空
400 vids limits 100 vids数量超过100个

PHP请求示例

<?php

$userId="xxxxxx";
$secretkey="xxxxxx";
$url = 'http://api.polyv.net/v2/video/'.$userId.'/recover-videos';
$header = array('application/x-www-form-urlencoded');
$data = array(
    "ptime" => time()*1000,
    "vids" => "xxxxxx_x",
);
ksort($data);
$str='';
foreach ($data as $k => $v) {
    $str = $str.$k.'='.$v.'&';
}
$str=substr($str,0,strlen($str)-1);
$str=$str.$secretkey;
$hash=strtoupper(sha1($str));
$data["sign"]=$hash;
// 请求接口
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$sResult = curl_exec($ch);
if($sError=curl_error($ch)){
    die($sError);
}
curl_close($ch);
//打印获得的数据
print_r($sResult);
?>

签名规则:

将非空的请求参数按照参数名字典顺序排列,连接参数名与参数值,并在尾部加上secretkey,生成40位大写SHA1值,作为sign。 以下是示例过程:

1、请求参数为

ptime = "1492591990000"
vid = "382839019131be68715e9455f8d0971a_3"
format = "json"

2、将请求参数按照参数名字典顺序排列

format = "json"
ptime = "1492591990000"
vid = "382839019131be68715e9455f8d0971a_3"

3、连接字符串
连接参数名与参数值,并在尾部加上secretkey(secretkey的值为tIQp4ATe9Z),如下:

format=json&ptime=1492591990000&vid=382839019131be68715e9455f8d0971a_3tIQp4ATe9Z

4、生成签名sign

50BF9B165630A8047EB1D17D95A469CC51FF754E
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

创建视频弹幕接口

接口URL

https://api.polyv.net/v2/danmu/{userId}/add

接口说明

(接口调用有频率限制,详细请查看)

上传点播视频弹幕接口,弹幕暂不支持特殊字符与表情符。

返回结果支持格式

JSON

请求方式

POST

请求参数

参数名 必选 类型及范围 说明
userId true string 用户id,路径参数
ptime true string 当前13位毫秒级时间戳,3分钟内有效
sign true string 签名,40位大写的sha1值
vid true string 点播视频vid
msg true string 弹幕信息
time true string 弹幕出现的时间,格式 HH:mm:ss
sessionId false string 场次号
param2 false string 自定义参数
fontSize false int32 字体大小,默认:18
fontMode false string 出现位置,顶部:top,底部:bottom,滚动:roll(默认)
fontColor false string 字体颜色,格式0xFFFFFF, 默认:0xFFFFFF

返回结果

// 成功结果
{
    "code": 200,
    "status": "success",
    "message": "success",
    "data": {
        "Id": 1115759
    }
}

失败返回json

// 时间戳过期:
{
  "code": 400,
  "status": "error",
  "message": "ptime is too old.",
  "data": ""
}
// 签名报错
{
    "code": 400,
    "status": "error",
    "message": "the sign is not right.",
    "data": ""
}
// 必须参数为空
{
    "code": 400,
    "status": "error",
    "message": "vid, msg and time should not be empty.",
    "data": ""
}
// 弹幕时间格式不对
{
    "code": 400,
    "status": "error",
    "message": "Wrong time format.",
    "data": ""
}
// 非法参数
{
    "code": 400,
    "status": "error",
    "message": "font size illegal",
    "data": ""
}
// 视频不存在
{
    "code": 400,
    "status": "error",
    "message": "vid doesn't exist.",
    "data": ""
}

响应参数说明

字段 说明 类型 schema
code 响应码 int32
status 响应状态:success/error/fail string
message 错误信息说明 string
data 响应数据 object
data.Id 弹幕Id int32

响应错误说明

错误代码 message 说明
400 sign can not be empty. 加密串为空
400 ptime is too old. 时间戳过期
400 ptime is illegal. 时间戳参数格式不对或者超过当前时间3分钟
400 Could not find user by userId. userId不存在
400 the sign is not right. 签名不正确
400 vid doesn't exist. 视频vid为空
400 vid, msg and time should not be empty. 必传参数为空
400 Wrong time format. 弹幕时间格式不对
400 font size illegal 字体格式非法

PHP请求示例

<?php

$userId="xxxxxxxxxxx";
$secretkey="xxxxxxxxxxx";
$url = 'http://api.polyv.net/v2/danmu/'.$userId.'/add';
$header = array('application/x-www-form-urlencoded');
$data = array(
    "ptime" => time()*1000,
    "msg" => "弹幕......",
    "vid" => "xxxxxxxxxxx",
    "time" => "00:01:10"
);
ksort($data);
$str='';
foreach ($data as $k => $v) {
    $str = $str.$k.'='.$v.'&';
}
$str=substr($str,0,strlen($str)-1);
$str=$str.$secretkey;
$hash=strtoupper(sha1($str));
$data["sign"]=$hash;
// 请求接口
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$sResult = curl_exec($ch);
if($sError=curl_error($ch)){
    die($sError);
}
curl_close($ch);
//打印获得的数据
print_r($sResult);
?>

签名规则:

将非空的请求参数按照参数名字典顺序排列,连接参数名与参数值,并在尾部加上secretkey,生成40位大写SHA1值,作为sign。 以下是示例过程:

1、请求参数为

ptime = "1492591990000"
vid = "382839019131be68715e9455f8d0971a_3"
format = "json"

2、将请求参数按照参数名字典顺序排列

format = "json"
ptime = "1492591990000"
vid = "382839019131be68715e9455f8d0971a_3"

3、连接字符串
连接参数名与参数值,并在尾部加上secretkey(secretkey的值为tIQp4ATe9Z),如下:

format=json&ptime=1492591990000&vid=382839019131be68715e9455f8d0971a_3tIQp4ATe9Z

4、生成签名sign

50BF9B165630A8047EB1D17D95A469CC51FF754E
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

上传点播视频字幕文件

接口URL

https://api.polyv.net/v2/video/{userId}/srt/upload

接口说明

(接口调用有频率限制,详细请查看)

上传点播视频字幕接口,改接口会自动检测字幕语言。

返回结果支持格式

form-data

请求方式

POST

请求参数

参数名 必选 类型及范围 说明
userId true string 用户id,路径参数
ptime true string 当前13位毫秒级时间戳,3分钟内有效
sign true string 签名,40位大写的sha1值
vid true string 点播视频vid
title true string 字幕名称
file true file 字幕文件,支持utf-8编码
asDefault false string 是否作为默认字幕,Y:是,N:否
language false string 语言,默认自动检测,支持语言:中文、繁体中文 、英语、日语、韩语、法语、德语、俄语、西班牙语、阿拉伯语、葡萄牙语、其他

返回结果

{
    "code": 200,
    "status": "success",
    "message": "success",
    "data": null
}

失败返回json

// 时间戳过期:
{
  "code": 400,
  "status": "error",
  "message": "ptime is too old.",
  "data": ""
}
// 文件名称为空
{
    "code": 400,
    "status": "error",
    "message": "title can't be empty",
    "data": ""
}
// 文件为空
{
    "code": 400,
    "status": "error",
    "message": "file can't be empty",
    "data": ""
}
// 签名报错
{
    "code": 400,
    "status": "error",
    "message": "the sign is not right.",
    "data": ""
}

响应参数说明

字段 说明 类型 schema
code 响应码 int32
status 响应状态:success/error/fail string
message 错误信息说明 string
data 响应数据

响应错误说明

错误代码 message 说明
400 sign can not be empty. 加密串为空
400 ptime is too old. 时间戳过期
400 ptime is illegal. 时间戳参数格式不对或者超过当前时间3分钟
400 Could not find user by userId. userId不存在
400 the sign is not right. 签名不正确
400 vid can't be empty 视频vid为空
400 file can't be empty 视频文件不能为空
400 title can't be empty 标题为空
400 language is not support 不支持的语言

PHP请求示例

<?php

$userId="xxxxxx";
$secretkey="xxxxxx";
$url = 'http://api.polyv.net/v2/video/'.$userId.'/srt/upload';
$header = array('Content-type: multipart/form-data');
$data = array(
    "ptime" => time()*1000,
    "title" => "xxxxx",
    "vid" => "xxxxxx_x",
);
ksort($data);
$str='';
foreach ($data as $k => $v) {
    $str = $str.$k.'='.$v.'&';
}
$str=substr($str,0,strlen($str)-1);
$str=$str.$secretkey;
$hash=strtoupper(sha1($str));
$data["sign"]=$hash;
$data['file']='@/home/moshunwei/english.srt';
// 请求接口
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$sResult = curl_exec($ch);
if($sError=curl_error($ch)){
    die($sError);
}
curl_close($ch);
//打印获得的数据
print_r($sResult);
?>

签名规则:

将非空的请求参数按照参数名字典顺序排列,连接参数名与参数值,并在尾部加上secretkey,生成40位大写SHA1值,作为sign。 以下是示例过程:

1、请求参数为

ptime = "1492591990000"
vid = "382839019131be68715e9455f8d0971a_3"
format = "json"

2、将请求参数按照参数名字典顺序排列

format = "json"
ptime = "1492591990000"
vid = "382839019131be68715e9455f8d0971a_3"

3、连接字符串
连接参数名与参数值,并在尾部加上secretkey(secretkey的值为tIQp4ATe9Z),如下:

format=json&ptime=1492591990000&vid=382839019131be68715e9455f8d0971a_3tIQp4ATe9Z

4、生成签名sign

50BF9B165630A8047EB1D17D95A469CC51FF754E
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...