Sub Account Service

1、搜索视频

描述

通过视频标题、分类、标签等条件查找视频
接口地址(仅做说明使用):https://api.polyv.net//v3/video/list-video

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

单元测试

	@Test
	public void testSearchVideoList() throws IOException, NoSuchAlgorithmException {
        VodSubAccountSearchVideoListRequest vodSubAccountSearchVideoListRequest =
                new VodSubAccountSearchVideoListRequest();
        VodSubAccountSearchVideoListResponse vodSubAccountSearchVideoListResponse = null;
        try {
            vodSubAccountSearchVideoListRequest.setCategoryId("1602300731843")
                    .setTitle("学习英语")
                    .setUploader("主账号")
                    .setStatus("61")
                    .setContainSubCate("Y")
                    .setStartTime(super.getDate(2021, 1, 4, 10, 35))
                    .setEndTime(super.getDate(2021, 2, 5, 10, 35))
                    .setSort("creationTimeDesc")
                    //设置子账号相关
                    .setAppId(APP_ID)
                    .setSecretKey(SECRET_KEY);
            vodSubAccountSearchVideoListResponse = new VodSubAccountServiceImpl().searchVideoList(
                    vodSubAccountSearchVideoListRequest);
            Assert.assertNotNull(vodSubAccountSearchVideoListResponse);
            if (vodSubAccountSearchVideoListResponse != null) {
                log.debug("测试搜索视频成功,{}", JSON.toJSONString(vodSubAccountSearchVideoListResponse));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回VodSubAccountSearchVideoListResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名必选类型说明

categoryId

false

String

视频分类ID【对应api文档的cataId字段】

title

false

String

按标题搜索

uploader

false

String

上传者

status

false

String

视频状态码;60/61:已发布;10:等待编码;20:正在编码;50:等待审核;51:审核不通过;-1:已删除;

containSubCate

false

String

是否包含子分类, Y 包含, N 不包含

startTime

false

Date

按创建时间范围查询,起始时间,格式为yyyy-MM-dd HH:mm:ss

endTime

false

Date

结束时间,格式为yyyy-MM-dd HH:mm:ss

sort

false

String

排序creationTimeDesc或creationTimeAsc

appId

true

String

子账号appId

secretKey

true

String

子账号secretKey

currentPage

false

Integer

页数,默认为1【对应api文档的page字段】

pageSize

false

Integer

每页显示的数据条数,默认每页显示20条数据

返回对象描述

参数名类型说明

contents

Array

查询的结果列表【详见VodSearchVideoList参数描述

pageSize

Integer

每页显示的数据条数,默认每页显示20条数据

currentPage

Integer

当前页【对应api文档的pageNumber字段】

totalItems

Integer

记录总条数

totalPage

Integer

总页数【对应api文档的totalPages字段】

VodSearchVideoList参数描述

参数名类型说明

videoId

String

视频id【对应api文档的vid字段】

basicInfo

BasicInfo

查询的视频基本信息【详见BasicInfo参数描述

BasicInfo参数描述

参数名类型说明

title

String

视频标题

description

String

视频描述

duration

Integer

源视频时长,单位:秒

coverURL

String

首图地址,大图

creationTime

Date

创建时间

updateTime

Date

更新时间

size

Long

源文件大小,单位:Bytes

status

Integer

视频状态码;60/61:已发布;10:等待编码;20:正在编码;50:等待审核;51:审核不通过;-1:已删除;

categoryId

String

分类id, 如1为根目录【对应api文档的cateId字段】

categoryName

String

分类名称【对应api文档的cateName字段】

tags

String

标签

uploader

String

上传者


2、查询视频信息

描述

通过视频id查询视频信息
接口地址(仅做说明使用):https://api.polyv.net//v3/video/get-video-info

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

单元测试

	@Test
	public void testGetVideoInfo() throws IOException, NoSuchAlgorithmException {
        VodSubAccountQueryVideoInfoRequest vodSubAccountQueryVideoInfoRequest =
                new VodSubAccountQueryVideoInfoRequest();
        List<VodSubAccountQueryVideoInfoResponse> vodSubAccountQueryVideoInfoResponseList = null;
        try {
            vodSubAccountQueryVideoInfoRequest.setVideoIds(super.getTestVideoId())
                    .setFilters("basicInfo,metaData,transcodeInfo,snapshotInfo")
                    //设置子账号相关
                    .setAppId(APP_ID)
                    .setSecretKey(SECRET_KEY);
            vodSubAccountQueryVideoInfoResponseList = new VodSubAccountServiceImpl().getVideoInfo(
                    vodSubAccountQueryVideoInfoRequest);
            Assert.assertNotNull(vodSubAccountQueryVideoInfoResponseList);
            if (vodSubAccountQueryVideoInfoResponseList != null) {
                log.debug("测试查询视频信息,{}", JSON.toJSONString(vodSubAccountQueryVideoInfoResponseList));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回VodSubAccountQueryVideoInfoResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名必选类型说明

videoIds

true

String

视频ID,多个视频ID用英文逗号分隔(状态为半角),例如 1b8be3,239c2e【对应api文档的vids字段】

filters

false

String

选择需要返回的视频信息,多个以英文逗号分隔(状态为半角,例如 basicInfo,metaData),取值:basicInfo,metaData,transcodeInfo,snapshotInfo, 分别代表基础信息、元数据、转码信息、截图信息,为空则返回基础信息【对应api文档的filter字段】

appId

true

String

子账号appId

secretKey

true

String

子账号secretKey

返回对象描述

返回对象是List<VodSubAccountQueryVideoInfoResponse>,VodSubAccountQueryVideoInfoResponse具体元素内容如下:

参数名类型说明

videoId

String

视频id【对应api文档的vid字段】

basicInfo

BasicInfo

查询的视频基本信息【详见BasicInfo参数描述

transcodeInfos

Array

查询的视频转码信息【详见TranscodeInfos参数描述

metaData

MetaData

查询的视频元数据【详见MetaData参数描述

snapshotInfo

SnapshotInfo

查询的视频截图【详见SnapshotInfo参数描述

BasicInfo参数描述

参数名类型说明

title

String

视频标题

description

String

视频描述

duration

Integer

源视频时长,单位:秒

coverURL

String

首图地址,大图

creationTime

Date

创建时间

updateTime

Date

更新时间

size

Long

源文件大小,单位:Bytes

status

Integer

视频状态码;60/61:已发布;10:等待编码;20:正在编码;50:等待审核;51:审核不通过;-1:已删除;

categoryId

String

分类id, 如1为根目录【对应api文档的cateId字段】

categoryName

String

分类名称【对应api文档的cateName字段】

tags

String

标签

uploader

String

上传者

TranscodeInfos参数描述

参数名类型说明

playUrl

String

播放地址

definition

String

清晰度,SOURCE:原清晰度,LD:普清,SD:标清,HD:高清

duration

Integer

时长,秒

encrypt

Boolean

加密视频为true,非加密为false

format

String

转码格式,如mp4、flv、pdx、hls

fps

Integer

视频帧率

bitrate

Integer

码率kbps

height

Integer

分辨率高,单位:px

width

Integer

分辨率宽,单位:px

status

String

视频状态, normal:可以正常播放,unavailable:不能正常播放

fileSize

Long

编码后视频大小,单位:字节

MetaData参数描述

参数名类型说明

size

Long

源文件大小,单位:Bytes

format

String

视频容器类型,如mp4、flv等

duration

Integer

源视频时长,单位:秒

bitrate

Integer

视频码率,单位:bps

fps

Integer

视频帧率

height

Integer

分辨率高,单位:px

width

Integer

分辨率宽,单位:px

codec

String

编码格式,如h264、h265等

SnapshotInfo参数描述

参数名类型说明

imageUrl

Array

截图url数组


3、修改视频信息

描述

通过视频id修改视频信息
接口地址(仅做说明使用):https://api.polyv.net//v3/video/update-info

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

单元测试

	@Test
	public void testUpdateVideoInfo() throws IOException, NoSuchAlgorithmException {
        VodSubAccountUpdateVideoInfoRequest vodSubAccountUpdateVideoInfoRequest =
                new VodSubAccountUpdateVideoInfoRequest();
        Boolean vodUpdateVideoInfoResponse = null;
        try {
            vodSubAccountUpdateVideoInfoRequest.setVideoId(super.getTestVideoId())
                    .setDesc("这是一个通过junit合并的视频_1")
                    .setTag("junit测试_1")
                    .setPublishUrl(null)
                    //设置子账号相关
                    .setAppId(APP_ID)
                    .setSecretKey(SECRET_KEY);
            vodUpdateVideoInfoResponse = new VodSubAccountServiceImpl().updateVideoInfo(
                    vodSubAccountUpdateVideoInfoRequest);
            Assert.assertTrue(vodUpdateVideoInfoResponse);
            if (vodUpdateVideoInfoResponse) {
                log.debug("测试修改视频信息成功");
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回Boolean对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名必选类型说明

videoId

true

String

视频ID【对应api文档的vid字段】

title

false

String

视频标题

desc

false

String

视频描述【对应api文档的describ字段】

tag

false

String

视频标签信息

publishUrl

false

String

外链地址

appId

true

String

子账号appId

secretKey

true

String

子账号secretKey

返回对象描述

true为修改成功,false为修改失败


4、删除视频

描述

通过视频id删除视频
接口地址(仅做说明使用):https://api.polyv.net//v3/video/delete-video

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

单元测试

	@Test
	public void testDeleteVideo() throws IOException, NoSuchAlgorithmException {
        VodSubAccountDeleteVideoRequest vodSubAccountDeleteVideoRequest = new VodSubAccountDeleteVideoRequest();
        Boolean vodDeleteVideoResponse = null;
        try {
            vodSubAccountDeleteVideoRequest.setVideoId("1b448be3238415eee2fa40753737255b_1")
                    //设置子账号相关
                    .setAppId(APP_ID).setSecretKey(SECRET_KEY);
            vodDeleteVideoResponse = new VodSubAccountServiceImpl().deleteVideo(vodSubAccountDeleteVideoRequest);
            Assert.assertTrue(vodDeleteVideoResponse);
            if (vodDeleteVideoResponse) {
                log.debug("删除视频成功");
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回Boolean对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名必选类型说明

videoId

true

String

视频ID【对应api文档的vid字段】

appId

true

String

子账号appId

secretKey

true

String

子账号secretKey

返回对象描述

true为删除视频成功,false为删除视频失败


5、新增视频分类

描述

通过分类名等参数新增视频分类
接口地址(仅做说明使用):https://api.polyv.net//v3/category/add

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

单元测试

	@Test
	public void testAddCategory() throws IOException, NoSuchAlgorithmException {
        VodSubAccountAddCategoryRequest vodSubAccountAddCategoryRequest = new VodSubAccountAddCategoryRequest();
        String vodDeleteVideoResponse = null;
        try {
            vodSubAccountAddCategoryRequest.setName("junit测试新增分类20210309").setParentId(null)
                    //设置子账号相关
                    .setAppId(APP_ID).setSecretKey(SECRET_KEY);
            vodDeleteVideoResponse = new VodSubAccountServiceImpl().addCategory(vodSubAccountAddCategoryRequest);
            Assert.assertNotNull(vodDeleteVideoResponse);
            if (vodDeleteVideoResponse != null) {
                log.debug("新增视频分类成功");
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回String对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名必选类型说明

name

true

String

分类名

parentId

false

String

父分类id, 默认位1, 放在根目录下

appId

true

String

子账号appId

secretKey

true

String

子账号secretKey

返回对象描述

新增成功返回新增的分类id


6、查询视频分类

描述

通过分类id查询视频分类
接口地址(仅做说明使用):https://api.polyv.net//v3/category/get

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

单元测试

	@Test
	public void testQueryCategory() throws IOException, NoSuchAlgorithmException {
        VodSubAccountQueryCategoryRequest vodSubAccountQueryCategoryRequest = new VodSubAccountQueryCategoryRequest();
        VodSubAccountQueryCategoryResponse vodSubAccountQueryCategoryResponse = null;
        try {
            vodSubAccountQueryCategoryRequest.setCategoryId("1608891483165")
                    //设置子账号相关
                    .setAppId(APP_ID).setSecretKey(SECRET_KEY).setCurrentPage(1).setPageSize(20);
            vodSubAccountQueryCategoryResponse = new VodSubAccountServiceImpl().queryCategory(
                    vodSubAccountQueryCategoryRequest);
            Assert.assertNotNull(vodSubAccountQueryCategoryResponse);
            if (vodSubAccountQueryCategoryResponse != null) {
                log.debug("测试查询视频分类成功,{}", JSON.toJSONString(vodSubAccountQueryCategoryResponse));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回VodSubAccountQueryCategoryResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名必选类型说明

categoryId

true

String

分类id【对应api文档的cateId字段】

appId

true

String

子账号appId

secretKey

true

String

子账号secretKey

currentPage

false

Integer

页数,默认为1【对应api文档的page字段】

pageSize

false

Integer

每页显示的数据条数,默认每页显示20条数据

返回对象描述

参数名类型说明

category

Category

当前分类【详见Category参数描述

subCategoryTotal

Integer

下一级子分类个数

subCategories

Array

下一级子分类列表【详见Category参数描述

Category参数描述

参数名类型说明

categoryId

String

分类id【对应api文档的cateId字段】

categoryName

String

分类名称【对应api文档的cateName字段】

parentId

String

父分类id


7、修改视频分类

描述

修改视频分类
接口地址(仅做说明使用):https://api.polyv.net//v3/category/update-info

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

单元测试

	@Test
	public void testUpdateCategory() throws IOException, NoSuchAlgorithmException {
        VodSubAccountUpdateCategoryRequest vodSubAccountUpdateCategoryRequest =
                new VodSubAccountUpdateCategoryRequest();
        Boolean vodUpdateCategoryResponse = null;
        try {
            vodSubAccountUpdateCategoryRequest.setCategoryId("1602671097888").setCategoryName("勿删分类-"+super.getRandomString(4))
                    //设置子账号相关
                    .setAppId(APP_ID).setSecretKey(SECRET_KEY);
            vodUpdateCategoryResponse = new VodSubAccountServiceImpl().updateCategory(
                    vodSubAccountUpdateCategoryRequest);
            Assert.assertTrue(vodUpdateCategoryResponse);
            if (vodUpdateCategoryResponse) {
                log.debug("修改视频分类成功");
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回Boolean对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名必选类型说明

categoryId

true

String

分类id【对应api文档的cateId字段】

categoryName

true

String

分类名称【对应api文档的cateName字段】

appId

true

String

子账号appId

secretKey

true

String

子账号secretKey

返回对象描述

true为修改成功,false为修改失败


8、删除视频分类

描述

通过视频分类id删除视频分类
接口地址(仅做说明使用):https://api.polyv.net//v3/category/delete

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

单元测试

	@Test
	public void testDeleteCategory() throws IOException, NoSuchAlgorithmException {
        VodSubAccountDeleteCategoryRequest vodSubAccountDeleteCategoryRequest =
                new VodSubAccountDeleteCategoryRequest();
        Boolean vodDeleteCategoryResponse = null;
        try {
            //生成测试数据
            String categoryId = super.addCategoryOther();
            vodSubAccountDeleteCategoryRequest.setCategoryId(categoryId)
                    //设置子账号相关
                    .setAppId(APP_ID).setSecretKey(SECRET_KEY);
            vodDeleteCategoryResponse = new VodSubAccountServiceImpl().deleteCategory(
                    vodSubAccountDeleteCategoryRequest);
            Assert.assertTrue(vodDeleteCategoryResponse);
            if (vodDeleteCategoryResponse) {
                log.debug("删除视频分类成功");
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回Boolean对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名必选类型说明

categoryId

true

String

分类id【对应api文档的cateId字段】

appId

true

String

子账号appId

secretKey

true

String

子账号secretKey

返回对象描述

true为删除成功,false为删除失败


9、批量修改视频所属分类

描述

通过视频id批量修改视频所属分类
接口地址(仅做说明使用):https://api.polyv.net//v3/video/update-category

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

单元测试

	@Test
	public void testUpdateVideoCategory() throws IOException, NoSuchAlgorithmException {
        VodSubAccountUpdateVideoCategoryRequest vodSubAccountUpdateVideoCategoryRequest =
                new VodSubAccountUpdateVideoCategoryRequest();
        Boolean vodUpdateVideoCategoryResponse = null;
        try {
            vodSubAccountUpdateVideoCategoryRequest.setVideoIds(super.getTestVideoId()).setCategoryId("1602300731843")
                    //设置子账号相关
                    .setAppId(APP_ID)
                    .setSecretKey(SECRET_KEY);
            vodUpdateVideoCategoryResponse = new VodSubAccountServiceImpl().updateVideoCategory(
                    vodSubAccountUpdateVideoCategoryRequest);
            Assert.assertTrue(vodUpdateVideoCategoryResponse);
            if (vodUpdateVideoCategoryResponse) {
                log.debug("批量修改视频所属分类成功");
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回Boolean对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名必选类型说明

videoIds

true

String

视频ID串,多个视频ID之间用英文逗号分隔(状态为半角),例如 1b8be3,239c2e【对应api文档的vids字段】

categoryId

false

String

视频分类ID【对应api文档的cateId字段】

appId

true

String

子账号appId

secretKey

true

String

子账号secretKey

返回对象描述

true为修改成功,false为修改失败


10、修改视频分类属性设置

描述

通过分类id修改视频分类属性设置
接口地址(仅做说明使用):https://api.polyv.net//v3/category/update-profile

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

单元测试

	@Test
	public void testUpdateCategoryProfile() throws IOException, NoSuchAlgorithmException {
        VodSubAccountUpdateCategoryProfileRequest vodSubAccountUpdateCategoryProfileRequest =
                new VodSubAccountUpdateCategoryProfileRequest();
        Boolean vodUpdateCategoryProfileResponse = null;
        try {
            vodSubAccountUpdateCategoryProfileRequest.setCategoryId("1615286323771")
                    .setEnabled("Y")
                    .setKeepSource(0)
                    .setEncrypt(0)
                    .setEncryptLevel("open")
                    .setIsEdu(0)
                    .setEncodeAAC(0)
                    //设置子账号相关
                    .setAppId(APP_ID)
                    .setSecretKey(SECRET_KEY);
            vodUpdateCategoryProfileResponse = new VodSubAccountServiceImpl().updateCategoryProfile(
                    vodSubAccountUpdateCategoryProfileRequest);
            Assert.assertTrue(vodUpdateCategoryProfileResponse);
            if (vodUpdateCategoryProfileResponse) {
                log.debug("修改视频分类属性设置成功");
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回Boolean对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名必选类型说明

categoryId

true

String

分类id【对应api文档的cateId字段】

enabled

false

String

是否启用分类设置 Y:启用, N:关闭,默认值为N:关闭

keepSource

false

Integer

1:源文件播放;0:非源文件播放,如果为源文件播放,encrypt、encryptLevel、isEdu、encodeAAC参数不生效,默认值为0:非源文件播放

encrypt

false

Integer

1:开启视频加密,0:不加密,默认值为0:不加密

encryptLevel

false

String

加密等级,取值有: open、web、app、wxa_app,分别代表非加密授权,Web授权,APP授权,小程序授权,默认值为open:非加密授权

isEdu

false

Integer

1:启用录屏优化, 0:关闭,默认值为0:关闭

encodeAAC

false

Integer

1:生成aac, 0:不生成,默认为0:不生成

appId

true

String

子账号appId

secretKey

true

String

子账号secretKey

返回对象描述

true为修改成功,false为修改失败


11、获取Playsafe Token

描述

通过子账号appId与视频id获取播放凭证,用于播放加密视频
接口地址(仅做说明使用):https://hls.videocc.net//service/v2/token/create-child

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、如果一个token(播放凭证)尚未过期,此时使用相同的 videoId、viewerId、viewerIp、isWxa 参数值请求该接口,则会复用原来的token,并延长原token的有效期。

单元测试

	@Test
	public void testGetPlaySafeToken() throws IOException, NoSuchAlgorithmException {
        VodSubAccountGetPlaySafeTokenRequest vodSubAccountGetPlaySafeTokenRequest =
                new VodSubAccountGetPlaySafeTokenRequest();
        VodSubAccountGetPlaySafeTokenResponse vodSubAccountGetPlaySafeTokenResponse = null;
        try {
            vodSubAccountGetPlaySafeTokenRequest.setVideoId("1b448be32370f4822ac40fd926112a66_1")
                    .setViewerId("ovtl9t_RxnrTdqkXqkT5Q5lnxp2A")
                    .setViewerIp(super.getRandomIp())
                    .setViewerName("TestViewerName")
                    .setExpires(Long.parseLong("60"))
                    .setDisposable(Boolean.TRUE)
                    .setIsWxa(0)
                    //设置子账号相关
                    .setAppId(APP_ID)
                    .setSecretKey(SECRET_KEY);
            vodSubAccountGetPlaySafeTokenResponse = new VodSubAccountServiceImpl().getPlaySafeToken(
                    vodSubAccountGetPlaySafeTokenRequest);
            Assert.assertNotNull(vodSubAccountGetPlaySafeTokenResponse);
            if (vodSubAccountGetPlaySafeTokenResponse != null) {
                log.debug("测试获取Playsafe Token成功,{}", JSON.toJSONString(vodSubAccountGetPlaySafeTokenResponse));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回VodSubAccountGetPlaySafeTokenResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名必选类型说明

videoId

true

String

视频ID,例如 e6b23c6f519c5906e54a13b8200d7bb0_e

viewerId

true

String

观看者ID,要求不同的观看者使用不同的ID

viewerIp

false

String

观看者IP,如果为空,会自动获取调用该接口时的IP

viewerName

false

String

观看者名称

expires

false

Long

token 有效时长,单位为秒。为空时默认为10分钟

disposable

false

Boolean

token有效期,true表示token仅一次有效(验证一次后,token就失效了),false表示在有效期内可以进行多次验证。默认为false

isWxa

false

Integer

是否微信小程序播放,1为是,0为否。默认为0【对应api文档的iswxa字段】

extraParams

false

String

自定义的其它参数

appId

true

String

子账号appId

secretKey

true

String

子账号secretKey

返回对象描述

参数名类型说明

token

String

token(播放凭证)

userId

String

用户ID

videoId

String

视频ID,例如 e6b23c6f519c5906e54a13b8200d7bb0_e

viewerIp

String

观看者IP,如果为空,或自动获取调用该接口时的IP

viewerId

String

观看者ID,要求不同的观看者使用不同的ID

viewerName

String

观看者名称

extraParams

String

自定义的其它参数

ttl

Long

token 有效时长,单位为毫秒

createdTime

Date

token 创建时间

expiredTime

Date

token 过期时间

isWxa

Integer

是否微信小程序播放,1为是,0为否【对应api文档的iswxa字段】

disposable

Boolean

token有效期,true表示token仅一次有效(验证一次后,token就失效了),false表示在有效期内可以进行多次验证


12、查询子账号统计汇总数据

描述

按日期查询子账号统计汇总数据
接口地址(仅做说明使用):https://api.polyv.net/v2/sub-account/stats/agg/page

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

单元测试

	@Test
	public void testGetSubStatsAgg() throws IOException, NoSuchAlgorithmException {
        VodSubAccountStatsAggPageRequest vodSubAccountStatsAggPageRequest = new VodSubAccountStatsAggPageRequest();
        VodSubAccountStatsAggPageResponse vodSubAccountStatsAggPageResponse = null;
        try {
            vodSubAccountStatsAggPageRequest.setStartDate(getDate(2020, 6, 24)).setEndDate(getDate(2021, 4, 24));
            vodSubAccountStatsAggPageResponse = new VodSubAccountServiceImpl().getSubStatsAgg(
                    vodSubAccountStatsAggPageRequest);
            Assert.assertNotNull(vodSubAccountStatsAggPageResponse);
            if (vodSubAccountStatsAggPageResponse != null) {
                log.debug("测试查询子账号统计汇总数据成功{}", JSON.toJSONString(vodSubAccountStatsAggPageResponse));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回VodSubAccountStatsAggPageResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名必选类型说明

startDate

true

Date

查询的开始时间,格式要求:yyyy-MM-dd,时间跨度不能超过一年

endDate

true

Date

查询的结束时间,格式要求:yyyy-MM-dd,时间跨度不能超过一年

email

false

String

要查询的子账号邮箱,如果同时传了email和appId,则优先使用email

appId

false

String

要查询的子账号appId

currentPage

false

Integer

页数,默认为1【对应api文档的page字段】

pageSize

false

Integer

每页显示的数据条数,默认每页显示20条数据

返回对象描述

参数名类型说明

contents

Array

查询的结果列表【详见VodContentsList参数描述

pageSize

Integer

每页显示的数据条数,默认每页显示20条数据

currentPage

Integer

当前页【对应api文档的pageNumber字段】

totalItems

Integer

记录总条数

totalPage

Integer

总页数【对应api文档的totalPages字段】

VodContentsList参数描述

参数名类型说明

email

String

子账号邮箱,如果子账号被删除,则该字段为null

appId

String

子账号appId

flowSize

Long

源文件大小,单位:byte

view

Long

播放量,单位:个

duration

Long

播放时长,单位:秒


13、查询子账号统计详情

描述

按日期查询子账号统计详情列表
接口地址(仅做说明使用):https://api.polyv.net/v2/sub-account/stats/detail/list

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、email和appId不能同时为空

单元测试

	@Test
	public void testGetSubStatsDetailList() throws IOException, NoSuchAlgorithmException {
        VodSubAccountStatsDetailRequest vodSubAccountStatsDetailRequest = new VodSubAccountStatsDetailRequest();
        VodSubAccountStatsDetailResponse vodSubAccountStatsDetailResponse = null;
        try {
            vodSubAccountStatsDetailRequest.setStartDate(getDate(2021, 4, 10))
                    .setEndDate(getDate(2021, 4, 24))
                    .setAppId(APP_ID);
            vodSubAccountStatsDetailResponse = new VodSubAccountServiceImpl().getSubStatsDetailList(
                    vodSubAccountStatsDetailRequest);
            Assert.assertNotNull(vodSubAccountStatsDetailResponse);
            if (vodSubAccountStatsDetailResponse != null) {
                log.debug("测试测试查询子账号统计详情{}", JSON.toJSONString(vodSubAccountStatsDetailResponse));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回VodSubAccountStatsDetailResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名必选类型说明

startDate

true

Date

查询的开始时间,格式要求:yyyy-MM-dd,时间跨度不能超过一年

endDate

true

Date

查询的结束时间,格式要求:yyyy-MM-dd,时间跨度不能超过一年

email

false

String

要查询的子账号邮箱,如果同时传了email和appId,则优先使用email

appId

false

String

要查询的子账号appId

返回对象描述

参数名类型说明

details

Array

查询的结果列表【详见VodStatsDetailList参数描述

VodStatsDetailList参数描述

参数名类型说明

currentDay

String

日期,格式:yyyy-MM-dd,如:2021-06-01

pcFlowSize

Long

PC端播放流量,单位:byte

mobileFlowSize

Long

移动端播放流量,单位:byte

totalFlowSize

Long

总流量,单位:byte

pcView

Long

PC端播放量,单位:个

mobileView

Long

移动端播放量,单位:个

totalView

Long

总播放量,单位:个

pcDuration

Long

PC端播放时长,单位:秒

mobileDuration

Long

移动端播放时长,单位:秒

totalDuration

Long

总播放时长,单位:秒

Last updated