搜索视频

接口描述

1、搜索视频详细内容
2、接口支持https协议

接口URL

http://api.polyv.net/v2/video/search-videos

在线API调用

请求方式

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
}

Last updated