搜尋影片
更新時間: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
}
