Video/api
第81行: | 第81行: | ||
{{api_args|access_token|true|string|采用OAuth授权方式为必填参数,OAuth授权后获得}} | {{api_args|access_token|true|string|采用OAuth授权方式为必填参数,OAuth授权后获得}} | ||
{{api_args|uploadId|true|string|视频上传ID}} | {{api_args|uploadId|true|string|视频上传ID}} | ||
+ | {{api_args|partNumber|true|int|视频分片编号,从0开始}} | ||
{{api_args|sliceCheck|true|string|视频分片的md5}} | {{api_args|sliceCheck|true|string|视频分片的md5}} | ||
{{api_args|content|true|string|视频分片数据,放在postfield中}} | {{api_args|content|true|string|视频分片数据,放在postfield中}} |
2016年6月3日 (五) 19:16的版本
目录 |
视频上传服务OPEN API
视频上传接口授权机制
目前微博开放平台用户身份鉴权采用的是Oauth2.0,参见如何登录授权
视频上传基本流程
微博提供视频分片上传服务,支持断点续传,主要包含如下两个步骤:
视频大小和时长限制:
最大1G,时长15分钟
视频格式限制:
mp4,avi,wmv,mpeg,mpg,3gp,ts,flv,mov
视频上传初始化
URL : https://api.weibo.com/2/proxy/media/init [GET]
说明:视频上传初始化,获取视频上传ID和分片大小
参数:
参数字段 | 字段必选 | 字段类型 | 字段说明 |
---|---|---|---|
access_token | true | string | 采用OAuth授权方式为必填参数,OAuth授权后获得 |
name | true | string | 视频名称,必须带视频文件后缀 |
check | true | string | 整个视频文件的md5 |
length | true | string | 视频文件大小,单位字节 |
uid | true | string | 微博用户uid |
text | false | string | 微博文本内容,必须做URLencode,内容不超过130个汉字,默认空时不发微博 |
visible | false | string | 微博属性,0:公开发布,1:仅自己可见 |
cu | false | string | 第三方可提供回调接口,用于视频上传转码之后通知视频播放地址,默认空 |
ua | false | string | 用户ua属性 |
返回:
参数字段 | 字段必选 | 字段说明 |
---|---|---|
res | string | 成功或失败,true或false |
uploadId | string | 视频上传ID |
length | string | 视频分片大小,单位字节 |
示例:
{ res : true uploadId : 1425623419.093.de1f9ded7911efac25c137bccf1a4019.r11 length : 256000 }
视频文件分片上传
URL : https://api.weibo.com/2/proxy/media/upload [GET/POST]
说明:视频分片上传
参数:
参数字段 | 字段必选 | 字段类型 | 字段说明 |
---|---|---|---|
access_token | true | string | 采用OAuth授权方式为必填参数,OAuth授权后获得 |
uploadId | true | string | 视频上传ID |
partNumber | true | int | 视频分片编号,从0开始 |
sliceCheck | true | string | 视频分片的md5 |
content | true | string | 视频分片数据,放在postfield中 |
返回:
参数字段 | 字段必选 | 字段说明 |
---|---|---|
res | string | 成功或失败,true或false |
partNumber | string | 视频分片编号,从0开始 |
fid | string | 视频对象ID,最后一个分片上传成功之后才返回 |
示例:
{ res : true partNumber : 1 fid : 1034:7588a824bf75c8c1dc263450dc324c2b (最后一个分片上传成功后才返回) }
PHP Client SDK
视频上传初始化
//请求相关参数 $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";
视频分片上传
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") { //分片失败重传 } }
错误代码
错误码
错误码 | 错误msg | 描述 |
---|---|---|
001 | Appkey missing | appkey参数缺失 |
002 | Invalid appkey | appkey无效 |
003 | Param missing | param参数缺失 |
004 | Slice content missing | 分片内容缺失 |
005 | Invalid uploadId | uploadId无效 |
006 | Donot support chunked | 分片异常 |
007 | uploadId missing | uploadId缺失 |
008 | This uploadId has expired | uploadId过期 |
009 | Internal error | 网络异常 |
010 | Unsupport this file type | 文件格式不支持 |
011 | Please check client locale settings | 本地设置异常 |
012 | Slice check md5 does not match | 分片内容异常 |