搜索视频
更新时间:2023-07-17 09:59:52
接口描述
1、搜索视频详细内容
2、接口支持https协议
接口URL
http://api.polyv.net/v2/video/search-videos
请求方式
GET
接口约束
1、接口同时支持HTTP 、HTTPS ,建议使用HTTPS 确保接口安全,接口调用有频率限制,详细请查看
请求参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| userid | true | String | 保利威点播账户id,可以参考【获取密钥】获取,获取路径:官网->登录->点播(API接口) |
| ptime | true | Long | 当前时间的毫秒级时间戳,3分钟内有效 |
| sign | true | String | 签名,为40位大写的SHA1值,生成签名的secretkey密钥作为通信数据安全的关键信息,严禁保存在客户端直接使用,所有API都必须通过客户自己服务器中转调用POLYV服务器获取响应数据【详见签名生成规则】 |
| filters | false | String | 需要返回的视频信息,多个以英文逗号分隔,默认仅返回基础信息 basicInfo:基础信息 metaData:元数据 transcodeInfo:转码信息 snapshotInfo:截图信息 |
| cateId | false | Long | 视频分类id,该参数获取自【获取分类及子分类】 |
| title | false | String | 按标题/视频vid模糊搜索 |
| tag | false | String | 按视频标签模糊搜索 |
| uploader | false | String | 上传者,例如:主账号 |
| status | false | String | 视频状态,默认搜索全部状态的视频,多个状态以英文逗号分隔,查询已发布状态的视频只需传61/60其中一个即可,如"61,50",可以参考【status字段说明】 |
| containSubCate | false | Boolean | 是否包含子分类 true:包含 false:不包含,默认为true |
| startTime | false | Long | 按创建时间范围查询,起始时间戳,13位时间戳 |
| endTime | false | Long | 结束时间戳,13位时间戳 |
| startModifyTime | false | Long | 按修改时间范围查询,起始时间戳,13位时间戳 |
| endModifyTime | false | Long | 修改时间的结束时间戳,13位时间戳 |
| encrypted | false | Boolean | 是否加密 |
| playAuthEnable | false | Boolean | 是否开启了播放授权 |
| sort | false | String | 结果排序,可以按创建时间或播放次数降序/升序排序 creationTimeAsc:创建时间升序 creationTimeDesc:创建时间降序 playTimesAsc:播放次数升序 playTimesDesc:播放次数降序 |
| page | false | Integer | 页码,默认为1 |
| pageSize | false | Integer | 页面大小,默认为10,最大1000 |
status字段说明
| 视频状态码 | 说明 |
|---|---|
| 60/61 | 已发布 |
| 10 | 等待编码 |
| 20 | 正在编码 |
| 50 | 等待审核 |
| 51 | 审核不通过 |
| -1 | 已删除 |
示例
http://api.polyv.net/v2/video/search-videos?cateId=1615795867474&uploader=%E4%B8%BB%E8%B4%A6%E5%8F%B7&sign=1BE730A20058481E794D3B5BE27ED9FBF7B491C0&containSubCate=true&pageSize=10&filters=basicInfo%2CmetaData&page=1&sort=creationTimeDesc&userid=1b448be323&ptime=1620289391124&status=60
响应参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | Integer | 响应状态码,200为成功返回,非200为失败【详见全局错误说明】 |
| status | String | 响应状态文本信息 |
| message | String | 响应描述信息,当code为400或者500的时候,辅助描述错误原因 |
| data | Object | 响应成功时返回搜索结果【详见data字段说明】,响应失败时返回空 |
data字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| pageNumber | Integer | 当前的页数 |
| totalPages | Integer | 总的页数 |
| pageSize | Integer | 每页条数 |
| contents | Array | 搜索视频的结果列表【详见contents字段说明】 |
| totalItems | Integer | 总的条数 |
contents字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| vid | String | 视频id |
| basicInfo | Object | 视频的详细信息 【详见basicInfo字段说明】 |
| metaData | Object | 视频的元数据 【详见metaData字段说明】 |
| transcodeInfos | Array | 视频的转码信息列表 【详见transcodeInfos字段说明】 |
| snapshotInfo | Object | 视频的截图信息 【详见snapshotInfo字段说明】 |
basicInfo字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| title | String | 视频标题 |
| description | String | 视频描述 |
| duration | Long | 源视频时长,单位:秒 |
| thumbnailURL | String | 首图地址,小图 |
| coverURL | String | 首图地址,大图 |
| creationTime | String | 创建时间,格式为:yyyy-MM-dd HH:mm:ss |
| updateTime | String | 更新时间,格式为:yyyy-MM-dd HH:mm:ss |
| size | Long | 源文件大小,单位:Bytes |
| status | Integer | 视频状态码 |
| cateId | Long | 分类id;其中1为根目录,即"默认分类" |
| cateName | String | 分类名称 |
| tags | String | 标签 |
| uploader | String | 上传者 |
| playTimes | Integer | 播放次数 |
| md5Checksum | String | 视频源文件校验md5校验和 |
metaData字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| size | Long | 源文件大小,单位:Bytes |
| format | String | 视频容器类型,如mp4、flv等 |
| duration | Long | 源视频时长,单位:秒 |
| bitrate | Integer | 视频码率,单位:kbps |
| fps | Integer | 视频帧率 |
| height | Integer | 分辨率高,单位:px |
| width | Integer | 分辨率宽,单位:px |
| codec | String | 编码格式,例如:h264、h265等 |
transcodeInfos字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| playUrl | String | 播放地址 |
| definition | String | 清晰度 SOURCE:原清晰度 LD:普清 SD:标清 HD:高清 |
| bitrate | Integer | 码率kbps |
| duration | Long | 时长,秒 |
| encrypt | Boolean | 是否加密 true:加密视频 false:非加密 |
| format | String | 转码格式,如mp4、flv、pdx、hls |
| fps | Integer | 视频帧率 |
| height | Integer | 分辨率高,单位:px |
| width | Integer | 分辨率宽,单位:px |
| status | String | 视频状态 normal:可以正常播放 unavailable:不能正常播放 |
snapshotInfo字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| imageUrl | String[] | 截图url数组,小图 |
| bigImageUrl | String[] | 截图url数组,大图 |
Java请求示例
快速接入基础代码请下载相关依赖源码, 点击下载源代码 ,下载后加入到自己的源码工程中即可。测试用例中的HttpUtil.java 和 VodSignUtil.java 都包含在下载文件中。
强烈建议您使用点播Java SDK完成API的功能对接,点播Java SDK 对API调用逻辑、异常处理、数据签名、HTTP请求线程池进行了统一封装和优化。
private static final Logger log = LoggerFactory.getLogger(VodSearchTest.class);
/**
* 搜索视频
* @throws Exception
* @throws NoSuchAlgorithmException
*/
@Test
public void testSearchVideo() throws Exception, NoSuchAlgorithmException {
//公共参数,填写自己的实际参数
String secretKey = super.secretKey;
String userId = super.userId;
String ptime = String.valueOf(System.currentTimeMillis());
//业务参数
String url = "http://api.polyv.net/v2/video/search-videos";
String filters = "basicInfo,metaData";
String cateId = "1615795867474";
String uploader = "主账号";
String status = "60";
String containSubCate = "true";
String page = "1";
String pageSize = "10";
String sort = "creationTimeDesc";
Map<String, String> requestMap = new HashMap<>();
requestMap.put("userid", userId);
requestMap.put("ptime", ptime);
requestMap.put("cateId", cateId);
requestMap.put("filters", filters);
requestMap.put("uploader", uploader);
requestMap.put("status", status);
requestMap.put("containSubCate", containSubCate);
requestMap.put("page", page);
requestMap.put("pageSize", pageSize);
requestMap.put("sort", sort);
requestMap.put("sign", VodSignUtil.getSign(requestMap, secretKey));
String response = HttpUtil.get(url, requestMap);
log.debug("测试搜索视频,{}", response);
//do somethings
}
响应示例
系统全局错误说明详见全局错误说明
成功示例
{
"code": 200,
"status": "success",
"message": "success",
"data": {
"pageNumber": 1,
"totalPages": 1,
"pageSize": 10,
"contents": [
{
"vid": "1b448be32389acdf41f567e3a0bf0c19_1",
"basicInfo": {
"title": "3-25测试裁剪",
"description": "",
"duration": 81,
"coverURL": "https://img.videocc.net/uimage/1/1b448be323/9/1b448be32389acdf41f567e3a0bf0c19_0_b.jpg",
"creationTime": "2021-03-25 14:33:29",
"updateTime": "2021-03-25 14:35:22",
"size": 3101307,
"status": 61,
"cateId": 1616654004170,
"cateName": "fx20lh79cf",
"tags": "2191541_fx20lh79cf-2e77d0a29c11adbf9fea7a1a206fa666|ppt|playback",
"uploader": "API",
"playTimes": 1
},
"metaData": {
"size": 3101307,
"format": "m3u8",
"duration": 81,
"bitrate": 0,
"fps": 25,
"height": 720,
"width": 1280,
"codec": "h264"
}
},
{
"vid": "1b448be3230e2235bc8f43c3aafa23b5_1",
"basicInfo": {
"title": "合并后文件名1234",
"description": "",
"duration": 321,
"coverURL": "https://img.videocc.net/uimage/1/1b448be323/5/1b448be3230e2235bc8f43c3aafa23b5_0_b.jpg",
"creationTime": "2021-03-15 16:11:08",
"updateTime": "2021-03-15 16:16:21",
"size": 19117170,
"status": 61,
"cateId": 1615795867478,
"cateName": "fwr2dfsptr",
"tags": "2191541_fwr2dfsptr-b90e4e77230c24f895b1ffeabe3059cb|ppt|playback",
"uploader": "API",
"playTimes": 0
},
"metaData": {
"size": 19117170,
"format": "m3u8",
"duration": 321,
"bitrate": 0,
"fps": 25,
"height": 720,
"width": 1280,
"codec": "h264"
}
}
],
"totalItems": 2
}
}
异常示例
签名不正确
{
"code":400,
"status":"error",
"message":"the sign is not right",
"data":""
}
时间戳过期
{
"code": 400,
"status": "error",
"message": "ptime is too old.",
"data": ""
}
内部错误,或传了非法参数,程序转换异常
{
"code": 500,
"status": "fail",
"message": "undefined error",
"data": null
}
