新增视频分类

接口URL

https://api.polyv.net/v3/category/add

接口说明

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

1、接口用于新增视频分类
2、接口支持https

请求方式

POST

请求参数

参数名 必选 类型 说明
appId string 子账号appId
timestamp long 当前13位当前时间戳,3分钟有效
sign string 签名值,32位大写MD5值
name string 分类名
parentId long 父分类id, 默认位1, 放在根目录下

响应成功JSON示例:

// 添加分类成功
{
    "requestId": "5ede3d23-45f0-4661-99be-e95d07daf049",
    "code": 200,
    "status": "success",
    "error": null,
    "data": 1594807635977
}

响应失败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": 3000,
        "desc": "没有填写栏目名称"
    },
    "data": null
}
// 父分类不能为空
{
    "requestId": "5ede3d23-45f0-4661-99be-e95d07daf049",
    "code": 400,
    "status": "error",
    "error": {
        "code": 3001,
        "desc": "category not exist"
    },
    "data": null
}
// 子账号没有权限在该目录下创建分类
{
    "requestId": "5ede3d23-45f0-4661-99be-e95d07daf049",
    "code": 400,
    "status": "error",
    "error": {
        "code": 3002,
        "desc": "子账号没有权限在该目录下创建分类"
    },
    "data": null
}
{
    "requestId": "df5750d9-27b0-4390-ad7c-f0d1f86d0d14",
    "code": 400,
    "status": "error",
    "error": {
        "code": 3003,
        "desc": "已存在同名的视频分类"
    },
    "data": null
}

字段说明

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

java请求示例

public void testAddCategory() {
        String url = "https://api.polyv.net/v3/category/add";
        // appId和加密串
        String appId = "xxxxxxx";
        String appSecret = "xxxxxxxxxxxxxxxxxx";

        long cataId = 1594482470001L;
        Map<String, String> params = new HashMap<>();
        params.put("name", "name");
        params.put("parentId", 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...

批量修改视频所属分类

接口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...

VRM10.0 视频版权保护方案介绍

保利威一直在致力于提升视频播放的安全性,保护您的视频资源。VRM(Video Rights Management 视频版权管理)解决方案也已经发展到了10.0的版本。新版本的VRM,包含了Web端HTML5播放器和原生的iOS、Android SDK的安全性重大提升。

Adobe公司已经宣布2020年底停止Flash的更新与支持,Chrome、Firefox等主流浏览器厂商也宣布将在2020年底彻底移除Flash在其浏览器上的应用,这意味着Flash时代已接近结束,Web端的视频播放已逐渐被HTML5等技术替代。VRM10.0版本,最重要的一项升级内容就是大大提升了HTML5播放器的安全性。

VRM10.0版本目前处于公测阶段,建议有需要的用户升级使用。

Web端HTML5播放器升级指引

希望使用VRM10.0版本播放器的用户,只需替换Web播放器的引用地址为如下地址即可:

<script src='https://player.polyv.net/resp/vod-player-drm/latest/player.js'></script>

播放器支持的特性、参数、接口和事件都与线上播放器一致。

注意:由于新版Web播放器采用了较新的技术,而这些技术在一些老版本浏览器上是不支持的。所以VRM10.0版本的播放器与线上播放器的浏览器兼容性有所不同。

桌面浏览器/播放器 线上PC H5播放器 VRM10.0版本播放器
Chrome √(57+)
Firefox √ (52+)
Edge √ (16+)
IE IE11+ for Windows 8.1+ 不支持
Safari √ (11+)

iOS/Android SDK 升级指引

新版本的iOS/Android SDK默认会应用VRM10.0的安全机制,所以用户只需升级SDK版本即可,代码上不需做任何改动。应用VRM10.0安全机制的SDK版本如下:

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

Java点播通用签名方法

一、userId、secretkey值的获取

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

二、sign生成规则

将请求所需所有参数按照参数名字典顺序排列,连接参数名与参数值,并在首尾加上secretkey,生成SHA1加密值转大写,作为sign。

三、Java sign生成示例

public static String getSign(Map<String, String> maps, String secureKey) 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) + secureKey;
        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...

如何正确使用SDK加密串

保利威点播SDK需要用户提供 useridreadtokenwritetokensecretkey几个配置信息才能解密播放视频。基于安全性考虑,建议这些参数保存在服务端,APP 在启动时从服务端获取并配置。

为防止 APP 端被嗅探这几个参数,需要对传输的内容进行加密。因此,就有了 SDK加密串——在服务器端对以上四个参数进行加密,APP端对应的进行解密。开发者应当设计自己的加解密方式,并且APP端应通过https协议请求服务端接口。

为方便快速集成和调试SDK的功能,保利威管理后台提供了一种固定加密方式的临时SDK加密串,请勿直接在正式环境使用。

点播SDK集成文档详见:

正式使用解决方案

一、设计自己的加解密方式。

服务端Java示例:

   /*该示例采用AES加密算法,开发者也可以选择使用不同的加密算法,并在APP端做对应的解密。*/
    String plainString = userid + "," + secretkey + "," + readtoken + "," + writetoken;
    String key = "1234567812345678"; // 加密密钥
    String iv = "1234567812345678"; // 加密向量

    Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
    int blockSize = cipher.getBlockSize();

    byte[] dataBytes = plainString.getBytes();
    int plaintextLength = dataBytes.length;
    if (plaintextLength % blockSize != 0) {
        plaintextLength = plaintextLength + (blockSize - (plaintextLength % blockSize));
    }

    byte[] plaintext = new byte[plaintextLength];
    System.arraycopy(dataBytes, 0, plaintext, 0, dataBytes.length);

    SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");
    IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());

    cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec);
    byte[] encrypted = cipher.doFinal(plaintext);
    String baseString = Base64.encode(encrypted);
    System.out.println(baseString);

服务器端 PHP 加密示例:

<?php
   /*该示例采用AES加密算法,开发者也可以选择使用不同的加密算法,并在APP端做对应的解密。*/
    $privateKey = "1234567812345678";// 加密密钥
    $iv = "1234567812345678"; // 加密向量

    $userid = "你的userid";
    $secretkey = "你的secretkey";
    $readtoken = "你的readtoken";
    $writetoken = "你的writetoken";
    $plainstring = $userid.",".$secretkey.",".$readtoken.",".$writetoken;

    $str_padded = $plainstring;
    if (strlen($str_padded) % 16) {
        $str_padded = str_pad($str_padded, strlen($str_padded) + 16 - strlen($str_padded) % 16, "\0");
    }

    $encrypted = openssl_encrypt($str_padded, 'aes-128-cbc', $privateKey, OPENSSL_RAW_DATA, $iv);
    echo(base64_encode($encrypted));
?>

Android 端解密和配置

public class PolyvApplication extends Application {
    @Override
    public void onCreate() {
        new LoadConfigTask().execute();
    }

    private class LoadConfigTask extends AsyncTask<String, String, String> {

    @Override
    protected String doInBackground(String... params) {
        String config = PolyvSDKUtil.getUrl2String("https://demo.polyv.net/demo/appkey.php");
        if (TextUtils.isEmpty(config)) {
        try {
            throw new Exception("没有取到数据");
        } catch (Exception e) {
            e.printStackTrace();
        }
        }

        return config;
    }

    @Override
    protected void onPostExecute(String config) {
        PolyvSDKClient client = PolyvSDKClient.getInstance();
        String iv = "1234567812345678"; // 加密密钥
        String aeskey = "1234567812345678"; // 加密向量
        client.settingsWithConfigString(config, aeskey, iv);
      /*
       *开发者若使用其它加密算法,可自行解密并使用
       *client.settingsWithUserid(String userid, String secretkey, String readtoken, String writetoken)方法进行初始化。
      */

    }
    }
}

iOS 端解密和配置:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"https://demo.polyv.net/demo/appkey.php"]];
    NSString *configString  =[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    NSString *aesKey = @"1234567812345678";
    NSString *aesIv = @"1234567812345678";
    NSError *error = nil;
    //使用保利威点播 SDK 提供的加密方式得到 SDK 配置信息
    [PLVVodSettings settingsWithConfigString:configString key:aesKey iv:aesIv error:&error];

    /* 客户也可以用自己的方法解密得到 secretkey 等信息,并使用以下方法初始化 SDK
    [PLVVodSettings settingsWithUserid:userId readtoken:readtoken writetoken:writetoken secretkey:secretkey];
    */
    return YES;
}

二、保证服务端接口稳定

服务器端接口不稳定可能会导致加密串无法成功获取,APP播放视频会出现无法解码播放的错误,建议:

  • 程序上对接口请求增加失败重试机制;
  • 针对加密串和不经常改动的配置,利用CDN加速和缓存,保证高可用性;
  • 增加备用接口,当主接口请求和重试都失败时,调用备用接口。

三、对APP进行加固

对于安全性要求较高的公司,可对 APP 进行加固,防止 APP 被反编译得到源码,从而导致账号及用户隐私数据的泄漏。市面上有很多对 APP进行加固的产品可以使用。

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

H5播放器介绍(视频)

视频说明

保利威全线产品完美支持HTML5技术, 为用户提供更稳定、流畅、清晰的视频体验。

保利威H5播放器使用便捷,一键观看视频,无需安装升级插件;拥有良好的用户体验,支持倍速播放,多清晰度切换,音视频模式切换,自动适配全终端播放,符合多种观看需求。

针对教学培训类场景,H5播放器推出问答播放功能,视频关键点预览,多语言字幕、互动弹幕、音视频连麦、画笔白板、抽奖等,为您和学员提供最活泼的互动方式。

H5播放器多项功能可自定义!视频片头片尾,企业 Logo水印,右键品牌信息展示,暂停广告添加,界面UI风格定制等,打造专属您企业品牌形象的播放器。

除此之外,H5播放器搭载PlaySafe视频版权保护体系,会对视频逐帧加密,防盗链、防录屏、防篡改,杜绝盗版对付费视频版权造成的损失,为您的视频保驾护航!

保利威H5播放器,视频播放极致体验!

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
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...

视频专辑使用教程(视频)

视频说明

保利威推出视频专辑功能,无需开发,简单几步即可将一系列点播视频整合成一个页面播放。可以用于系列专题课程、产品展示、操作教程等场景。

下面,我们来看下具体怎么操作:
第一步:新建专辑
登陆官网后台,打开视频列表,在左面菜单栏可以看到“视频专辑”,我们打开它,然后点击“新增专辑”,输入专辑名称确定即可。

第二步:添加视频内容
在添加视频之前,需要对视频内容进行分组,点击“创建分组”,输入分组名称,然后点击“添加视频”,根据自己的需求点击右边的加号添加视频,再点击右上角“添加”完成视频添加。如果需要添加其他分组视频,同样的操作方式即可。

有几点要注意:
1.需要先创建分组,再添加视频;
2.分组和视频都可通过鼠标拖拽方式进行排序;
3.基于安全性考虑,不支持添加加密视频。

第三步:展示页外观设置
点击外观设置,左边区域是设置项。右边区域是预览区。
首先设置封面,封面类型可以选择图片或者视频。这里以图片形式展示为例,选择图片类型,点击上传,选择上传的一张图片点击打开即可。

有几点要需要注意:
1.图片尺寸不能超过1920*1080,图片大小不能超过 2M。
2.支持 jpg、jpeg、png、gif 格式。
3.上传多张图片时,将以轮播的方式呈现,最多可上传6张图片。

在下列选项中分别填写好专辑标题、专辑描述、按钮文字,然后选择主题颜色,点击保存就可以完成外观设置。

第四步:分享观看链接
我们回到视频专辑首页,可以在专辑列表看到我们新建好的专辑,点击“分享”,可以获得一个链接地址和二维码。可以使用网页端进行观看或者手机扫描二维码观看。

好啦,今天的体验就到这里,如果您在使用过程有任何疑问,欢迎联系保利威服务团队

 

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