视频开放平台
上传视频信息
上传视频提供批量上传功能,并且提供Flash上传、Html5上传、silverlight上传 等功能。 上传视频信息需要 Flash 插件的版本在 10.1 以上方可正常使用,请确保 Flash 插件版本符合要求。silverlight上传只能使用IE浏览器
上传视频流程
上传视频页面需要引用开放平台提供的initUploadSelectVideoAlert.js文件,根据下面的参数说明进行配置,开放平台会对信息进行验证,如果验证通过,则会弹出一个视频列表页面,该页面包含视频上传按钮和批量上传按钮。否则,返回一个包含错误信息的页面。 点击页面中的上传按钮,该页面变为视频上传页面。上传页面提供多种上传方式:Flash上传、Html5上传、silverlight上传。选择本地视频文件,上传成功后的视频会出现在弹出的视频列表页面。
请求参数说明:
名称 格式 是否可空 说明
appId String 该系统在开放平台中的ID
timestamp String 时间参数。时间验证与服务器时间误差不得超过10分钟(600秒),以北京时间为准。 获取方法:C#: long nowTime = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000 例:1369898793 Javascript: Math.round(new Date().getTime() / 1000)
token String 指timestamp+appSecret 在进行MD5加密后的字符串(转换后字母都为小写),appSecret为该系统在校园电视网中的密钥) 例如: timestamp为1370585811,appSecret为0123456789,加密前的字符串:13705858110123456789,加密后的字符串:c0c5ad4975c735e1c856d6a6b5d4310b
uia_username String UIA统一身份认证用户名
local_username String 第三方对接系统的用户名(如果第三方系统用户名和UIA统一身份认证用户名一致,请使用UIA统一身份认证用户名)
请求事件说明:
名称 说明
onSuccess 上传完视频文件成功后执行的事件
onFailure 上传视频文件发生错误时执行的事件
onError 网络出现问题的时候执行的事件
返回结果:
1、若验证不通过,则返回结果在页面上以文字形式显示。例如:
ErrorCode : 104, ErrorMessage : App SecretKey Error
ErrorCode --返回代码
ErrorMessage --返回详细信息
参数详细信息请参考错误代码
2、若验证通过,则出现正常的上传页面。如下图:
可以使用Flash上传、Html5上传、silverlight上传,如果浏览器不支持Html5,则Html5上传模块将不会出现。
调用代码实例
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<title>上传视频</title>
<script src="~/Scripts/jquery-1.8.2.min.js"></script>    
<script src="~/Scripts/md5.js"></script>
<script src="http://open.ksedu.cn/Scripts/JKScripts/initUploadSelectVideoAlert.js" type="text/javascript"></script>
<script type="text/javascript">
        function winopen() {
            var appId = $("#AppId").val();
            var appSecret = $("#AppSecret").val();
            var t = Math.round(new Date().getTime() / 1000); //声明一个时间
            var token = hex_md5(t + appSecret);//声明一个上传令牌。
            jkUploadAlertBox.openUpload({
                //应用ID,由视频开放平台提供
                appId: appId,
                //视频ID
                videoId: $("#videoId").val(),
                //时间戳
                timestamp: t,
                //令牌    
                token: token, 
                //距窗口左边的距离
                left: "20px",
                //距窗口上边的距离
                top: "20px",
                //是否覆盖整个浏览器,true:覆盖整个浏览器; false:覆盖局部区域(如果弹出层在iframe内部,
                //则只覆盖iframe区域,其他情况同true)
                isTop:true,
                //对接的UIA用户名
                uia_username: "uia_username",
                //本系统用户名(第三方系统)
                local_username: "local_username",
                //上传完视频文件后执行的事件
                onSuccess: function (data) { alert("视频上传成功,视频ID="+data.VideoID); },
                //上传视频文件出现错误发生的事件
                onFailure: function () { alert("未上传视频或视频上传失败"); },
                //网络出现问题的时候触发的事件
                onError: function () { alert("error"); }
            });
        }
</script>
</head>
<body>
       <h1>上传视频文件:</h1>
       <div>
            <div>
                <span class="itemNametop">AppId:</span> <input type="text" id="AppId" 
                value="f6f46cc8-02d3-44e8-bdf1-bfc87b6a3f39" /></div>
            <div>
                <span class="itemNametop">AppSecret:</span><input type="text" id="AppSecret" 
                value="e7f46cc8-02d3-44e8-bdf1-bfc87b6a3f39" /></div>  
             <div>
                <span class="itemNametop">videoId:</span><input type="text" id="videoId" 
                value="000c1743-08b9-4584-b20c-75fe017b35ab" /></div>   
        </div>
        <div>
            <input type="button" onclick="winopen()" style="width: 80px;" value="上传" />
        </div>
</html>
webapi方式 webservice方式
请求地址
HTTP请求方式
Put
请求参数
名称 格式 是否可空 说明
AppId String 该系统在开放平台中的ID
Timestamp String 时间参数,验证条件是当前时间与服务器时间误差不得超过10分钟(600秒),以北京时间为准。例如值为:1369898793; 获取方法如下:
C#: (DateTime.Now.ToUniversalTime().Ticks-621355968000000000)     /10000000;
Javascript:Math.round(new Date().getTime() /1000);
Token String 令牌,取值方法为:Timestamp + AppSecret在进行MD5加密后的字符串(转换后字母都为小写),AppSecret为该系统在开放平台中的密钥)
VideoInfo PutVideoModel 视频信息
名称 格式 是否可空 说明
Id String 视频Id
VideoTitle String 视频标题(最大长度为50字符,大于50字符只截取前50位)
Description String 视频描述(最大长度为400字符,大于400字符只截取前400位)
Tags String 视频标签(最大支持五个标签,标签之间用","隔开,最大长度为60字符,大于60字符只截取前60位)
Actors String 视频主演(最大长度为50字符,大于50字符只截取前50位)
返回结果
JSON示例
{
    "ResultCode":"1",
    "ResultMessage":"OK"
}
返回结果参数说明
名称 格式 说明
ResultCode string 接口调用结果编号(详细
ResultMessage string 接口调用结果信息(详细
http请求
 POST http://localhost:8090/Api/Video/Put HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: localhost:8090
Content-Length: 320
Connection: Keep-Alive
AppId=jctv&Timestamp=1425469528&Token=27eb325be82f4384a9d11063105b8891&VideoTitle=%E6%9B%B4%E6%96%B0%E8%A7%86%E9%A2%91
&Description=%E6%96%B0%E8%A7%86%E9%A2%91%E6%8F%8F%E8%BF%B0&Tags=%E6%96%B0%E8%A7%86%E9%A2%91%E6%A0%87%E7%AD%BE
&Actors=%E6%96%B0%E8%A7%86%E9%A2%91%E6%BC%94%E5%91%98&Id=9deb4b69-bb31-48f5-a303-98370b57b946
                    
http应答
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/7.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Wed, 04 Mar 2015 11:37:51 GMT
Content-Length: 39
{"ResultCode":"1","ResultMessage":"OK"}
                    
二、服务器下载视频方式
该方式只需在第一步上传视频信息中,将相应字段指定为如下的内容:参数“视频上传方式”填写为“2”,视频源地址填写为完整的视频源地址,包括视频扩展名, 例如 http://v.nje.cn:8091/2015_01/5C1501261327_89da256c728c44b_800k.mp4。 填写完毕后,提交信息,如果保存成功,则返回成功信息,否则,请根据返回错误信息,修改填写内容。
调用代码实例(c#方法)
public ActionResult PostMethodWebAPI(string videoTitle, string description, string tags, string actors,
                             int sourceFileGetType, string sourceFilePath, string appId, string appSecret)
{
    //请求地址
    string url = "http://open.ksedu.cn/Api/Video/Post";
    //请求参数
    Dictionary<, string> parameters = new Dictionary<string, string >();
    //应用ID
    parameters.Add("AppId", appId);
    long dateTime = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
    string token = MD5.HashUTF8(dateTime + appSecret);
    //时间戳
    parameters.Add("Timestamp", dateTime.ToString());
    //令牌
    parameters.Add("Token", token);
    //视频标题
    parameters.Add("VideoTitle", videoTitle);
    //视频描述
    parameters.Add("Description", description);
    //视频标签
    parameters.Add("Tags", tags);
    //视频主演
    parameters.Add("Actors", actors);
    //视频上传用户名
    parameters.Add("CreateUser", createUser);
    //视频上传方式(这里应该为2)
    parameters.Add("SourceFileGetType", sourceFileGetType.ToString());
    //视频源地址(这里不能为空)
    parameters.Add("SourceFilePath", sourceFilePath);
    //请求方法
    RequestMethod method = RequestMethod.Post;
    //web请求(OAuth自定义库)
    string result = OAuth.OAuth.Request(url, parameters, method);
    return this.Json(new { result = result }, JsonRequestBehavior.AllowGet);
}
服务器将视频文件转码后,开放平台会通过调用回调地址的方式将转换后状态通知给第三方应用系统,参数包括VideoId、VideoStatus。如果返回状态为1,则该视频可正常播放。
参数说明
名称 说明
VideoId 视频Id
VideoStatus 视频状态
视频状态,具体参数含义如下:
视频状态 说明
0 等待删除
1 正常
2 等待下载
3 正在下载
4 下载失败
5 等待转码
6 正在转码
7 转码失败
8 未上传视频文件
建议采用IE8.0以上浏览器、1280×800分辨率及更高分辨率访问
技术与服务支持:南京金锟科技有限公司