跳转到: 导航, 搜索
第1行: 第1行:
=视频上传服务OPEN API=
+
=视频上传 OPEN API=
==视频上传接口授权机制==
+
目前微博开放平台用户身份鉴权采用的是Oauth2.0,参见[http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E 如何登录授权]
+
  
==视频上传基本流程==
+
<div class="wiki_txtJ">
微博提供视频分片上传服务,支持断点续传,主要包含如下两个步骤:
+
微博为广大自媒体作者、机构、具备拍摄功能的硬件厂商等,提供短视频上传接口,可以将视频内容上传、并发布到微博。
  
[https://upload.api.weibo.com/2/proxy/media/init    media/init    初始化获取视频分片大小]
 
  
[https://upload.api.weibo.com/2/proxy/media/upload  media/upload  开始分片上传]
+
根据相关规定,视频服务需具备相关资质,因此接口文档暂不公开。
  
  
视频大小和时长限制:
+
如果第三方需要与微博进行视频相关的接入合作,请联系 商务合作:[mailto:weibo_app@vip.sina.com  weibo_app@vip.sina.com] 进行洽谈,索取视频上传接口文档。
  
最大1G,时长15分钟
+
<div style="width:100%;display:table;margin-top:20px;">
 +
<div style="width:50%;display:table;float:left;">
 +
<div style="width:90%;height:50px;padding:10px;border:1px solid #CEE1EE;">
 +
<div style="width:50px;height:50px;float:left;"><img src="http://tp2.sinaimg.cn/1904178193/50/5689657598/0" /></div>
 +
<div style="float:left;margin-left:15px;">[http://weibo.com/openapi 微博开放平台]</div>
 +
</div>
 +
</div>
 +
</div>
  
 +
</div>
  
视频格式限制:
 
  
mp4,avi,wmv,mpeg,mpg,3gp,ts,flv,mov
 
  
==视频上传初始化==
+
__NOTOC__
URL : https://upload.api.weibo.com/2/proxy/media/init [GET]
+
{{#a:nobtns|noheading}}
 
+
说明:视频上传初始化,获取视频上传ID和分片大小
+
 
+
参数:
+
 
+
{| border="1" cellspacing="0" cellpadding="0" width="100%" class="parameters" style="border-color:#CCCCCC;"
+
|-
+
!width="15%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|参数字段
+
!width="10%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|字段必选
+
!width="10%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|字段类型
+
!width="65%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|字段说明
+
{{api_args|access_token|true|string|采用OAuth授权方式为必填参数,OAuth授权后获得}}
+
{{api_args|name|true|string|视频名称,必须带视频文件后缀}}
+
{{api_args|check|true|string|整个视频文件的md5}}
+
{{api_args|length|true|string|视频文件大小,单位字节}}
+
{{api_args|uid|true|string|微博用户uid}}
+
{{api_args|text|false|string|微博文本内容,必须做URLencode,内容不超过130个汉字,默认空时不发微博}}
+
{{api_args|visible|false|string|微博属性,0:公开发布,1:仅自己可见}}
+
{{api_args|cu|false|string|第三方可提供回调接口,用于视频上传转码之后通知视频播放地址,默认空}}
+
{{api_args|ua|false|string|用户ua属性}}
+
|}
+
 
+
返回:
+
 
+
{| border="1" cellspacing="0" cellpadding="0" width="100%" class="parameters" style="border-color:#CCCCCC;"
+
|-
+
!width="15%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|参数字段
+
!width="10%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|字段必选
+
!width="75%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|字段说明
+
{{rdes_args|res|string|成功或失败,true或false}}
+
{{rdes_args|uploadId|string|视频上传ID}}
+
{{rdes_args|length|string|视频分片大小,单位字节}}
+
|}
+
 
+
示例:
+
 
+
<pre>
+
{
+
  res : true
+
  uploadId : 1425623419.093.de1f9ded7911efac25c137bccf1a4019.r11
+
  length : 256000
+
}
+
</pre>
+
 
+
==视频文件分片上传==
+
URL : https://upload.api.weibo.com/2/proxy/media/upload [GET/POST]
+
 
+
说明:视频分片上传
+
 
+
参数:
+
 
+
{| border="1" cellspacing="0" cellpadding="0" width="100%" class="parameters" style="border-color:#CCCCCC;"
+
|-
+
!width="15%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|参数字段
+
!width="10%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|字段必选
+
!width="10%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|字段类型
+
!width="65%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|字段说明
+
{{api_args|access_token|true|string|采用OAuth授权方式为必填参数,OAuth授权后获得}}
+
{{api_args|uploadId|true|string|视频上传ID}}
+
{{api_args|partNumber|true|int|视频分片编号,从0开始}}
+
{{api_args|sliceCheck|true|string|视频分片的md5}}
+
{{api_args|content|true|string|视频分片数据,放在postfield中}}
+
|}
+
 
+
返回:
+
 
+
{| border="1" cellspacing="0" cellpadding="0" width="100%" class="parameters" style="border-color:#CCCCCC;"
+
|-
+
!width="15%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|参数字段
+
!width="10%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|字段必选
+
!width="75%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|字段说明
+
{{rdes_args|res|string|成功或失败,true或false}}
+
{{rdes_args|partNumber|string|视频分片编号,从0开始}}
+
{{rdes_args|fid|string|视频对象ID,最后一个分片上传成功之后才返回}}
+
|}
+
 
+
示例:
+
 
+
<pre>
+
{
+
  res : true
+
  partNumber : 1
+
  fid : 1034:7588a824bf75c8c1dc263450dc324c2b (最后一个分片上传成功后才返回)
+
}
+
</pre>
+
 
+
==PHP Client SDK==
+
视频上传初始化
+
<pre>
+
//请求相关参数
+
$init_querys = array(
+
//'source' => $source,
+
'name' => $file_name,
+
'check' => $content_md5, //完整文件md5
+
'length' => $file_size,
+
'uid' => $uid,
+
'text' => rawurlencode($text),
+
'access_token' => "***", //oauth授权后获取
+
);
+
$headers = array();
+
//调用初始化接口
+
$init_res = curl_get($init_uri, $init_querys, $headers);
+
$init_decode = json_decode($init_res, true);
+
echo $init_decode['uploadId'] . "\n";
+
</pre>
+
视频分片上传
+
<pre>
+
for($part_no = 0;$part_no < $slice_count;$part_no++) {
+
//循环分片上传,分片编号从0开始
+
$upload_querys = array(
+
'source' => $source,
+
'partNumber' => $part_no,
+
'uploadId' => $upload_id,
+
'sliceCheck' => $slice_md5, //分片md5
+
'access_token' => "***",
+
);
+
$slice_res = curl_post($upload_uri, $upload_querys, $headers, $slice_content);
+
+
var_dump($slice_res);
+
$info_dec = json_decode($slice_res, true);
+
if($info_dec['ret'] == "false") {
+
//分片失败重传
+
}
+
}
+
</pre>
+
 
+
==错误代码==
+
 
+
错误码
+
 
+
{| border="1" cellspacing="0" cellpadding="0" width="100%" class="parameters" style="border-color:#CCCCCC;"
+
|-
+
!width="15%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|错误码
+
!width="40%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|错误msg
+
!width="45%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|描述
+
{{rdes_args|001|Appkey missing|appkey参数缺失}}
+
{{rdes_args|002|Invalid appkey|appkey无效}}
+
{{rdes_args|003|Param missing|param参数缺失}}
+
{{rdes_args|004|Slice content missing|分片内容缺失}}
+
{{rdes_args|005|Invalid uploadId|uploadId无效}}
+
{{rdes_args|006|Donot support chunked|分片异常}}
+
{{rdes_args|007|uploadId missing|uploadId缺失}}
+
{{rdes_args|008|This uploadId has expired|uploadId过期}}
+
{{rdes_args|009|Internal error|网络异常}}
+
{{rdes_args|010|Unsupport this file type|文件格式不支持}}
+
{{rdes_args|011|Please check client locale settings|本地设置异常}}
+
{{rdes_args|012|Slice check md5 does not match|分片内容异常}}
+
|}
+

2017年9月21日 (四) 16:57的版本

视频上传 OPEN API

微博为广大自媒体作者、机构、具备拍摄功能的硬件厂商等,提供短视频上传接口,可以将视频内容上传、并发布到微博。


根据相关规定,视频服务需具备相关资质,因此接口文档暂不公开。


如果第三方需要与微博进行视频相关的接入合作,请联系 商务合作:weibo_app@vip.sina.com 进行洽谈,索取视频上传接口文档。