接入说明
我们允许第三方接入我们的平台,调用开放 API 获取用户信息、应用信息、创建应用等。
我们的开发者平台仍然在开发中,目前您需要通过帮助菜单的技术支持提出接入申请,要求提供下列信息:
- 帐户邮箱
- 申请者的详细信息:名称(个人或者公司)、地址、联系方式(手机或者电话)等。
- 申请的第三方平台的详细信息:名称、介绍描述、网站地址
- 期望的接入方式:详情见下文。
在申请成功后,我们会发送 accessKey 和 accessSecret 提供给您接入。
参数说明
当虹云的API,除上传接口外,一般都会包含5个参数action,accessKey,version,timestamp 和 signature
action:api名称
accessKey:分配给用户的访问key。
version:api版本
timestamp:时间戳(1970年1月1日以来的毫秒数,格林尼治时间)
signature:请求签名,签名生成规则:对所有参数按照名称排序(CASE_INSENSITIVE_ORDER)生成一个字符串,并在字符串头上加上accessSecret,然后对该字符串调用[HmacSHA256](http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) 算法生成signature。每一个API,根据输入参数的不同,生成的签名都是不同的。
我们以API:获取用户信息 为例来说明签名的生成,该接口的参数为accessKey,action,version,timestamp,signature 5个:
accessKey = "a020e193-0f1"
accessSecret = "5GcXHNYdAVVdFW0yervG"
action = "getUser"
version = "2.0"
timestamp= "1466488681033"
那么调用该接口的signature值就是:
signature = hmacSHA256Encrypt("5GcXHNYdAVVdFW0yervGaccessKey=a020e193-0f1action=getUsertimestamp=1466488681033version=2.0", 5GcXHNYdAVVdFW0yervG) = 3d864184117e240ad4def677c48fbba509a1d0d48ea5dfb9e914c587ae3ce5bf
响应格式
返回值为JSON格式,如下:
{
"code":返回码, // 整型错误码,0成功,其它值失败
"message":返回信息, // 字符串,可能包含错误或者别的一些信息
"result":返回结果, // 字符串,返回的结果
"success":true // true 或 false
}
示例代码
HmacSha256 加密算法
SHA256 Hmac 签名生成64位字符串, 可参考如下代码:
Java:
/**
* 使用 HMAC-SHA256 签名方法对对plainText进行签名
* @param plainText 被签名的字符串
* @param accessSecret 密钥
* @return
* @throws Exception
*/
public static String hmacSHA256Encrypt(String plainText, String accessSecret) throws Exception {
Mac mac = Mac.getInstance("HmacSHA256");
byte[] secretByte = accessSecret.getBytes("UTF-8");
byte[] dataBytes = plainText.getBytes("UTF-8");
SecretKey secret = new SecretKeySpec(secretByte, "HMACSHA256");
mac.init(secret);
byte[] doFinal = mac.doFinal(dataBytes);
byte[] hexB = new Hex().encode(doFinal);
String signature = new String(hexB);
return signature;
}
PHP:
<?php
echo hash_hmac('sha256', $plainText, $accessSecret);
?>
C#:
private static string hmacSHA256Encrypt(string plainText, string accessSecret)
{
HMACSHA256 hash = new HMACSHA256(Encoding.UTF8.GetBytes(accessSecret));
byte[] bytes = hash.ComputeHash(Encoding.UTF8.GetBytes(plainText));
return BitConverter.ToString(bytes).Replace("-", string.Empty).ToLower();
}
签名生成
Java:
public static String generateSignature(HashMap<String, Object> param, String secret) throws Exception {
if (StringUtils.isBlank(secret) || MapUtils.isEmpty(param)) {
return null;
}
List<String> keyList = new ArrayList<String>(param.keySet());
Collections.sort(keyList, String.CASE_INSENSITIVE_ORDER);
StringBuilder sb = new StringBuilder(secret);
for (String key :keyList) {
if (param.get(key) != null) {
if (!key.equals("signature")) {
sb.append(key);
sb.append("=");
sb.append(param.get(key));
}
}
}
String signature = hmacSHA256Encrypt(sb.toString(), secret);
return signature;
}
PHP:
function mkSig(array $arr, $accessKey, $accessSecret){
ksort($arr);
$request=$accessSecret;
foreach ($arr as $key => $value) {
$request .= $key.'='.$value;
}
echo "\n",$request,"\n";
return sha256($request, $accessSecret);
}
C#:
public static string generateSignature(IDictionary<string,object> param, string secret)
{
List<string> keys = new List<string>(param.Keys);
keys.Sort(StringComparer.OrdinalIgnoreCase);
StringBuilder sb = new StringBuilder(secret);
foreach (string key in keys)
{
sb.Append(key).Append("=").Append(param[key]);
}
return hmacSHA256Encrypt(sb.ToString(), secret);
}
API 调用
Java:
String ACCESSKEY = "a020e193-0f1";
String ACCESSSECRT = "5GcXHNYdAVVdFW0yervG";
String URI = "http://api.danghongyun.com/rest?" ;
HashMap<String,String> params = new HashMap<String,String>();
params.put("accessKey", ACCESSKEY);
params.put("signature", generateSignature(params, ACCESSSECRT));
String request = createURL(URI, params);
String httpReslut = HttpUtil.get(request);
System.out.println(httpReslut);
return JSON.parseArray(httpReslut);
PHP:
Url拼装:
function mkUrl(array $dataArr){
$url='';
foreach ($dataArr as $key => $value) {
$url .= $key.'='.$value.'&';
}
return substr($url, 0, strlen($url)-1);
}
Get:
function curlGet($url){
echo "\n",$url,"\n";
$ch = curl_init($url) ;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
$res = curl_exec($ch);
curl_close($ch);
return $res;
}
Post:
function curlPost(array $dataArr, $url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST,count($dataArr));
curl_setopt($ch, CURLOPT_POSTFIELDS,$dataArr);
ob_start();
curl_exec($ch);
$res = ob_get_contents();
ob_end_clean();
curl_close($ch);
return $res;
}
C#:
// add parameters
SortedList<string, string> sl = new SortedList<string, string>();
sl.Add("accessKey", txtAccessKey.Text);
// caculate signature
string signature = generateSignature(sl, txtAccessSecret.Text);
sl.Add("signature", signature );
// make url
string url = createUrl(txtUri.Text, sl);
// invoke and get result
WebRequest request = WebRequest.Create(url);
try
{
WebResponse wResp = request.GetResponse();
Stream respStream = wResp.GetResponseStream();
using (StreamReader reader = new StreamReader(respStream, Encoding.UTF8))
{
Console.WriteLine(reader.ReadToEnd());
}
} catch(Exception e1) {
Console.WriteLine(e1.Message);
}
用户信息
获取用户信息
服务地址:
http://api.danghongyun.com/rest
请求方式:
GET
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"getUser" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
返回数据:
调用成功则返回相关用户数据信息,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):成功为相相关用户数据,失败则为错误数据或空("")。
返回数据示例:
{
"code":0,
"message":"success",
"result":
{
"randomWordTime":1504084327571,
"trialDays":260,
"tokenTime":null,
"randomWord":"6DNagGSCaTn8oO9FC394MisOrMZkSpwy76cOq56xLH7Vw5JXPwBFXMWcW*eGbT90",
"source":0,
"generateTime":1437642721763,
"type":1,
"trial":0,
"lastLoginIp":"60.191.59.162",
"expiresIn":null,
"trialDeleteExpiredDate":0,
"contact":"someone",
"cellphone":"17100000001",
"company":"arcvideo",
"id":191,
"activateStatus":1,
"qq":"1234567890",
"randomWordUsedCount":0,
"trialTimes":0,
"abbreviation":"pw",
"parentId":null,
"accessSecret":"NYXvQBXcZSqJVoZVEWaC",
"token":"",
"lastLoginTime":1511748008624,
"accessKey":"c6d23731-ffc",
"domainPrefix":"p2191m9e",
"account":"someone@arcvideo.com",
"refreshToken":""
},
"success":true
}
返回字段说明:
abbreviation:用户简称
account:账号
activateStatus:激活状态,0 未激活,1 激活
cellphone:手机号码
company:公司
contact:联系人名称
domainPrefix:用户域名前缀
generateTime:注册时间
id:用户id
lastLoginIp:上一次登录的ip
lastLoginTime:上一次登录的时间戳
parentId:父账号id
qq:qq号码
randomWord:随机码
randomWordTime:随机码生成时间
randomWordUsedCount:随机码使用次数
source:用户来源,内部使用
trial:用户用状态, 0 正式用户试,1 试用
trialDays:试用天数
trialDeleteExpiredDate:试用用户过期后是否删除数据,0 否, 1 是
trialTimes:试用延长次数
type:用户类别,0 集团大用户,1 普通用户
accessKey:访问key,该字段只为兼容老版本使用,请勿以此接口返回值为依据,后续可能移除
accessSecret:访问密钥,该字段只为兼容老版本使用,请勿以此接口返回值为依据,后续可能移除
expiresIn:本接口所返回该字段目前无效
refreshToken:本接口所返回该字段目前无效
token:本接口所返回该字段目前无效
tokenTime:本接口所返回该字段目前无效
所有状态码code与message的对应关系:
0:success
10000:exception
10201:api_not_exists
PHP 示例:
$interfaceUrl = "http://api.danghongyun.com/rest?";
$accessKey = "a020e193-0f1";
$action = "getUser";
$version = "2.0";
$timestamp = "1466488681033";
$paramArr = array(
"accessKey"=>$accessKey,
"action"=>$action,
"version"=>$version,
"timestamp"=>$timestamp
);
$paramArr["signature"] = mkSig($paramArr, $accessKey,$accessSecret);
$res = curlGet($interfaceUrl.mkUrl($paramArr));
echo $res;
获取token
服务地址:
http://api.danghongyun.com/rest
请求方式:
GET
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"getToken" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
返回数据:
调用成功则返回相应用户的token数据,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):成功为token数据,失败则为错误数据或空("")。
返回数据示例:
{
"code":0,
"message":"success",
"result":
{
"accessToken":"6ee00e4f662b2e157b105ce3db8f4a22",
"accessTokenTime":1461914407759,
"expiresIn":2592000,
"refreshToken":"64af3ba262261770f99ba951ab6aea38",
"userId":185
},
"success":true
}
返回字段说明:
accessToken:访问令牌
accessTokenTime:访问令牌的生成时间
expiresIn:过期时间,单位为秒
refreshToken:更新令牌,用来获取下一次的访问令牌
userId:用户id
所有状态码code与message的对应关系:
0:success
10000:exception
10001:get_access_token_failed
10201:api_not_exists
PHP 示例:
$interfaceUrl = "http://api.danghongyun.com/rest?";
$accessKey = "a020e193-0f1";
$action = "getToken";
$version = "2.0";
$timestamp = "1466488681033";
$paramArr = array(
"accessKey"=>$accessKey,
"action"=>$action,
"version"=>$version,
"timestamp"=>$timestamp
);
$paramArr["signature"] = mkSig($paramArr, $accessKey,$accessSecret);
$res = curlGet($interfaceUrl.mkUrl($paramArr));
视频管理
获取视频信息
服务地址:
http://api.danghongyun.com/rest
请求方式:
GET
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"getVideoInfo" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
videoId | 视频id | String | 必选 |
返回数据:
调用成功则返回相应视频数据,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):成功为视频数据,失败则为错误数据或空("")。
返回数据示例:
{
"code":0,
"message":"success",
"result":
{
"id":"a775ca3cf7a84b2f85c31e5eb813b107",
"parentId":null,
"playrate":"1.0",
"fileName":"65536f079dd74fb4bbbed100f018b2df_94e8b4511bbd204806ad68855f829a08.mp4",
"thumbnail":"http://p2191m9e.images.danghongyun.com/cover/2017/11/10/a775ca3cf7a84b2f85c31e5eb813b107/191_a775ca3cf7a84b2f85c31e5eb813b107_0.jpg",
"cover":"http://p2191m9e.images.danghongyun.com/cover/2017/11/10/a775ca3cf7a84b2f85c31e5eb813b107/191_a775ca3cf7a84b2f85c31e5eb813b107_0.jpg",
"title":"pwtest_2M.mp4",
"width":640,
"height":480,
"bitrate":2457600,
"audioBitrate":0,
"duration":19560,
"playNum":0,
"size":2196,
"userId":191,
"categoryId":0,
"category":null,
"status":2,
"date":"2017/11/10",
"uploadTime":1510243581667,
"tag":null,
"description":null,
"trailorTaskId":null,
"unencryptTaskId":null,
"contentId":null,
"customId":null,
"sourceContentId":null,
"sourceCustomId":null,
"transcodedVideoList":
[
{
"name":"高清",
"hlsUrl":"http://p2191m9e.vod2.danghongyun.com/target/hls/2017/11/10/191_a775ca3cf7a84b2f85c31e5eb813b107_10_640x480.m3u8",
"hlsSize":4284621,
"mp4Url":null,
"mp4Size":0,
"flvUrl":null,
"flvSize":0,
"tsUrl":null,
"tsSize":0,
"videoWidth":640,
"videoHeight":480,
"videoBitrate":1500,
"audioBitrate":64000,
"defaultVideo":1,
"taskId":"107169",
"status":2,
"idx":1,
"type":0,
"hlsEncryptType":0,
"mp4EncryptType":0,
"flvEncryptType":0,
"tsEncryptType":0,
"contentId":null,
"customId":null,
"aesKey":null
}
],
"subPlayrateList":
[
{
"videoId":"577e0bcfc4774cc295668d1638e1752b",
"playrate":"0.8",
"subVideoType":0
},
{
"videoId":"dd9220fc79e34651a8140d77ecbe7e95",
"playrate":"30",
"subVideoType":1
}
],
"playCode":
{
"previewUrl":"http://www.danghongyun.com/video/preview/191/a775ca3cf7a84b2f85c31e5eb813b107",
"flashUrl":"http://www.danghongyun.com/video/preview/191/a775ca3cf7a84b2f85c31e5eb813b107.swf",
"htmlEmbedCode":"<div id=\"191_a775ca3cf7a84b2f85c31e5eb813b107\" style=\"text-align:center;\"></div>\r\n<script type=\"text/javascript\" src=\"http://static.danghongyun.com/libs/embed/H_E_v0.2.js\"></script>\r\n<script type=\"text/javascript\">\r\n HONGSHIYUN.embed(\"191_a775ca3cf7a84b2f85c31e5eb813b107\",{\r\n width:\"100%\",\r\n height:\"100%\",\r\n autoPlay:false\r\n });\r\n</script>"
},
"type":0,
"uri":"oss://vpc100-oss-cn-beijing.aliyuncs.com/bj-hsy-vod/p2191m9e/source/2017/11/10/65536f079dd74fb4bbbed100f018b2df_94e8b4511bbd204806ad68855f829a08.mp4",
"fastEditor":0,
"videoType":0,
"audio":null,
"audioStatus":null,
"audioTaskId":null,
"subtitle":null,
"subVideoType":null,
"shareStatus":0,
"shareToUserId":null,
"shareCategoryId":0,
"logoGroupId":null
},
"success":true
}
返回字段说明:
audio:VR转出的音频地址
audioStatus:VR转出的音频转码状态
audioTaskId:VR转出的音频转码任务id
audioBitrate:源文件音频码率
bitrate:源文件比特率
category:类别
categoryId:类别id
contentId:content id,用于视频加解密
cover:默认封面图
customId:custom id,用于视频加解密
date:视频上传日期
description:描述
duration:视频时长,毫秒
fastEditor:是否快编
fileName:文件名
height:源视频文件高度
id:视频id
logoGroupId:转码时所用的台标组id
parentId:父视频id
playCode:播放码
flashUrl:flash播放地址
htmlEmbedCode:html嵌入式代码
previewUrl:预览地址
playNum:播放次数
playrate:播放速率,目前为倍数:0.8,1.2,1.4,1.6;缩时:10,30,60,180,单位为秒
shareCategoryId:分享的视频类别,目前无效
shareStatus:分享状态,目前无效
shareToUserId:分享给的用户id,目前无效
size:视频大小,KB
sourceContentId:视频源本身为加密时所使用的key之一
sourceCustomId:视频源本身为加密时所使用的key之一
status:视频转码状态,1 转码中,2 转码完成,3 转码出错,4 上传失败,5 未知文件类型,6 二次转码中,7 排队中
subtitle:字幕
subPlayrateList:子视频列表
videoId:子视频id
playrate:子视频播放速率,含义同上
subVideoType:子视频类型,0 倍数转码,1 缩时转码
subVideoType:如果该视频为子视频,则表示子视频类型,0 倍数转码,1 缩时转码
tag:视频标签
taskId:视频转码任务id,
thumbnail:默认缩略图
title:标题
transcodedVideoList:转码后的视频地址列表
aesKey:AES加密所用的key
audioBitrate:转码后音频码率
contentId:当虹加密所用的key之一
customId:当虹加密所用的key之一
defaultVideo:是否为默认播放,1 是, 0 否
flvEncryptType:转码后flv加密类型,0 不加密,7 当虹加密
flvUrl:转码后flv地址
flvSize:转码后flv文件大小,Byte
hlsEncryptType:转码后hls加密类型,0 不加密,6 AES加密,7 当虹加密,目前AES加密只对hls起作用
hlsUrl:转码后hls地址
hlsSize:转码后hls文件大小,Byte
idx:同一个文件的不同输出地址索引
mp4EncryptType:转码后mp4加密类型,0 不加密,7当虹加密
mp4Url:转码后mp4地址
mp4Size:转码后mp4文件大小,Byte
name:名称
status:转码任务状态
taskId:转码任务id
tsEncryptType:转码后ts加密类型,0 不加密,7 当虹加密
tsUrl:转码后ts地址
tsSize:转码后ts文件大小,Byte
type:转码后的文件类型,0 普通,1 试看片段
videoBitrate:视频码率
videoHeight:转码后视频高度
videoWidth:转码后视频宽度
type:源文件类型,0 普通文件,1 hls文件,3 直播录制,4 快编,5 直播录制二次转码,6 快编二次转码,7 视频叠加,8 视频叠加二次转码
uploadTime:上传时间
userId:用户id
uri:源文件uri
videoType:视频类型 0 普通,1 VR
width:源视频文件宽度
所有状态码code与message的对应关系:
0:success
10000:exception
10012:video_not_exists
10201:api_not_exists
PHP 示例:
$interfaceUrl = "http://api.danghongyun.com/rest?";
$action = "getVideoInfo";
$version = "2.0";
$timestamp = "1466488681033";
$videoId = "f17bdfdeef5942eabb829acbd920be94";
$paramArr = array(
"accessKey"=>$accessKey,
"action"=>$action,
"version"=>$version,
"timestamp"=>$timestamp,
"videoId"=>$videoId
);
$paramArr["signature"] = mkSig($paramArr, $accessKey,$accessSecret);
$res = curlGet($interfaceUrl.mkUrl($paramArr));
echo $res;
获取视频状态
服务地址:
http://api.danghongyun.com/rest
请求方式:
GET
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"getVideoStatus" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
videoId | 视频id | String | 必选 |
返回数据:
调用成功则返回视频状态信息,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):转码完成-0,其他状态-其它值。
返回信息(message):转码完成-success,其他状态则为别的信息。
返回结果(result):为空("")或其他数据。
返回数据示例:
{
"code":0,
"message":"success",
"result":"",
"success":true
}
所有状态码code与message的对应关系:
0:success
10000:exception
10012:video_not_exists
10017:video_not_exists
10025:create_transcode_task_failed
10033:transcode_running
10034:transcode_failed
10035:upload_failed
10036:unknown_video_status
10067:video_is_in_transcode_waitting_list
10201:api_not_exists
PHP 示例:
$interfaceUrl = "http://api.danghongyun.com/rest?";
$action = "getVideoStatus";
$version = "2.0";
$timestamp = "1466488681033";
$videoId = "7d61d1293d214334bff7ce04b38265fc";
$paramArr = array(
"accessKey"=>$accessKey,
"action"=>$action,
"version"=>$version,
"timestamp"=>$timestamp,
"videoId"=>$videoId
);
$paramArr["signature"] = mkSig($paramArr, $accessKey,$accessSecret);
$res = curlGet($interfaceUrl.mkUrl($paramArr));
echo $res;
获取视频数量
服务地址:
http://api.danghongyun.com/rest
请求方式:
GET
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"getVideoCount" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
keyword | 搜索关键字,如果输入参数没有keyword,则返回该用户所有的视频数量,否则返回该用户按该关键字搜索标题和标签得到的视频数量 | String | 可选 |
categoryId | 类别id,如果输入,则返回该分类的视频数量 | Integer | 可选 |
videoType | 0:普通视频,1:VR,不传该值的话默认为0 | Integer | 可选 |
status | 视频状态,不传该值的话为返回所有状态的视频,状态取值:0,1,2,3,4,5,6,7详见下面说明 | Integer | 可选 |
status取值说明:
0:TRANSCODE_STATUS_UPLOAD_FINISHED
1:TRANSCODE_STATUS_START
2:TRANSCODE_STATUS_COMPLETED
3:TRANSCODE_STATUS_FAILED
4:TRANSCODE_STATUS_UPLOAD_FAILED
5:TRANSCODE_STATUS_UNKNOWN_FILE_TYPE
6:TRANSCODE_STATUS_SECOND_TRANSCODE_START
7:TRANSCODE_STATUS_WAITTING
返回数据:
调用成功则返回相应视频数据,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):成功为视频数量,失败则为错误数据或空("")。
返回数据示例:
{
"code":0,
"message":"success",
"result":45,
"success":true
}
返回字段说明:
所有状态码code与message的对应关系:
0:success
10000:exception
10201:api_not_exists
PHP 示例:
$interfaceUrl = "http://api.danghongyun.com/rest?";
$action = "getVideoCount";
$version = "2.0";
$timestamp = "1466488681033";
$keyword = "test";
$categoryId = 1;
$videoType = 0;
$status = 2;
$paramArr = array(
"accessKey"=>$accessKey,
"action"=>$action,
"version"=>$version,
"timestamp"=>$timestamp,
"keyword"=>keyword,
"categoryId"=>categoryId,
"videoType"=>videoType,
"status"=>status
);
$paramArr["signature"] = mkSig($paramArr, $accessKey,$accessSecret);
$res = curlGet($interfaceUrl.mkUrl($paramArr));
echo $res;
查找视频(获取视频列表)
服务地址:
http://api.danghongyun.com/rest
请求方式:
GET
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"queryVideo" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
start | 开始位置 | String | 必选 |
number | 数量 | String | 必选 |
sort | 结果按该字段排序,只能为title, size, category, uploadTime, status, tag | String | 必选 |
order | asc 顺序,desc 倒序 | String | 必选 |
searchType | searchType 查找视频,查找类型为title,tag,all, 分别为按title查找,按tag查找,按title和tag一起查找,查找时必须同时要输入参数keyword。为空时为获取视频列表,此时不必须输入参数keyword | String | 可选 |
keyword | 查找的关键字 | String | 可选 |
categoryId | 视频类别id | Integer,按以上要求查找的同时查属于该分类的结果,若不填,则为所有分类 | 可选 |
videoType | 0:普通视频,1:VR,不传该值的话默认为0 | Integer | 可选 |
status | 视频状态,不传该值的话为返回所有状态的视频,状态取值:0,1,2,3,4,5,6,7详见下面说明 | Integer | 可选 |
status取值说明:
0:TRANSCODE_STATUS_UPLOAD_FINISHED
1:TRANSCODE_STATUS_START
2:TRANSCODE_STATUS_COMPLETED
3:TRANSCODE_STATUS_FAILED
4:TRANSCODE_STATUS_UPLOAD_FAILED
5:TRANSCODE_STATUS_UNKNOWN_FILE_TYPE
6:TRANSCODE_STATUS_SECOND_TRANSCODE_START
7:TRANSCODE_STATUS_WAITTING
返回数据:
调用成功则返回相关视频列表,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):成功为相关视频列表,失败则为错误数据或空("")。
返回数据示例:
{
"code":0,
"message":"success",
"result":
[
{
"id":"b01811bcb49a4bef9847f3555752a3c6",
"parentId":null,
"playrate":"1.0",
"fileName":"290c4314065646f384ac52d21a718c9e.mp4",
"thumbnail":"http://k35rdw4u.images.danghongyun.com/cover/2017/11/27/b01811bcb49a4bef9847f3555752a3c6/193_b01811bcb49a4bef9847f3555752a3c6_0.jpg",
"cover":"http://k35rdw4u.images.danghongyun.com/cover/2017/11/27/b01811bcb49a4bef9847f3555752a3c6/193_b01811bcb49a4bef9847f3555752a3c6_0.jpg",
"title":"1.mp4",
"width":720,
"height":576,
"bitrate":333209,
"audioBitrate":0,
"duration":286000,
"playNum":0,
"size":11361,
"userId":193,
"categoryId":0,
"category":null,
"status":2,
"date":"2017/11/27",
"uploadTime":1511779239632,
"tag":null,
"description":null,
"contentId":null,
"customId":null,
"sourceContentId":null,
"sourceCustomId":null,
"transcodedVideoList":
[
{
"name":"高清",
"hlsUrl":"http://k35rdw4u.vod2.danghongyun.com/target/hls/2017/11/27/193_b01811bcb49a4bef9847f3555752a3c6_10_720x576.m3u8",
"hlsSize":23635592,
"mp4Url":"http://k35rdw4u.vod2.danghongyun.com/target/mp4/2017/11/27/193_b01811bcb49a4bef9847f3555752a3c6_10_720x576.mp4",
"mp4Size":19244116,
"flvUrl":"http://k35rdw4u.vod2.danghongyun.com/target/flv/2017/11/27/193_b01811bcb49a4bef9847f3555752a3c6_10_720x576.flv",
"flvSize":19442983,
"tsUrl":"http://k35rdw4u.vod2.danghongyun.com/target/ts/2017/11/27/193_b01811bcb49a4bef9847f3555752a3c6_10_720x576.ts",
"tsSize":23762824,
"videoWidth":720,
"videoHeight":576,
"videoBitrate":500,
"audioBitrate":64000,
"defaultVideo":1,
"taskId":"113444",
"status":2,
"idx":1,
"type":0,
"hlsEncryptType":0,
"mp4EncryptType":0,
"flvEncryptType":0,
"tsEncryptType":0,
"contentId":null,
"customId":null,
"aesKey":null
}
],
"subPlayrateList":
[
{
"videoId":"577e0bcfc4774cc295668d1638e1752b",
"playrate":"0.8",
"subVideoType":0
},
{
"videoId":"dd9220fc79e34651a8140d77ecbe7e95",
"playrate":"30",
"subVideoType":0
}
],
"playCode":
{
"previewUrl":"http://www.danghongyun.com/video/preview/193/b01811bcb49a4bef9847f3555752a3c6",
"flashUrl":"http://www.danghongyun.com/video/preview/193/b01811bcb49a4bef9847f3555752a3c6.swf",
"htmlEmbedCode":"<div id=\"193_b01811bcb49a4bef9847f3555752a3c6\" style=\"text-align:center;\"></div>\r\n<script type=\"text/javascript\" src=\"http://static.danghongyun.com/libs/embed/H_E_v0.2.js\"></script>\r\n<script type=\"text/javascript\">\r\n HONGSHIYUN.embed(\"193_b01811bcb49a4bef9847f3555752a3c6\",{\r\n width:\"100%\",\r\n height:\"100%\",\r\n autoPlay:false\r\n });\r\n</script>"
},
"type":0,
"uri":null,
"fastEditor":0,
"videoType":0,
"audio":null,
"audioStatus":null,
"audioTaskId":null,
"subtitle":null,
"subVideoType":null,
"shareStatus":0,
"shareToUserId":null,
"shareCategoryId":0,
"logoGroupId":null
},
{
"id":"4b4deb6b24b54ec0b816d607a4317712",
"parentId":null,
"playrate":"1.0",
"fileName":"254b95af058441218eddeae1ff7f10df.mp4",
"thumbnail":"http://k35rdw4u.images.danghongyun.com/thumb/2017/11/27/4b4deb6b24b54ec0b816d607a4317712/193_4b4deb6b24b54ec0b816d607a4317712_0.jpg",
"cover":"http://k35rdw4u.images.danghongyun.com/cover/2017/11/27/4b4deb6b24b54ec0b816d607a4317712/193_4b4deb6b24b54ec0b816d607a4317712_0.jpg",
"title":"7.mp4",
"width":1280,
"height":720,
"bitrate":1312051,
"audioBitrate":0,
"duration":35360,
"playNum":0,
"size":5530,
"userId":193,
"categoryId":0,
"category":null,
"status":2,
"date":"2017/11/27",
"uploadTime":1511778702647,
"tag":null,
"description":null,
"contentId":null,
"customId":null,
"sourceContentId":null,
"sourceCustomId":null,
"transcodedVideoList":
[
{
"name":"超清",
"hlsUrl":null,
"hlsSize":0,
"mp4Url":"http://k35rdw4u.vod2.danghongyun.com/target/mp4/2017/11/27/193_4b4deb6b24b54ec0b816d607a4317712_10_1280x360.mp4",
"mp4Size":2318404,
"flvUrl":null,
"flvSize":0,
"tsUrl":null,
"tsSize":0,
"videoWidth":1280,
"videoHeight":360,
"videoBitrate":500,
"audioBitrate":64000,
"defaultVideo":1,
"taskId":"113442",
"status":2,
"idx":1,
"type":0,
"hlsEncryptType":0,
"mp4EncryptType":0,
"flvEncryptType":0,
"tsEncryptType":0,
"contentId":null,
"customId":null,
"aesKey":null
}
],
"subPlayrateList":[],
"playCode":
{
"previewUrl":"http://www.danghongyun.com/video/preview/193/4b4deb6b24b54ec0b816d607a4317712?isVR=true",
"flashUrl":"http://www.danghongyun.com/video/preview/193/4b4deb6b24b54ec0b816d607a4317712.swf?isVR=true",
"htmlEmbedCode":"<div id=\"193_4b4deb6b24b54ec0b816d607a4317712\" style=\"text-align:center;\"></div>\r\n<script type=\"text/javascript\" src=\"http://static.danghongyun.com/libs/embed/H_E_v0.2.js\"></script>\r\n<script type=\"text/javascript\">\r\n HONGSHIYUN.embed(\"193_4b4deb6b24b54ec0b816d607a4317712\",{\r\n width:\"100%\",\r\n height:\"100%\",\r\n autoPlay:false\r\n });\r\n</script>"
},
"type":0,
"uri":null,
"fastEditor":0,
"videoType":1,
"audio":"audio/2017/11/27/193_4b4deb6b24b54ec0b816d607a4317712.mp3",
"audioStatus":3,
"audioTaskId":"113443",
"subtitle":null,
"subVideoType":null,
"shareStatus":0,
"shareToUserId":null,
"shareCategoryId":0,
"logoGroupId":null
}
],
"success":true
}
返回字段说明:
audio:VR转出的音频地址
audioStatus:VR转出的音频转码状态
audioTaskId:VR转出的音频转码任务id
audioBitrate:源文件音频码率
bitrate:源文件比特率
category:类别
categoryId:类别id
contentId:content id,用于视频加解密
cover:默认封面图
customId:custom id,用于视频加解密
date:视频上传日期
description:描述
duration:视频时长,毫秒
fastEditor:是否快编
fileName:文件名
height:源视频文件高度
id:视频id
logoGroupId:转码时所用的台标组id
parentId:父视频id
playCode:播放码
flashUrl:flash播放地址
htmlEmbedCode:html嵌入式代码
previewUrl:预览地址
playNum:播放次数
playrate:播放速率,目前为倍数:0.8,1.2,1.4,1.6;缩时:10,30,60,180,单位为秒
shareCategoryId:分享的视频类别,目前无效
shareStatus:分享状态,目前无效
shareToUserId:分享给的用户id,目前无效
size:视频大小,KB
sourceContentId:视频源本身为加密时所使用的key之一
sourceCustomId:视频源本身为加密时所使用的key之一
status:视频转码状态,1 转码中,2 转码完成,3 转码出错,4 上传失败,5 未知文件类型,6 二次转码中,7 排队中
subtitle:字幕
subPlayrateList:子视频列表
videoId:子视频id
playrate:子视频播放速率,含义同上
subVideoType:子视频类型,0 倍数转码,1 缩时转码
subVideoType:如果该视频为子视频,则表示子视频类型,0 倍数转码,1 缩时转码
tag:视频标签
taskId:视频转码任务id,
thumbnail:默认缩略图
title:标题
transcodedVideoList:转码后的视频地址列表
aesKey:AES加密所用的key
audioBitrate:转码后音频码率
contentId:当虹加密所用的key之一
customId:当虹加密所用的key之一
defaultVideo:是否为默认播放,1 是, 0 否
flvEncryptType:转码后flv加密类型,0 不加密,7 当虹加密
flvUrl:转码后flv地址
flvSize:转码后flv文件大小,Byte
hlsEncryptType:转码后hls加密类型,0 不加密,6 AES加密,7 当虹加密,目前AES加密只对hls起作用
hlsUrl:转码后hls地址
hlsSize:转码后hls文件大小,Byte
idx:同一个文件的不同输出地址索引
mp4EncryptType:转码后mp4加密类型,0 不加密,7当虹加密
mp4Url:转码后mp4地址
mp4Size:转码后mp4文件大小,Byte
name:名称
status:转码任务状态
taskId:转码任务id
tsEncryptType:转码后ts加密类型,0 不加密,7 当虹加密
tsUrl:转码后ts地址
tsSize:转码后ts文件大小,Byte
type:转码后的文件类型,0 普通,1 试看片段
videoBitrate:视频码率
videoHeight:转码后视频高度
videoWidth:转码后视频宽度
type:源文件类型,0 普通文件,1 hls文件,3 直播录制,4 快编,5 直播录制二次转码,6 快编二次转码,7 视频叠加,8 视频叠加二次转码
uploadTime:上传时间
userId:用户id
uri:源文件uri
videoType:视频类型 0 普通,1 VR
width:源视频文件宽度
所有状态码code与message的对应关系:
0:success
10000:exception
10013:sort_type_is_incorrect
10018:search_type_is_incorrect
10201:api_not_exists
PHP 示例:
$interfaceUrl = "http://api.danghongyun.com/rest?";
$accessKey = "a020e193-0f1";
$action = "queryVideo";
$version = "2.0";
$timestamp = "1466488681033";
$paramArr = array(
"accessKey"=>$accessKey,
"action"=>$action,
"version"=>$version,
"timestamp"=>$timestamp,
"version"=>$version,
"timestamp"=>$timestamp,
"start"=>0,
"number"=>10,
"sort"=>'title',
"order"=>'asc',
"searchType"=>'all',
"keyword"=>'3'
);
$paramArr["signature"] = mkSig($paramArr, $accessKey,$accessSecret);
$res = curlGet($interfaceUrl.mkUrl($paramArr));
echo $res;
获取视频播放码
服务地址:
http://api.danghongyun.com/rest
请求方式:
GET
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"getVideoPlaycode" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
videoId | 视频id | String | 必选 |
返回数据:
调用成功则返回视频播放码,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):成功为视频播放码,失败则为错误数据或空("")。
返回数据示例:
{
"code":0,
"message":"success",
"result":
{
"previewUrl":"http://www.stg.danghongyun.com/video/preview/2/262673e5c3f44cf7939523f14b42ed2b",
"flashUrl":"http://www.stg.danghongyun.com/video/preview/2/262673e5c3f44cf7939523f14b42ed2b.swf",
"htmlEmbedCode":"<div id=\"2_262673e5c3f44cf7939523f14b42ed2b\" style=\"text-align:center;\"></div>\r\n<script type=\"text/javascript\" src=\"http://static.danghongyun.com/libs/embed/H_E_v0.1.js\"></script>\r\n<script type=\"text/javascript\">\r\n HONGSHIYUN.embed(\"2_262673e5c3f44cf7939523f14b42ed2b\",{\r\n \t width:\"100%\",\r\n \t height:\"100%\",\r\n \t autoPlay:false\r\n \t });\r\n</script>\r\n\r\n"
},
"success":true
}
返回字段说明:
previewUrl:预览地址
flashUrl:flash播放地址
htmlEmbedCode:html嵌入式代码
所有状态码code与message的对应关系:
0:success
10000:exception
10012:video_not_exists
10017:video_not_exists
10201:api_not_exists
PHP 示例:
$interfaceUrl = "http://api.danghongyun.com/rest?";
$accessKey = "a020e193-0f1";
$action = "getVideoPlaycode";
$version = "2.0";
$timestamp = "1466488681033";
$paramArr = array(
"accessKey"=>$accessKey,
"action"=>$action,
"version"=>$version,
"timestamp"=>$timestamp,
"videoId"=>'5b7f5ed59f7f41f49c3ff3ef6d8304df'
);
$paramArr["signature"] = mkSig($paramArr, $accessKey,$accessSecret);
$res = curlGet($interfaceUrl.mkUrl($paramArr));
echo $res;
新增视频分类
服务地址:
http://api.danghongyun.com/rest
请求方式:
POST
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"addVideoCategory" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
category | 分类名 | String,最大20个字符 | 必选 |
返回数据:
调用成功则返回视频分类列表,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):成功为视频分类列表,失败则为错误数据或空("")。
返回数据示例:
{
"code":0,
"message":"success",
"result":
{
"id":2,
"category":"newCategory"
},
"success":true
}
返回字段说明:
所有状态码code与message的对应关系:
0:success
10000:exception
10029:video_category_already_exists
10083:add_video_category_failed
10201:api_not_exists
PHP 示例:
$interfaceUrl = "http://api.danghongyun.com/rest?";
$accessKey = "a020e193-0f1";
$action = "addVideoCategory";
$version = "2.0";
$timestamp = "1466488681033";
$paramArr = array(
"accessKey"=>$accessKey,
"action"=>$action,
"version"=>$version,
"timestamp"=>$timestamp,
"category"=>"newCategory"
);
$paramArr["signature"] = mkSig($paramArr, $accessKey,$accessSecret);
$res = curlPost($paramArr,$interfaceUrl);
echo $res;
获取视频分类信息
服务地址:
http://api.danghongyun.com/rest
请求方式:
GET
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"getVideoCategoryList" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
返回数据:
调用成功则返回视频分类列表,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):成功为视频分类列表,失败则为错误数据或空("")。
返回数据示例:
{
"code":0,
"message":"success",
"result":
[
{
"id":1,
"category":"basketball"
},
{
"id":2,
"category":"footall"
}
],
"success":true
}
返回字段说明:
category:分类名称
所有状态码code与message的对应关系:
0:success
10000:exception
10201:api_not_exists
PHP 示例:
$interfaceUrl = "http://api.danghongyun.com/rest?";
$accessKey = "a020e193-0f1";
$action = "getVideoCategoryList";
$version = "2.0";
$timestamp = "1466488681033";
$paramArr = array(
"accessKey"=>$accessKey,
"action"=>$action,
"version"=>$version,
"timestamp"=>$timestamp
);
$paramArr["signature"] = mkSig($paramArr, $accessKey,$accessSecret);
$res = curlGet($interfaceUrl.mkUrl($paramArr));
echo $res;
修改视频分类
服务地址:
http://api.danghongyun.com/rest
请求方式:
POST
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"updateVideoCategory" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
id | 分类id | Integer | 必选 |
category | 分类名 | String,最大20个字符 | 必选 |
返回数据:
调用成功则返回视频分类列表,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):成功为视频分类列表,失败则为错误数据或空("")。
返回数据示例:
{
"code":0,
"message":"success",
"result":
{
"id":1,
"category":"newCategory"
},
"success":true
}
返回字段说明:
所有状态码code与message的对应关系:
0:success
10000:exception
10029:video_category_already_exists
10084:video_category_id_not_exists
10201:api_not_exists
PHP 示例:
$interfaceUrl = "http://api.danghongyun.com/rest?";
$accessKey = "a020e193-0f1";
$action = "updateVideoCategory";
$version = "2.0";
$timestamp = "1466488681033";
$paramArr = array(
"accessKey"=>$accessKey,
"action"=>$action,
"version"=>$version,
"timestamp"=>$timestamp,
"id"=>'1',
"category"=>"newCategory"
);
$paramArr["signature"] = mkSig($paramArr, $accessKey,$accessSecret);
$res = curlPost($paramArr,$interfaceUrl);
echo $res;
删除视频分类
服务地址:
http://api.danghongyun.com/rest
请求方式:
POST
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"deleteVideoCategory" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
ids | 分类id,多个用逗号隔开,如"1,2,3" | String | 必选 |
返回数据:
调用成功则返回视频分类列表,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):成功为视频分类列表,失败则为错误数据或空("")。
返回数据示例:
{
"code":0,
"message":"success",
"result":"",
"success":true
}
返回字段说明:
所有状态码code与message的对应关系:
0:success
10000:exception
10201:api_not_exists
PHP 示例:
$interfaceUrl = "http://api.danghongyun.com/rest?";
$accessKey = "a020e193-0f1";
$action = "deleteVideoCategory";
$version = "2.0";
$timestamp = "1466488681033";
$paramArr = array(
"accessKey"=>$accessKey,
"action"=>$action,
"version"=>$version,
"timestamp"=>$timestamp,
"ids"=>"1,2,3"
);
$paramArr["signature"] = mkSig($paramArr, $accessKey,$accessSecret);
$res = curlPost($paramArr,$interfaceUrl);
echo $res;
新建/修改转码模板组
服务地址:
http://api.danghongyun.com/rest
请求方式:
POST
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"templateGroup" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
id | 转码模板组id,不传该参数时为增加模板组,传该参数的时候为修改对应模板组 | String | 可选 |
transcodeTemplates | 模板组内的目标参数,如: [{"name":"超清","videoWidth":1280,"videoHeight":720,"videoBitrate":1000,"audioBitrate":192000,"format":0,"encryptType":6,"defaultVideo":1},{"name":"高清","videoWidth":640,"videoHeight":480,"videoBitrate":500,"audioBitrate":192000,"format":1,"encryptType":7,"defaultVideo":0},{"name":"标清","videoWidth":480,"videoHeight":360,"videoBitrate":250,"audioBitrate":192000,"format":2,"encryptType":0,"defaultVideo":0}] | String | 必选 |
name | 转码模板组名 | String | 必选 |
type | 该模板组为普通视频模板组或者VR视频模板组, 0:普通模板,1:VR模板 | Integer | 必选 |
trailor | 是否额外再转码试看片段,false:否,true:是 | Boolean | 可选 |
trailorDuration | 试看时长,单位秒 | Long | 可选 |
logoGroupId | 台标组id | Integer | 可选 |
name | 模板名字 | String | 必选 |
videoWidth | 视频宽度 | Integer | 必选 |
videoHeight | 视频高度 | Integer | 必选 |
videoBitrate | 视频比特率,1000为1000kbps | Integer | 必选 |
audioBitrate | 音频比特率,64000为64kbps | Integer | 必选 |
format | 转码格式,0 hls, 1 mp4, 2 flv, 3 ts | Integer | 必选 |
encryptType | 加密类型,0 不加密,6 AES加密,7 当虹加密,其中AES加密只对hls起作用 | Integer | 必选 |
defaultVideo | 1 默认播放模板,0 非默认,确保defaultVideo=1的有且只有一个 | Integer | 必选 |
advancedArguments | 高级参数,样例{"rc":"CBR","gopSize":4000,"bFrame":0,"refFrame":1,"qualityLevel":null,"interlace":-1,"smartBorder":1} | String | 可选 |
返回数据:
调用成功则返模板组ID,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):模版组ID
返回数据示例:
{
"result": 1015,
"code": 0,
"success": true,
"message": "成功"
}
所有状态码code与message的对应关系:
0:success
10000:exception
10003:account_not_exists
10050:sub_can_not_modify_transcode_template
10061:transcode_template_is_not_correct
10081:transcode_template_group_not_exist
10082:can_not_modify_this_template_group
10095:can_not_modify_default_template_group_type
删除转码模板组
服务地址:
http://api.danghongyun.com/rest
请求方式:
POST
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"deleteTemplateGroup" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
ids | 转码组id,多个id用逗号隔开,如"1,2,3" | String | 必选 |
返回数据:
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):成功为视频分类列表,失败则为错误数据或空("")。
返回数据示例:
{
"code":0,
"message":"success",
"result":"",
"success":true
}
所有状态码code与message的对应关系:
0:success
10000:exception
10003:account_not_exists
10050:sub_can_not_modify_transcode_template
新建/修改转码台标组
服务地址:
http://api.danghongyun.com/rest
请求方式:
POST
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为 logoGroup | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
signature | 签名 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必须 |
id | 台标组id,不传该参数时为增加台标组,传该参数的时候为修改对应台标组 | String | 可选 |
name | 台标组名 | String | 必须 |
logos | 台标组内的目标参数,如:[{"uri":"bj-hsy-images/p2191m9e/watermark/1.png","width":100,"height":50,"leftPos":0,"topPos":0,"opacity":100,"resize":100,"start":0,"end":50},{"uri":"bj-hsy-images/p2191m9e/watermark/2.png","width":100,"height":50,"leftPos":100,"topPos":100,"opacity":100,"resize":100,"start":50,"end":100}] | String | 必须 |
uri | 台标相对路径 | String | 必须 |
width | 台标宽度 | Integer | 必须 |
height | 台标高度 | Integer | 必须 |
leftPos | 台标左上角位置宽度百分比,如90%,则leftPos=90;以下参数百分比类似 | Integer | 必须 |
topPos | 台标左上角位置高度百分比 | Integer | 必须 |
opacity | 台标透明度百分比 | Integer | 必须 |
resize | 台标缩放值百分比 | Integer | 必须 |
start | 台标开始时间点,百分比 | Integer | 必须 |
end | 台标结束时间点,百分比 | Integer | 必须 |
返回数据:
{
"code":0,
"message":"success",
"result":"",
"success":true
}
返回字段说明
code:状态码
message:状态描述
success:成功/失败
删除台标组
服务地址:
http://api.danghongyun.com/rest
请求方式:
POST
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为 deleteLogoGroup | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
signature | 签名 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必须 |
ids | 台标组id,多个用逗号隔开,如“1,2,3” | String | 必须 |
返回数据:
{
"code": 0,
"success": true,
"message": "操作成功"
}
返回字段说明
code:状态码
message:状态描述
success:成功/失败
获取视频缩略图列表
服务地址:
http://api.danghongyun.com/rest
请求方式:
GET
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"getThumbnailList" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
videoId | 视频id | String | 必选 |
返回数据:
调用成功则返回视频的缩略图列表,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):成功为缩略图列表,失败则为错误数据或空("")。
返回数据示例:
{
"code":0,
"message":"success",
"result":
[
{
"videoId":"f25f1e155c5c4cf6b912d0f8422ba015",
"id":0,
"url":"http://p2191m9e.images.danghongyun.com/thumb/2017/09/30/f25f1e155c5c4cf6b912d0f8422ba015/191_f25f1e155c5c4cf6b912d0f8422ba015_0.jpg",
"defaultThumbnail":1
},
{
"videoId":"f25f1e155c5c4cf6b912d0f8422ba015",
"id":1,
"url":"http://p2191m9e.images.danghongyun.com/thumb/2017/09/30/f25f1e155c5c4cf6b912d0f8422ba015/191_f25f1e155c5c4cf6b912d0f8422ba015_1.jpg",
"defaultThumbnail":0
},
{
"videoId":"f25f1e155c5c4cf6b912d0f8422ba015",
"id":2,
"url":"http://p2191m9e.images.danghongyun.com/thumb/2017/09/30/f25f1e155c5c4cf6b912d0f8422ba015/191_f25f1e155c5c4cf6b912d0f8422ba015_2.jpg",
"defaultThumbnail":0
},
{
"videoId":"f25f1e155c5c4cf6b912d0f8422ba015",
"id":3,
"url":"http://p2191m9e.images.danghongyun.com/thumb/2017/09/30/f25f1e155c5c4cf6b912d0f8422ba015/191_f25f1e155c5c4cf6b912d0f8422ba015_3.jpg",
"defaultThumbnail":0
},
{
"videoId":"f25f1e155c5c4cf6b912d0f8422ba015",
"id":4,
"url":"http://p2191m9e.images.danghongyun.com/thumb/2017/09/30/f25f1e155c5c4cf6b912d0f8422ba015/191_f25f1e155c5c4cf6b912d0f8422ba015_4.jpg",
"defaultThumbnail":0
},
{
"videoId":"f25f1e155c5c4cf6b912d0f8422ba015",
"id":5,
"url":"http://p2191m9e.images.danghongyun.com/thumb/2017/09/30/f25f1e155c5c4cf6b912d0f8422ba015/191_f25f1e155c5c4cf6b912d0f8422ba015_5.jpg",
"defaultThumbnail":0
},
{
"videoId":"f25f1e155c5c4cf6b912d0f8422ba015",
"id":6,
"url":"http://p2191m9e.images.danghongyun.com/thumb/2017/09/30/f25f1e155c5c4cf6b912d0f8422ba015/191_f25f1e155c5c4cf6b912d0f8422ba015_6.jpg",
"defaultThumbnail":0
},
{
"videoId":"f25f1e155c5c4cf6b912d0f8422ba015",
"id":7,
"url":"http://p2191m9e.images.danghongyun.com/thumb/2017/09/30/f25f1e155c5c4cf6b912d0f8422ba015/191_f25f1e155c5c4cf6b912d0f8422ba015_7.jpg",
"defaultThumbnail":0
}
],
"success":true
}
返回字段说明:
videoId:视频id
id:缩略图id,一共8张,从0到7
url:缩略图地址
defaultThumbnail:是否为默认缩略图
所有状态码code与message的对应关系:
0:success
10000:exception
10012:video_not_exists
10201:api_not_exists
PHP 示例:
$interfaceUrl = "http://api.danghongyun.com/rest?";
$accessKey = "a020e193-0f1";
$action = "getThumbnailList";
$version = "2.0";
$timestamp = "1466488681033";
$paramArr = array(
"accessKey"=>$accessKey,
"action"=>$action,
"version"=>$version,
"timestamp"=>$timestamp,
"videoId"=>'27cd5363e9074d419406cd2e93e28202'
);
$paramArr["signature"] = mkSig($paramArr, $accessKey,$accessSecret);
$res = curlGet($interfaceUrl.mkUrl($paramArr));
echo $res;
获取视频封面图列表
服务地址:
http://api.danghongyun.com/rest
请求方式:
GET
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"getCoverList" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
videoId | 视频id | String | 必选 |
返回数据:
调用成功则返回视频的封面图列表,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):成功为封面图列表,失败则为错误数据或空("")。
返回数据示例:
{
"code":0,
"message":"success",
"result":
[
{
"videoId":"685d4e8dc6f642b2a81109d537ea80a1",
"id":0,
"url":"http://k35rdw4u.images.danghongyun.com/cover%2F2017%2F02%2F27%2F193_liangsun%40arcvideo.com_1488177361161_test4.jpg",
"defaultCover":1
},
{
"videoId":"685d4e8dc6f642b2a81109d537ea80a1",
"id":1,
"url":"http://k35rdw4u.images.danghongyun.com/cover%2F2017%2F02%2F27%2F193_liangsun%40arcvideo.com_1488177361161_test4_1.jpg",
"defaultCover":0
},
{
"videoId":"685d4e8dc6f642b2a81109d537ea80a1",
"id":2,
"url":"http://k35rdw4u.images.danghongyun.com/cover%2F2017%2F02%2F27%2F193_liangsun%40arcvideo.com_1488177361161_test4_2.jpg",
"defaultCover":0
},
{
"videoId":"685d4e8dc6f642b2a81109d537ea80a1",
"id":3,
"url":"http://k35rdw4u.images.danghongyun.com/cover%2F2017%2F02%2F27%2F193_liangsun%40arcvideo.com_1488177361161_test4_3.jpg",
"defaultCover":0
},
{
"videoId":"685d4e8dc6f642b2a81109d537ea80a1",
"id":4,
"url":"http://k35rdw4u.images.danghongyun.com/cover%2F2017%2F02%2F27%2F193_liangsun%40arcvideo.com_1488177361161_test4_4.jpg",
"defaultCover":0
},
{
"videoId":"685d4e8dc6f642b2a81109d537ea80a1",
"id":5,
"url":"http://k35rdw4u.images.danghongyun.com/cover%2F2017%2F02%2F27%2F193_liangsun%40arcvideo.com_1488177361161_test4_5.jpg",
"defaultCover":0
},
{
"videoId":"685d4e8dc6f642b2a81109d537ea80a1",
"id":6,
"url":"http://k35rdw4u.images.danghongyun.com/cover%2F2017%2F02%2F27%2F193_liangsun%40arcvideo.com_1488177361161_test4_6.jpg",
"defaultCover":0
},
{
"videoId":"685d4e8dc6f642b2a81109d537ea80a1",
"id":7,
"url":"http://k35rdw4u.images.danghongyun.com/cover%2F2017%2F02%2F27%2F193_liangsun%40arcvideo.com_1488177361161_test4_7.jpg",
"defaultCover":0
}
],
"success":true
}
返回字段说明:
videoId:视频id
id:封面图id,一共8张,从0到7
url:封面图地址
defaultCover:是否为默认封面图
所有状态码code与message的对应关系:
0:success
10000:exception
10012:video_not_exists
10201:api_not_exists
PHP 示例:
$interfaceUrl = "http://api.danghongyun.com/rest?";
$accessKey = "a020e193-0f1";
$action = "getCoverList";
$version = "2.0";
$timestamp = "1466488681033";
$paramArr = array(
"accessKey"=>$accessKey,
"action"=>$action,
"version"=>$version,
"timestamp"=>$timestamp,
"videoId"=>'27cd5363e9074d419406cd2e93e28202'
);
$paramArr["signature"] = mkSig($paramArr, $accessKey,$accessSecret);
$res = curlGet($interfaceUrl.mkUrl($paramArr));
echo $res;
更新视频信息
服务地址:
http://api.danghongyun.com/rest
请求方式:
POST
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"updateVideoInfo" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
videoId | 视频id | String | 必选 |
fileName | 视频文件名 | String | 可选 |
thumbnail | 缩略图地址 | String | 可选 |
cover | 封面图地址 | String | 可选 |
title | video标题 | String, 不超过50个字符 | 可选 |
playNum | video 播放次数 | Integer | 可选 |
categoryId | video 类别id | Integer | 可选 |
status | video 状态 | Integer | 可选 |
tag | video标签 | String | 可选 |
description | video简介 | String | 可选 |
width | 视频宽度 | Integer | 可选 |
height | 视频高度 | Integer | 可选 |
bitrate | 视频比特率 | Integer | 可选 |
audioBitrate | 音频比特率 | Integer | 可选 |
duration | 视频时长 | Integer | 可选 |
返回数据:
调用成功则返回成功,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):成功为空,失败则为错误数据或空("")。
返回数据示例:
{
"code":0,
"message":"success",
"result":"",
"success":true
}
返回字段说明:
所有状态码code与message的对应关系:
0:success
10000:exception
10012:video_not_exists
10017:video_not_exists
10201:api_not_exists
PHP 示例:
$interfaceUrl = "http://api.danghongyun.com/rest?";
$accessKey = "a020e193-0f1";
$action = "updateVideoInfo";
$version = "2.0";
$timestamp = "1466488681033";
$paramArr = array(
"accessKey"=>$accessKey,
"action"=>$action,
"version"=>$version,
"timestamp"=>$timestamp,
"fileName"=>'xxx',
"thumbnail"=>'thumb/2016/03/10/185_liangsun@arcvideo.com_1457606666164_3.jpg',
"cover"=>'cover/2016/03/10/185_liangsun@arcvideo.com_1457606666164_3.jpg',
"title"=>'title',
"playNum"=>'10',
"categoryId"=>'1',
"status"=>'2',
"tag"=>'tga',
"description"=>'des',
"width"=>'1920',
"height"=>'1080',
"bitrate"=>'252928',
"duration"=>'1537600',
"videoId"=>'5b7f5ed59f7f41f49c3ff3ef6d8304df'
);
$paramArr["signature"] = mkSig($paramArr, $accessKey,$accessSecret);
$res = curlPost($paramArr,$interfaceUrl);
echo $res;
删除视频 (批量删除视频)
服务地址:
http://api.danghongyun.com/rest
请求方式:
POST
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"deleteVideo"或"batchDeleteVideo" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
videoIds | 要删除的视频id, 多个id以逗号隔开,如"c82c3de31e594ab2ae58db37a92c1395,ff09ba247b9c432f8fe7527d7aaeb5a3" | String | 必选 |
返回数据:
调用成功则返回空,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):成功空,失败则为错误数据或空("")。
返回数据示例:
成功:
{
"code": 0,
"message": "success",
"result":
[
{
"id": "4b4deb6b24b54ec0b816d607a4317712",
"code": 0,
"message": "success"
},
{
"id": "b1906df45563431d88d5953f0a39e38x",
"code": 10012,
"message": "video_not_exists"
}
],
"success": true
}
返回值包含每个id所对应的结果
失败:
{
"code":10000,
"message":"exception",
"success":false
}
返回字段说明:
所有状态码code与message的对应关系:
0:success
10000:exception
10012:video_not_exists
10017:video_not_exists
10201:api_not_exists
PHP 示例:
$interfaceUrl = "http://api.danghongyun.com/rest?";
$accessKey = "a020e193-0f1";
$action = "deleteVideo";
$version = "2.0";
$timestamp = "1466488681033";
$videoIds = '776b9e3b45644c42b6d0f49c5fc1bf0e','62938679d0c94ccd811220a312c5075d';
$paramArr = array(
"accessKey"=>$accessKey,
"action"=>$action,
"version"=>$version,
"timestamp"=>$timestamp,
"videoIds"=>$videoIds
);
$paramArr["signature"] = mkSig($paramArr, $accessKey,$accessSecret);
$res = curlPost($paramArr,$interfaceUrl);
echo $res;
获取转码后的视频点播地址
服务地址:
http://api.danghongyun.com/rest
请求方式:
GET
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"getTranscodedVideos" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
ids | 视频id, 多个id以逗号隔开,如"c82c3de31e594ab2ae58db37a92c1395,ff09ba247b9c432f8fe7527d7aaeb5a3" | String | 必选 |
返回数据:
调用成功则返回转码后的视频地址,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):成功为转码后的视频地址,失败则为错误数据或空("")。
返回数据示例:
{
"code":0,
"message":"success",
"result":
[
{
"id":"b1906df45563431d88d5953f0a39e385",
"videoType":0,
"cdns":
[
{
"desc":"快网",
"defaultCdn":1,
"hls":
{
"dynamic":null,
"list":
[
{
"url":"http://k35rdw4u.vodf1.danghongyun.com/target/hls/2017/11/27/193_b1906df45563431d88d5953f0a39e385_10_720x576.m3u8",
"desc":"高清",
"width":720,
"height":576,
"size":null,
"encryptType":0,
"contentId":null,
"customId":null,
"aesKey":null,
"defaultVideo":1
},
{
"url":"http://k35rdw4u.vodf1.danghongyun.com/target/hls/2017/11/27/193_b1906df45563431d88d5953f0a39e385_20_320x240.m3u8",
"desc":"标清",
"width":320,
"height":240,
"size":null,
"encryptType":0,
"contentId":null,
"customId":null,
"aesKey":null,
"defaultVideo":0
}
]
},
"mp4":{
"dynamic":null,
"list":
[
{
"url":"http://k35rdw4u.vodf1.danghongyun.com/target/mp4/2017/11/27/193_b1906df45563431d88d5953f0a39e385_10_720x576.mp4",
"desc":"高清",
"width":720,
"height":576,
"size":null,
"encryptType":0,
"contentId":null,
"customId":null,
"aesKey":null,
"defaultVideo":1
}, {
"url":"http://k35rdw4u.vodf1.danghongyun.com/target/mp4/2017/11/27/193_b1906df45563431d88d5953f0a39e385_20_320x240.mp4",
"desc":"标清",
"width":320,
"height":240,
"size":null,
"encryptType":0,
"contentId":null,
"customId":null,
"aesKey":null,
"defaultVideo":0
}
]
},
"flv":
{
"dynamic":null,
"list":
[
{
"url":"http://k35rdw4u.vodf1.danghongyun.com/target/flv/2017/11/27/193_b1906df45563431d88d5953f0a39e385_10_720x576.flv",
"desc":"高清",
"width":720,
"height":576,
"size":null,
"encryptType":0,
"contentId":null,
"customId":null,
"aesKey":null,
"defaultVideo":1
}
]
},
"ts":
{
"dynamic":null,
"list":
[
{
"url":"http://k35rdw4u.vodf1.danghongyun.com/target/ts/2017/11/27/193_b1906df45563431d88d5953f0a39e385_10_720x576.ts",
"desc":"高清",
"width":720,
"height":576,
"size":null,
"encryptType":0,
"contentId":null,
"customId":null,
"aesKey":null,
"defaultVideo":1
}
]
},
"audio":null,
"rtmp":null,
"thumbnail":null,
"thumbnailInterval":null
}
],
"comments":null
},
{
"id":"4b4deb6b24b54ec0b816d607a4317712",
"videoType":1,
"cdns":
[
{
"desc":"快网",
"defaultCdn":1,
"hls":null,
"mp4":
{
"dynamic":null,
"list":
[
{
"url":"http://k35rdw4u.vodf1.danghongyun.com/target/mp4/2017/11/27/193_4b4deb6b24b54ec0b816d607a4317712_10_1280x360.mp4",
"desc":"超清",
"width":1280,
"height":360,
"size":null,
"encryptType":0,
"contentId":null,
"customId":null,
"aesKey":null,
"defaultVideo":1
}
]
},
"flv":null,
"ts":null,
"audio":"http://k35rdw4u.vodf1.danghongyun.com/audio/2017/11/27/193_4b4deb6b24b54ec0b816d607a4317712.mp3",
"rtmp":null,
"thumbnail":null,
"thumbnailInterval":null
}
],
"comments":null
}
],
"success":true
}
如果某个id对应视频无信息,则该项对应返回值都为null, 如:
{
"id":"ff09ba247b9c432f8fe7527d7aaeb5a3",
"videoType":null,
"cdns":null,
"comments":null
}
返回字段说明:
id:视频id
cdns:不同cdn的地址列表
desc:cdn名称
defaultCdn:是否为默认cdn,0 否,1 是
hls:hls地址
mp4:mp4地址
flv:flv地址
ts:ts地址
audio:预留字段,目前无效
rtmp:预留字段,目前无效
thumbnail:预留字段目前无效
thumbnailInterval:预留字段,目前无效
dynamic:预留字段,目前无效
list:列表
url:具体地址
desc:描述
width:宽度
height:高度
size:大小,Byte
encryptType:加密类型,0 不加密,6 AES加密,7 当虹加密,目前AES加密只对hls起作用
contentId:当虹加密所用的key之一
customId:当虹加密所用的key之一
aesKey:AES加密所用的key
defaultVideo:是否默认播放,0 否,1 是
videoType:视频类型 0 普通,1 VR
comments:打点信息,目前该字段无效
id:打点id
time:打点时间
comment:打点名称
所有状态码code与message的对应关系:
0:success
10000:exception
10030:no_cdn
10201:api_not_exists
PHP 示例:
$interfaceUrl = "http://api.danghongyun.com/rest?";
$accessKey = "a020e193-0f1";
$action = "getTranscodedVideos";
$version = "2.0";
$timestamp = "1466488681033";
$paramArr = array(
"accessKey"=>$accessKey,
"action"=>$action,
"version"=>$version,
"timestamp"=>$timestamp,
"ids"=>'26e4f387b36b4021a22cece8e3202651,34dc9817d3164cada83b1289b5b8db14'
);
$paramArr["signature"] = mkSig($paramArr, $accessKey,$accessSecret);
$res = curlGet($interfaceUrl.mkUrl($paramArr));
echo $res;
获取转码后的视频下载地址
服务地址:
http://api.danghongyun.com/rest
请求方式:
GET
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"getDownloadAddress" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
ids | 视频id, 多个id以逗号隔开,如"c82c3de31e594ab2ae58db37a92c1395,ff09ba247b9c432f8fe7527d7aaeb5a3" | String | 必选 |
type | 转码后的视频类型,0 普通, 1 试看,默认值0 | Integer | 非必选 |
返回数据:
调用成功则返回转码后的视频下载地址,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):成功为转码后的视频下载地址,失败则为错误数据或空("")。
返回数据示例:
{
"code": 0,
"message": "success",
"result": [{
"id": "e59034b72ccb4c7e9914eea84cf7c6b0",
"hls": [{
"url": http: //dc2vcvis.dl2.hongshiyun.dev/target/hls/2017/05/31/185_e59034b72ccb4c7e9914eea84cf7c6b0_10_1280x720.m3u8","desc: "超清",
"width": 1280,
"height": 720,
"size": 0,
"encryptType": 0,
"contentId": null,
"customId": null,
"aesKey": null,
"defaultVideo": 1
},
{
"url": "http://dc2vcvis.dl2.hongshiyun.dev/target/hls/2017/05/31/185_e59034b72ccb4c7e9914eea84cf7c6b0_20_854x480.m3u8",
"desc": "高清",
"width": 854,
"height": 480,
"size": 0,
"encryptType": 0,
"contentId": null,
"customId": null,
"aesKey": null,
"defaultVideo": 0
},
{
"url": "http://dc2vcvis.dl2.hongshiyun.dev/target/hls/2017/05/31/185_e59034b72ccb4c7e9914eea84cf7c6b0_30_640x360.m3u8",
"desc": "标清",
"width": 640,
"height": 360,
"size": 0,
"encryptType": 0,
"contentId": null,
"customId": null,
"aesKey": null,
"defaultVideo": 0
}],
"mp4": null,
"flv": null,
"ts": null
},
{
"id": "f8e0221bf5ef4ee3b30d1bd4a25e61e2",
"hls": null,
"mp4": null,
"flv": null,
"ts": null
}],
"success": true
}
失败返回, 如:
{
"code": 10000,
"message": "exception",
"success": false
}
返回字段说明:
code: 0 成功,或 error code
message: 信息
encryptType:加密类型,0 不加密,6 AES加密,7 当虹加密;目前AES加密只对hls起作用
contentId:当虹加密所用的key之一
customId:当虹加密所用的key之一
aesKey:AES加密所用的key
所有状态码code与message的对应关系:
0:success
10000:exception
10030:no_cdn
10201:api_not_exists
二次转码
服务地址:
http://api.danghongyun.com/rest
请求方式:
POST
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"secondTranscode" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
videoIds | 视频id,多个id以逗号隔开,如"b007808b127b417cb7dfa28da0696fb0,46af996052f94dd69f7dad8f64c8e6e9" | String | 必选 |
videoType | 视频转码类型,0 普通视频转码,1 VR转码 | Integer | 必选 |
encrypt | 是否加密,0 非加密,1 加密 | Boolean | 必选 |
transcodeTemplates | 转码模板,使用内置模板则不传该参数。该参数仅在当次转码中使用,不会记录,也不会影响内置模板 | String | 可选 |
replace | 替换还是另存为,0 另存为,1 替换。另存为会在视频列表里面新增一项,替换会在转码完成后删除之前所有的转码文件。 | Boolean | 必选 |
转码模板(transcodeTemplates)参数说明:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
name | 模板名字 | String | 必选 |
videoWidth | 视频宽度 | Integer | 必选 |
videoHeight | 视频高度 | Integer | 必选 |
videoBitrate | 视频比特率,例如1000为1000kbps | Integer | 必选 |
audioBitrate | 音频比特率,例如64000为64kbps | Integer | 必选 |
hls | 是否转码hls格式,false or true | Boolean | 必选 |
mp4 | 是否转码mp4格式,false or true | Boolean | 必选 |
flv | 是否转码flv格式,false or true | Boolean | 必选 |
ts | 是否转码ts格式,false or true | Boolean | 可选 |
defaultVideo | 是否为默认播放,1 默认播放模板,0 非默认 | Integer | 可选 |
转码模板示例:
String transcodeTemplates = "[{"name":"高清","videoWidth":1280,"videoHeight":720, "videoBitrate":1000,"audioBitrate":64000,"hls":true,"mp4":true,"flv":false,"ts":false,"defaultVideo":1}, "{"name":"标清","videoWidth":640,"videoHeight":480, "videoBitrate":500,"audioBitrate":64000,"hls":true,"mp4":true,"flv":false,"ts":false,"defaultVideo":0}]";
返回数据:
调用成功则返回成功,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):成功为空,失败则为错误数据或空("")。
返回数据示例:
{
"code":0, //该值只为0,10000
"message":"success",
"result":
[
{
"id":"b007808b127b417cb7dfa28da0696fb0",
"code":0,
"message":""
},
{
"id":"46af996052f94dd69f7dad8f64c8e6e9",
"code":10012,
"message":"video_not_exists"
}
],
"success":true
}
结果包含每个视频的返回值
返回字段说明:
所有状态码code与message的对应关系:
0:success
10000:Exception
10012:video_not_exists
10017:video_not_exists
10024:no_user_transcode_template
10025:create_transcode_task_failed
10033:transcode_running
10043:add_video_failed
10061:transcode_template_is_not_correct
10067:video_is_in_transcode_waitting_list
10201:api_not_exists
PHP 示例:
$interfaceUrl = "http://api.danghongyun.com/rest?";
$accessKey = "a020e193-0f1";
$action = "secondTranscode";
$version = "2.0";
$timestamp = "1466488681033";
$paramArr = array(
"accessKey"=>$accessKey,
"action"=>$action,
"version"=>$version,
"timestamp"=>$timestamp,
"videoIds"=>'b007808b127b417cb7dfa28da0696fb0,46af996052f94dd69f7dad8f64c8e6e9',
"videoType"=>'0',
"encrypt"=>'0',
"replace"=>'0'
);
$paramArr["signature"] = mkSig($paramArr, $accessKey,$accessSecret);
$res = curlPost($paramArr,$interfaceUrl);
echo $res;
二次转码V2
服务地址:
http://api.danghongyun.com/rest
请求方式:
POST
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"secondTranscodeV2" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
videoIds | 视频id,多个id以逗号隔开,如"b007808b127b417cb7dfa28da0696fb0,46af996052f94dd69f7dad8f64c8e6e9" | String | 必选 |
transcodeTemplates | 转码模板,使用内置模板则不传该参数。该参数仅在当次转码中使用,不会记录,也不会影响内置模板 | String | 可选 |
videoType | 视频转码类型,0 普通视频转码,1 VR转码; 该参数在使用了参数transcodeTemplates的时候生效 | Integer | 可选 |
trailor | 是否额外再转码试看片段,false 否,true 是,默认值false; 该参数在使用了参数transcodeTemplates的时候生效 | Boolean | 可选 |
trailorDuration | 试看时长,单位秒,默认值0; 该参数在使用了参数transcodeTemplates的时候生效 | Long | 可选 |
transcodeTemplateGroupId | 内置转码模板组id,可由获取模板组列表接口获取。transcodeTemplates和transcodeTemplateGroupId两个参数必须传一个,transcodeTemplates优先; 如若两个都不传,则使用内置默认的普通转码模板组id | Integer | 可选 |
replace | 替换还是另存为,0 另存为,1 替换。另存为会在视频列表里面新增一项,替换会在转码完成后删除之前所有的转码文件。 | Boolean | 必选 |
转码模板(transcodeTemplates)参数说明:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
name | 模板名字 | String | 必选 |
videoWidth | 视频宽度 | Integer | 必选 |
videoHeight | 视频高度 | Integer | 必选 |
videoBitrate | 视频比特率,例如1000为1000kbps | Integer | 必选 |
audioBitrate | 音频比特率,例如64000为64kbps | Integer | 必选 |
hls | 是否转码hls格式,false or true | Boolean | 必选 |
mp4 | 是否转码mp4格式,false or true | Boolean | 必选 |
flv | 是否转码flv格式,false or true | Boolean | 必选 |
ts | 是否转码ts格式,false or true | Boolean | 可选 |
hlsEncryptType | hls加密类型,0 不加密,6 AES加密,7 当虹加密 | Integer | 可选 |
mp4EncryptType | mp4加密类型,0 不加密,7 当虹加密 | Integer | 可选 |
flvEncryptType | flv加密类型,0 不加密,7 当虹加密 | Integer | 可选 |
tsEncryptType | ts加密类型,0 不加密,7 当虹加密 | Integer | 可选 |
defaultVideo | 是否为默认播放,1 默认播放模板,0 非默认 | Integer | 可选 |
logoGroupId | 台标组id,可由获取台标组列表接口获取 | Integer | 可选 |
转码模板示例:
String transcodeTemplates = "[{"name":"高清","videoWidth":1280,"videoHeight":720,"videoBitrate":1000,"audioBitrate":64000,"hls":true,"mp4":true,"flv":false,"ts":false,"hlsEncryptType":6,"mp4EncryptType":7,"flvEncryptType":0,"tsEncryptType":0,"defaultVideo":1}, {"name":"标清","videoWidth":640,"videoHeight":480,"videoBitrate":500,"audioBitrate":64000,"hls":true,"mp4":true,"flv":false,"ts":false,"hlsEncryptType":6,"mp4EncryptType":7,"flvEncryptType":0,"tsEncryptType":0,"defaultVideo":0}]";
或包含台标组id
String transcodeTemplates = "{"logoGroupId":2,"templates":[{"name":"高清","videoWidth":1280,"videoHeight":720,"videoBitrate":1000,"audioBitrate":64000,"hls":true,"mp4":true,"flv":false,"ts":false,"hlsEncryptType":6,"mp4EncryptType":7,"flvEncryptType":0,"tsEncryptType":0,"defaultVideo":1}, {"name":"标清","videoWidth":640,"videoHeight":480, "videoBitrate":500,"audioBitrate":64000,"hls":true,"mp4":true,"flv":false,"ts":false,"hlsEncryptType":6,"mp4EncryptType":7,"flvEncryptType":0,"tsEncryptType":0,"defaultVideo":0}]}";
返回数据:
调用成功则返回成功,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):成功为空,失败则为错误数据或空("")。
返回数据示例:
{
"code":0, //该值只为0,10000
"message":"success",
"result":
[
{
"id":"b007808b127b417cb7dfa28da0696fb0",
"code":0,
"message":""
},
{
"id":"46af996052f94dd69f7dad8f64c8e6e9",
"code":10012,
"message":"video_not_exists"
}
],
"success":true
}
结果包含每个视频的返回值
返回字段说明:
所有状态码code与message的对应关系:
0:success
10000:Exception
10012:video_not_exists
10017:video_not_exists
10024:no_user_transcode_template
10025:create_transcode_task_failed
10033:transcode_running
10043:add_video_failed
10061:transcode_template_is_not_correct
10067:video_is_in_transcode_waitting_list
10081:transcode_template_group_not_exist
10201:api_not_exists
PHP 示例:
$interfaceUrl = "http://api.danghongyun.com/rest?";
$accessKey = "a020e193-0f1";
$action = "secondTranscodeV2";
$version = "2.0";
$timestamp = "1466488681033";
$paramArr = array(
"accessKey"=>$accessKey,
"action"=>$action,
"version"=>$version,
"timestamp"=>$timestamp,
"videoIds"=>'b007808b127b417cb7dfa28da0696fb0,46af996052f94dd69f7dad8f64c8e6e9',
"transcodeTemplateGroupId"=>'0',
"replace"=>'0'
);
$paramArr["signature"] = mkSig($paramArr, $accessKey,$accessSecret);
$res = curlPost($paramArr,$interfaceUrl);
echo $res;
获取转码模板组列表
服务地址:
http://api.danghongyun.com/rest
请求方式:
GET
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"templateGroupList" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
type | 转码组类型 0 普通,1 VR,如果不传该参数则返回所有模板组 | Integer | 可选 |
返回数据:
调用成功则返回成功,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):成功为空,失败则为错误数据或空("")。
返回数据示例:
{
"code":0,
"message":"success",
"result":
[
{
"userId":"123",
"id":0,
"name":"上传不转码",
"type":0,
"defaultGroup":false,
"trailor":false,
"trailorDuration":0,
"logoGroupId":null
},
{
"userId":"123",
"id":0,
"name":"16:9 转码模版",
"type":0,
"defaultGroup":true,
"trailor":false,
"trailorDuration":0,
"logoGroupId":null
},
{
"userId":"123",
"id":0,
"name":"VR 转码模版",
"type":1,
"defaultGroup":true,
"trailor":false,
"trailorDuration":0,
"logoGroupId":null
}
],
"success":true
}
返回字段说明:
userId:用户id
id:模板组id
name:模板组名称
type:转码组类型 0 普通,1 VR
defaultGroup:是否默认模板
trailor:是否要转试看片段
trailorDuration:试看片段时长,单位秒
logoGroupId:台标组id
所有状态码code与message的对应关系:
0:success
10000:Exception
10201:api_not_exists
PHP 示例:
$interfaceUrl = "http://api.danghongyun.com/rest?";
$accessKey = "a020e193-0f1";
$action = "templateGroupList";
$version = "2.0";
$timestamp = "1466488681033";
$paramArr = array(
"accessKey"=>$accessKey,
"action"=>$action,
"version"=>$version,
"timestamp"=>$timestamp,
"type"=>'0'
);
$paramArr["signature"] = mkSig($paramArr, $accessKey,$accessSecret);
$res = curlGet($interfaceUrl.mkUrl($paramArr));
echo $res;
获取台标组列表
服务地址:
http://api.danghongyun.com/rest
请求方式:
GET
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"getLogoGroupList" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
返回数据:
调用成功则返回成功,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):成功为空,失败则为错误数据或空("")。
返回数据示例:
{
"code":0,
"message":"success",
"result":
[
{
"userId":"123",
"id":1,
"name":"台标1"
},
{
"userId":"123",
"id":2,
"name":"台标2"
}
],
"success":true
}
返回字段说明:
userId:用户id
id:台标组id
name:台标组名称
所有状态码code与message的对应关系:
0:success
10000:Exception
10201:api_not_exists
PHP 示例:
$interfaceUrl = "http://api.danghongyun.com/rest?";
$accessKey = "a020e193-0f1";
$action = "getLogoGroupList";
$version = "2.0";
$timestamp = "1466488681033";
$paramArr = array(
"accessKey"=>$accessKey,
"action"=>$action,
"version"=>$version,
"timestamp"=>$timestamp
);
$paramArr["signature"] = mkSig($paramArr, $accessKey,$accessSecret);
$res = curlGet($interfaceUrl.mkUrl($paramArr));
echo $res;
视频上传
单线程上传接口
服务地址:
http://upload.danghongyun.com/multipart/upload
请求方式:
POST
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
token | 令牌 | String | 必选 |
file | 要上传的文件 | Multipart | 必选 |
isEncrypt | 是否加密 0不加密,1加密。默认不加密。注意:非编码视频,不能加密上传,即如果isTranscoder为0,isEncrypt不能为1 | String | 可选 |
categoryId | 视频分类id | String | 可选 |
videoType | 指示该视频为普通视频或者VR视频,0:普通视频,1:VR,默认为0。 | Integer | 可选 |
isTranscoder | 指示该视频是否需要转码。1:视频上传后编码,0:视频上传后不编码。默认转码 | String | 可选 |
transcodeTemplateGroupId | 转码模板组id,如该值为空,则转码时使用默认转码模板组 | Integer | 可选 |
capturePoints | 视频上传成功后的 缩略图/封面图 的截图时间点(秒),如果用户设置了截图的时间点,则按照时间点截图,最多8张,如果用户设置的时间点不到8个,则按实际数量截图,如果用户设置的时间点超过8个,则只有前8个有效,多个时间点以逗号隔开,如 "5,10,15,20,25,30,35,40" | String | 可选 |
isExtractFrame | 视频上传成功后是否立即抽帧: 0 否,1 是 | Integer | 可选 |
frameInterval | 抽帧的时间间隔(秒),如果抽帧,则需要设置该参数值 | Integer | 可选 |
tag | 上传视频后存储的视频标签,用于检索 | String | 可选 |
返回数据:
调用成功则返回视频信息,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-MulitpartUploadController upload success,失败则为错误信息。
返回结果(result):成功为视频信息,失败则为错误数据或空("")。
返回数据示例:
{
"code":0,
"message":"MulitpartUploadController upload success.",
"result":
[
{
"videoId":"ee2435ae735b4c31b58b0e56d507f440",
"fileName":"ggr8512@arcsoft.com_1461205718234_FrozenFrame001.ts",
"thumbnaill":"http://8zrgbat3.images.stg.danghongyun.com/thumb%2F2016%2F04%2F21%2F121_ggr8512%40arcsoft.com_1461205718234_FrozenFrame001.jpg",
"cover":"http://8zrgbat3.images.stg.danghongyun.com/cover%2F2016%2F04%2F21%2F121_ggr8512%40arcsoft.com_1461205718234_FrozenFrame001.jpg",
"title":"FrozenFrame001",
"size":7539,
"userId":121,
"category":null,
"status":0,
"isEncrypt":null,
"categoryId":1
}
],
"count":0,
"success":true
}
返回字段说明:
videoId:视频id
fileName:文件名
thumbnaill:缩略图
cover:封面图
title:视频标题
size:视频大小
userId:用户id
category:视频类别
status:视频转码状态
isEncrypt:视频加密状态
categoryId:视频类别id
count:数量
所有状态码code与message的对应关系:
0:success
10000:exception
10011:试用用户空间大小不够
10012:参数错误
PHP 示例:
$interfaceUrl = 'http://123.56.30.123:8080/uploadserver/multipart/upload?' ;
$cfile = new CURLFile('F:\TestVideo\33.mp4','video/mp4','33.mp4');
$fields = array(
'categoryId'=>'1',
'file'=>$cfile,
'isEncrypt'=>'0' ,
'token'=>'82118af4c759882e940a3652508e04a2'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $interfaceUrl);
curl_setopt($ch, CURLOPT_POST, true );
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 1000);// 1000s to timeout
$return_data = curl_exec($ch);
curl_close($ch);
echo $return_data;
多线程分片上传接口
分片上传任务初始化
初始化文件上传,1.后台存入要上传的文件的基本信息 2.创建上传唯一标识符uploadId并返回
服务地址:
http://upload.danghongyun.com/multipart/initMultipartUpload
请求方式:
POST
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
token | 令牌 | String | 必选 |
fileMD5 | 文件的MD5值,若不提供文件的MD5值,则不会校验合并后的文件MD5值 | String | 可选 |
fileName | 文件名称 | String | 必选 |
fileSize | 文件大小 | Long | 必选 |
type | 文件类型 | String | 必选 |
返回数据:
调用成功则返回视频信息,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-文件上传初始化成功,失败则为错误信息。
返回结果(result):成功为上传任务id,失败则为错误数据或空("")。
返回数据示例:
{
"code":0,
"message":"操作成功",
"result":"FF52BCC661DB4384B6AE15B5A8AE0090",
"success":true
}
返回字段说明:
result:上传任务id
所有状态码code与message的对应关系:
0:success
10000:exception
上传分块文件
服务地址:
http://upload.danghongyun.com/multipart/multipartUpload
请求方式:
POST
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
token | 令牌 | String | 必选 |
uploadId | 上传唯一标识符 | String | 必选 |
chunkMD5 | 分块文件md5 | String | 必选 |
chunkIndex | 分块文件序号 | int | 必选 |
chunkSize | 分块文件大小 | Long | 必选 |
fileInputStream | 文件流 | InputStream | 必选 |
返回数据:
调用成功则返回视频信息,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-上传分块文件成功,失败则为错误信息。
返回结果(result):成功为分块任务信息,失败则为错误数据或空("")。
返回数据示例:
{
"code":0,
"message":"操作成功",
"result":"",
"success":true
}
所有状态码code与message的对应关系:
0:success
10000:exception
10007:Md5不匹配
10008:此分块已在上传或已上传
10010:上传分块到oss异常
合并分块文件,上传完成任务
服务地址:
http://upload.danghongyun.com/multipart/completeMultipartUpload
请求方式:
POST
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
token | 令牌 | String | 必选 |
uploadId | 上传唯一标识符 | String | 必选 |
isEncrypt | 是否进行视频加密,0为不加密,1为加密 | int | 可选 |
categoryId | 视频分类 | int | 可选 |
isTranscoder | 是否进行转码,0为不转,1为转码 | String | 可选 |
videoType | 视频类型,0是普通视频,1是VR视频,默认是0 | String | 可选 |
transcodeTemplateGroupId | 转码模板组id,如该值为空,则转码时使用默认转码模板组 | Integer | 可选 |
capturePoints | 视频上传成功后的 缩略图/封面图 的截图时间点(秒),如果用户设置了截图的时间点,则按照时间点截图,最多8张,如果用户设置的时间点不到8个,则按实际数量截图,如果用户设置的时间点超过8个,则只有前8个有效,多个时间点以逗号隔开,如 "5,10,15,20,25,30,35,40" | String | 可选 |
isExtractFrame | 视频上传成功后是否立即抽帧: 0 否,1 是 | Integer | 可选 |
frameInterval | 抽帧的时间间隔(秒),如果抽帧,则需要设置该参数值 | Integer | 可选 |
tag | 上传视频后存储的视频标签,用于检索 | String | 可选 |
返回数据:
调用成功则返回视频信息,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-上传完成任务后台已启动,失败则为错误信息。
返回结果(result):成功为视频id,失败则为错误数据或空("")。
返回数据示例:
{
"code":0,
"message":"操作成功",
"result":"998f1ae92015489bb530edcdd07e878e",
"success":true
}
返回字段说明:
result:视频id
所有状态码code与message的对应关系:
0:success
10000:exception
设置上传回调地址
服务地址:
http://api.danghongyun.com/rest
请求方式:
POST
接收参数:
参数 | 描述 | 数据类型 | 必选/可选 |
---|---|---|---|
accessKey | 用户访问key | String | 必选 |
action | api名称,此接口为"setCallbackUrl" | String | 必选 |
version | api版本,目前必须为 2.0 | String | 必选 |
timestamp | api调用时间戳,1970年1月1日以来的毫秒数,如1466488681033 | String | 必选 |
signature | 签名 | String | 必选 |
callbackUrl | 回调地址 | String | 必选 |
返回数据:
调用成功则返回空,失败则返回错误信息,相关数据均以JSON格式返回。
返回状态码(code):成功-0,失败-其它值。
返回信息(message):成功-success,失败则为错误信息。
返回结果(result):成功为空(""),失败则为错误数据或空("")。
返回数据示例:
{
"code":0,
"message":"success",
"result":"",
"success":true
}
返回字段说明:
所有状态码code与message的对应关系:
0:success
10000:exception
10003:account_not_exists
10201:api_not_exists
PHP 示例:
$interfaceUrl = "http://api.danghongyun.com/rest?";
$accessKey = "a020e193-0f1";
$action = "setCallbackUrl";
$version = "2.0";
$timestamp = "1466488681033";
$paramArr = array(
"accessKey"=>$accessKey,
"action"=>$action,
"version"=>$version,
"timestamp"=>$timestamp,
"callbackUrl"=>"http://www.class.cn/"
);
$paramArr["signature"] = mkSig($paramArr, $accessKey,$accessSecret);
$res = curlPost($paramArr,$interfaceUrl);
echo $res;
回调地址规则:
在文件上传后,转码开始或者结束时,当虹云服务器会通过该回调地址用POST方式把videoId,status,playCode 三个参数返回给客户,参数含义如下:
参数 | 描述 | 数据类型 |
---|---|---|
videoId | 视频id | String |
status | 转码状态:1 转码进行中,2 转码成功, 3 转码错误 | Integer |
playCode | 播放码 | String |