视频云提供第三方客户端接口 API 文档 文档版本控制 版本号 日期 作者 修改项 1.0 2013/05/09 束欢 视频云提供第三方客户端接口定义 2.0 2013/05/31 束欢 增加获取视频列表接口 API 定义 3.0 2013/06/14 束欢 增加 token 过期 code 定义 4.0 2013/06/18 束欢 接口 2 修改,vide 修改为 video 5.0 2013/06/24 束欢 增加企业级授权接口 6.0 2013/07/22 束欢 企业级授权接口增加 client_secret 验证参数 7.0 2013/07/23 束欢 增加刷新 AccessToken 接口 8.0 2013/08/01 束欢 接口 2 获取视频信息, 增加视频原始尺寸图片信息 originalimg 9.0 2013/08/05 束欢 增加接口 5, 获取视频 url 列表 10.0 2013/08/06 束欢 增加接口 6, 设置上传视频 meta 信息接口 11.0 2013/08/13 束欢 增加接口 7, 视频截图接口 12.0 2013/08/14 束欢 增加接口 7, 视频截图接口, 每天针对同一 file_id 调用次数不超过 10 次 第二天零晨开始重新计算 13.0 2013/09/02 束欢 修改 setmeta 接口增加回调接口定义说明 14.0 2013/09/10 束欢 修改 setmeta 接口, 增加 meta 字段 15.0 2013/10/31 束欢 修改获取视频信息接口 ( 接口 2), 返回值增加 filestauts 状态 playcount 播放次数 16.0 2013/09/10 束欢 增加下载服务接口 17.0 2014/02/12 束欢 增加第三方问题反馈接口 18.0 2014/03/25 束欢 增加删除视频接口 19.0 2014/12/1 袁春华 删除获取视频截图接口
目录 1. 视频上传接口 ( 已集成在 SDK 中 )... 2 1 1.1 请求上传... 2 1.1.1 web 端请求上传... 3 2 1.4 上传... 3 3 1.5 通知上传完成... 5 4 1.6 取消上传... 6 2. 获取视频状态... 8 3. 获取视频信息... 10 4. 企业级授权... 12 5. 刷新 ACCESS_TOKEN... 13 6. 获取视频 URL 列表... 14 7. 上传文件 META 信息接口... 16 8. 获取视频截图接口... 错误! 未定义书签 9. 删除视频信息... 18 视频云下载服务接口... 19 10. 待下载视频就绪之后回调第三方... 19 11. 第三方主动获取视频下载地址... 20 12. OPENAPI 回调接口... 21 13. CALLBACK 接口定义... 21 视频云问题反馈接口... 24 14. 第三方问题反馈接口... 24 1. 视频上传接口 ( 已集成在 SDK 中 ) 1 1.1 请求上传
在上传前, 先要请求一个 file_id 1.1.1 web 端请求上传 web 端上传请求接口. 请求地址 : GET http://upload.iqiyi.com/openupload 注 : 这是正式的 api 请求地址 如果需要在测试环境调试, 再给出测试环境的请求 url 请求参数 : 参数名 类型 是否必须 描述 filetype string 是上传文件的类型, 如 : mp4,avi 之类 filesize string 是上传文件的 size access_token string 是 开放平台分配的 access token,oauth 授权后获得 说明 :access_token,filetype,filesize 通过 http 的 header 传递 请求返回 json 字符串 : {"code": "A00000", "data": {"upload_url": "http://220.181.184.157/upload", "file_id": "4004551398f84a38a371e107f099d27e"}} # code 说明 : # "A00000": 成功 # "A00005": 应用待审核 # "A00007": 应用审核未通过 # "A00008": 应用被冻结 # "A00009": 应用被删除 # "A00010": 输入参数错误 # "A00018": 超过应用的最大配额 # data 中的 file_id 用于后续上传标识文件 # data 中的 upload_url 作为后续上传文件时 POST 的地址 2 1.4 上传 分片上传, 支持断点续传和大文件
请求地址 : POST http://qichuan.iqiyi.com/upload 注 : 请求的 url 为 : 申请 fileid 时候, 接口返回的 upload_url 参数值 请求参数 : 参数名 类型 file_size string 是 range string 是 file_id string 是 是否必须 描述 文件的总大小 写文件的范围, 例如 0-100, range 需要在 x-objectsize 有效范围内, 注意 range 下标从 0 开始 上传之前获取到的 resource id file char[] 是上传片段的内容 注 :file_id,file_size, range 通过 http 的 header 传递,file 通过 post 表单传递 请求返回 : {"code": "A00000", "range_md5": "6f81e24140e8a84e176ebf02eece3e56", "file_range_accepted": 25, "file_id": "029309c868ea4f4eb188630e9bd94eee"} # code 说明 : # "A00000": 成功 # "A00005": 非法的 file_id # "A00010": 输入参数错误 body 参数支持 (1) 指定 Http query string 为 type=body, 此时 boundary 必须是约定好的 "==iqiyiqcboundary", body 采用 Http multipart/form-data 封装 请求 : POST http://qichuan.iqiyi.com/upload?type=body 参数同 header 部分, 放到 body 里即可. (2) 未指定 Http query string 中的 type=body, 此时 boundary 无需指定, 服务端自检测,body 采用 Http multipart/form-data 封装
请求 : POST http://qichuan.iqiyi.com/upload 参数同 header 部分, 放到 body 里即可. 请注意,file 参数必须放到最后而且必须指定 filename 非空, 例如 filename=file 3 1.5 通知上传完成 请求地址 : POST http://upload.iqiyi.com/uploadfinish 注 : 这是正式的 api 请求地址 如果需要在测试环境调试, 再给出测试环境的请求 url 请求参数 : 参数 类型 是否必须 range_finished string 是值是 "true" 表示传完 access_token string 是 file_id string 是文件的 resource id authtoken string 否 注 : 参数全部通过 header 传递 请求返回 : {"code": "A00000"} # code 说明 : # "A00000": 成功 body 参数支持 描述 开放平台分配的 access token,oauth 授权后获得 非登陆用户传 authtoken, 主要用于支持啪啪奇 3.0 匿名登录 (1) 指定 Http query string 为 type=body, 此时 boundary 必须是约定好的 "==iqiyiqcboundary", body 采用 Http multipart/form-data 封装 请求 : POST http://qichuan.iqiyi.com/upload?type=body
参数同 header 部分, 放到 body 里即可. (2) 未指定 Http query string 中的 type=body, 此时 boundary 无需指定, 服务端自检测,body 采用 Http multipart/form-data 封装 请求 : POST http://qichuan.iqiyi.com/upload 参数同 header 部分, 放到 body 里即可. 4 1.6 取消上传 请求地址 : POST http://upload.iqiyi.com/cancelupload 注 : 这是正式的 api 请求地址 如果需要在测试环境调试, 再给出测试环境的请求 url 请求参数 : 参数 类型 是否必须 status int 是 2 表示停止 access_token string 是 file_id string 是文件的 resource id authtoken string 否 注 : 参数全部通过 header 传递 请求返回 : # 成功时返回 {"code": "A00000"} # code 说明 : # "A00000": 成功 body 参数支持 描述 开放平台分配的 access token,oauth 授权后获得 非登陆用户传 auth_token, 主要用于支持啪啪奇 3.0 匿名登录
(1) 指定 Http query string 为 type=body, 此时 boundary 必须是约定好的 "==iqiyiqcboundary", body 采用 Http multipart/form-data 封装 请求 : POST http://qichuan.iqiyi.com/cancelupload?type=body 参数同 header 部分, 放到 body 里即可. (2) 未指定 Http query string 中的 type=body, 此时 boundary 无需指定, 服务端自检测,body 采用 Http multipart/form-data 封装 请求 : POST http://qichuan.iqiyi.com/cancelupload 参数同 header 部分, 放到 body 里即可.
2. 获取视频状态 接口名称获取个人上传视频状态信息接口地址 (RESTFUL) http://openapi.iqiyi.com/api/file/fullstatus?access_token=access_toke N&file_id=FILE_ID HTTP 方法 GET 参数必须说明 access_token true 开放平台分配的 access token,oauth 授权后获得 file_id true 文件的 id 返回结果 { code : A00000, data : { img : http://pic8.qiyipic.com/thumb/20130427/v493238.jpg, thumbnail : http://pic8.qiyipic.com/thumb/20130426/v492138.jpg, swfurl : http://dispatcher.video.qiyi.com/disp/shareplayer.swf?vid=fbdf63138b 0d4dbf9aa6815076ab4c5c&tvId265097&cnId=23&coop=coop_videolianbo&cid=& bd=1&autochainplay=0&autoplay=1, urllist : { "mp4": { "2":"http://data.video.qiyi.com/videos/trailers/20120 903/c9dbb5c569c6fc541d70f9f334b546dd.mp4", "1":"http://data.video.qiyi.com/videos/trailers/20120 903/4d932b60c97742e61c45951ac3152e09.mp4" }, "m3u8": { "3":"http://meta.video.qiyi.com/41/2ac2f8d171360e4d4c 34bbf0d9615ec0.m3u8", "2":"http://meta.video.qiyi.com/39/c6961db04ed5dbca8a cfc8bb9645b028.m3u8", "96":"http://meta.video.qiyi.com/42/6cfecdaaf63d8c47d f7ba27daf47b145.m3u8", "1":"http://meta.video.qiyi.com/40/3b57cd6d804b8db0fb 0a4ecdb80c39c0.m3u8"
} }, }, msg :, } 注意 : Urllist 中 mp4/m3u8 代表不同的视频类型, 1 表示流畅 2 表示高清 3 表示 96 表示极速 状态码 A00000 Q00001 A00001 A00002 A00003 A00004 A00006 A00007 视频处理完成失败视频发布中视频审核失败视频不存在视频上传中用户取消上传视频发布失败 举例 : https://openapi.iqiyi.com/api/file/fullstatus?access_token=fc20472082db cc21d856678b358d5f0f&file_id=3aa3c62db3714f27b99b8ac0ccc6a864
3. 获取视频信息 接口名称 获取上传视频列表信息 说明 : 该接口只返回转码完成, 并且审核通过, 或者先发候审的视频列表信息 接口地址 (RESTFUL) http://openapi.iqiyi.com/api/file/videolistforexternal?access_token=a CCESS_TOKEN&file_ids=FILE_ID1,FILE_ID2&page_size=20&page=1 HTTP 方法 GET 参数 必须 说明 access_token true 开放平台分配的 access token,oauth 授权后获得 file_ids true 文件的 resource id, 多个 file_id 以, 隔开 file_ids 为空或者不传, 获取用户所有的视频信息 page_size false 每页大小, 默认 20 page false 第几页, 默认第一页 返回结果 { code : A00000, count : 20, // 用户视频总数 data : [ { "fileid": "903875148f0c420481ec09f757b23599", "filename": "meipai001", "createtime": 1364191124, "description": " 百度美拍上传的第一个视频 ", "filesize": 0, "filestatus": 2, "playcount": 24, // 视频大小 bytes // 视频状态 // 播放次数 " duration": 10, // 视频时长 (s) " img": " http://pic7.qiyipic.com/thumb/20130426/v492995.jpg", " originalimg": "http://img5.qiyipic.com/image/openapi/openapi_4901611c0c588501efe9b0fed050f1ed_352 x256.jpg", " thumbnail": " ",
" pageurl": "http://www.iqiyi.com/common/qplay.html?cnid=23&tvid=537215&vid=757a1 261647f4319ab89d2b39f4073e9 " }, ( 省略 ) ] } filestaus 字段说明 1: // 发布中 2: // 已经发布 3: // 审核未通过 4: // 视频不存在 / 已删除 5: // 上传中 6: // 客户取消上传状态码 A00000 Q00001 A21332 A21327 成功失败 AccessToken 无效 AccessToken 过期 举例 : https://openapi.iqiyi.com/api/file/videolistforexternal?access_token=fc 20472082dbcc21d856678b358d5f0f&file_ids=9c3d3848c8c44e7598655026cf5f96b a,37f864e49dc44ad2958f52e89b41b67d&page_size=10&page=1 https://openapi.iqiyi.com/api/file/videolistforexternal?access_token=fc 20472082dbcc21d856678b358d5f0f&page_size=10&page=1
4. 企业级授权 接口名称 隐式请求 accesstoken 接口地址 (RESTFUL) https://openapi.iqiyi.com/api/iqiyi/authorize?client_id=app_key&clien t_secret=app_secret HTTP 方法 GET 参数 必须说明 client_id true 申请应用时分配的 app_key client_secret true 申请应用时分配的 app_secret 返回结果 { code : A0000, data : { access_token : ACCESS_TOKEN, // 访问令牌 expires_in : 60, // 过期时间 refresh_token : REFRESH_TOKEN, // 刷新令牌 } } 状态码 A00000 Q00001 A00007 A21324 成功 失败 系统错误
5. 刷新 access_token 接口名称 用于请求 accesstoken 接口地址 (RESTFUL) https://openapi.iqiyi.com/api/oauth2/token?client_id=app_key&grant_ty pe=refresh_token&refresh_token=refresh_token HTTP 方法 GET 参数 必须 说明 client_id true 申请应用时分配的 app_key grant_type true 返回 refresh_token refresh_token true 刷新令牌 refresh_token 返回值 (JSON) { access_token => ACCESS_TOKEN, expires_in =>60, refresh_token => REFRESH_TOKEN, // 访问令牌 // 过期时间 // 刷新令牌 } 返回值 access_token expires_in refresh_token 访问第三方资源的凭证 accesstoken 过期时间, 以返回的时间的准, 单位为秒, 注意过期时提醒用户重新授权刷新 token
6. 获取视频 URL 列表 接口名称 用于获取视频多格式 url 播放列表 接口地址 (RESTFUL) http://openapi.iqiyi.com/api/file/urllist?access_token=access_token&f ile_id=file_id HTTP 方法 GET 参数 必须 说明 access_token true 开放平台分配的 access token,oauth 授权后获得 file_id true 文件上传 id 返回值 (JSON) { "code": "A00000" "data": { "mp4": { "1": "http://data.video.qiyi.com/videos/v/20130801/4de7081efdf13d45c0a1c87 7288cb408.mp4?v=933670055", "2": "http://data.video.qiyi.com/videos/v/20130801/9133baee1511799aee15aa1 b91ed9fb7.mp4?v=933670055" }, "m3u8": { "1": "http://meta.video.qiyi.com/20130801/64f89327ce7ef309fdfadfcf7bb971bf.m3u8", "96": "http://meta.video.qiyi.com/20130801/d0eed6e3a09447c6468677ed6afa6ed3.m3u8" } }, } // 视频格式 pc 以及移动端 m3u8: 96--> 极速
1 --> 流畅 2 --> 高清 3 --> 超清 4 --> 720P 5 --> 1080P 移动端 mp4: 1 --> 流畅 (200K) 2 --> 高清 (400K) 返回值 access_token expires_in refresh_token 访问第三方资源的凭证 accesstoken 过期时间, 以返回的时间的准, 单位为秒, 注意过期时提醒用户重新授权刷新 token
7. 上传文件 meta 信息接口 接口名称 上传文件 meta 信息接口 接口地址 (RESTFUL) http://openapi.iqiyi.com/api/file/info?access_token=access_token&file _id=file_id&file_name=file_name&description=desc HTTP 方法 GET 参数 必须说明 access_token true 开放平台分配的 access token,oauth 授权后获得 file_id true 文件 id file_name true 文件名称 description true 文件描述 tags false 用户自定义标签, 如 " 青春 搞笑 " 等等 以半角逗号分隔 file_type false 分类 '7' => ' 娱乐 ', '5' => ' 音乐 ', '25' => ' 资讯 ', '21' => ' 生活 ', '13' => ' 时尚 ', '12' => ' 教育 ', '8' => ' 游戏 ', '22' => ' 搞笑 ', '4' => ' 动漫 ', '26' => ' 汽车 ', '6' => ' 综艺 ', '1' => ' 电影 ', '2' => ' 电视剧 ', '27' => ' 原创 ', '17' => ' 体育 ', '3' => ' 纪录片 ', '9' => ' 旅游 ', '24' => ' 财经 ', '10' => ' 片花 ',
返回结果 { code : A00000, msg : } 状态吗 A00000 Q00001 成功 失败 '15' => ' 少儿 ', '16' => ' 微电影 ', '20' => ' 广告 ', '28' => ' 军事 ',
8. 删除视频信息 接口名称 删除个人上传视频 接口地址 (RESTFUL) https://openapi.iqiyi.com/api/file/delete?access_token=access_token&d elete_type=1&file_ids=file_id1,file_id2 HTTP 方法 GET 参数 必须 说明 access_token true 开放平台分配的 access token,oauth 授权后获得 delete_type true 0 表示删除全部,1 表示删除 file_ids 的 id file_ids true 文件的 resource id, 多个 file_id 以, 隔开 返回结果 { code : A00000, } 状态吗 A00000 Q00001 成功 失败
视频云下载服务接口 9. 待下载视频就绪之后回调第三方 接口名称 待下载视频就绪之后回调第三方 接口地址 (RESTFUL) http://download_callback_url( 第三方提供 ) HTTP 方法 GET 参数 必 说明 须 file_id true 视频上传 id download_uri true 下载 uri unable_time true 过期时间 ( 时间戳格式 ) 返回结果 { "code": "A00000" } 状态吗 A00000 Q00001 已经发布 失败
10. 第三方主动获取视频下载地址 接口名称 第三方主动获取视频下载地址 接口地址 (RESTFUL) http://openapi.iqiyi.com/api/download/getdownloaduri HTTP 方法 GET 参数 必 说明 须 access_token true 开放平台分配的 access token,oauth 授权后获得 file_id true 视频上传 id 返回结果 { "data": { "download_uri": "http://cdn.data.video.iqiyi.com/cdn/openapi/2013xxxx/ xxxxxxx.mkv", // 视频下载 uri }, "code": "A00000", "msg": "ok" } 状态吗 A00000 已经发布 Q00001 失败
11. OpenApi 回调接口 1 何时回调? a) 视频发布完成, 即视频生产完成, 且审核通过 ; b) 视频审核失败或者处理视频失败 ; 2 回调内容有哪些? 参数列表 : 字段名 说明 备注 code 状态码 0: 成功 1: 失败 file_id video_html_url 视频文件 ID 视频最终页播放地址 video_img_url 视频截图尺寸大小 115*77 pri_key 加密 Key file_id=...code=... 加密 key 的 md5 值, 其中 加密 key 为 分配的 app_sceret 3 回调方式? 第三方客户端提供回调接口 (HTTP 协议 POST 方式 ) 12. CallBack 接口定义 以百度贴吧 CallBack 接口定义为例 : 接口地址 (PO ST/GET) http://tieba.baidu.com/vpost/notify POST 请求 参数名称 (re quest) 参数含义 类型 是否必 须 默认值 备注 file_id 唯一标识一个视频 string 是必选 video_html_u rl 视频的 html url string 是必选
video_swf_url 视频的 swf url string 是必选 video_img_url 视频的截图 url string 是必选 code 状态码 string 是必选 必选 file_id=...code pri_key 参数检验码 string 是 =... 加密 key 的 md5 值, 其中 加密 key 为分配的 app_sceret 参数名称 (re sponse) 参数含义类型备注 0-> 成功 error_code 状态码 int32 60101-> 通知失败, 需 要再次提交 60102-> 通知失败, 不 需要再提交 0->success 60101->fail to notify and need to notify a error_msg 错误信息 string gain 60102->fail to notify and needn't to notify any more 请求示例 url: http://tieba.baidu.com/vpost/notify 爱奇艺的一次通知请 求
postfield: file_id=9f9d11a965b94cb49505a7cba1166f79&c ode=0&appid=1&video_html_url=http%3a%2f%2fwww.iq iyi.com%2fdianying%2f20130426%2faca2d009340efa8 f.html%3fshare_stime%3d0-share_etime%3d1233&vide o_swf_url=http%3a%2f%2fplayer.video.qiyi.com%2f1c6 8678a77dc44d2b50f44eada7519aa%2F0%2F1233%2Fdi anying%2f20130426%2faca2d009340efa8f.swf-pid%3d0 -ptype%3d0-albumid%3d407257-tvid%3d492578-cnid% 3D1-autoplay%3D1-qitanId%3D1118809-isDrm%3D0-isP urchase%3d0&video_img_url=http%3a%2f%2fpic8.qiyipi c.com%2fthumb%2f20130426%2fv492578.jpg&pri_key= 5c58d16a37d601fd9f9cb3fbdcf8d4e4 响应示例
视频云问题反馈接口 13. 第三方问题反馈接口 接口名称 第三方 App 问题反馈接口 接口地址 (RESTFUL) http://openapi.iqiyi.com/api/file/thirdpartyfeedback?client_id=client _ID&client_secret=CLIENT_SECRET&file_ids=FILE_ID1,FILE_ID2&cont_type= TYPE&cont_msg=MSG HTTP 方法 GET 参数 必须 说明 client_id true 申请应用时分配的 app_key client_secret true 申请应用时分配的 app_secret file_ids true 出现异常的视频的唯一标识, 多个 file_id 以, 隔开 cont_type true 反馈类型 1= 长时间无法发布 2= 无法获取视频信息 / 截图 3= 已发布视频不能播放 0= 其他问题 ( 请在留言中写明 ) cont_msg flase 反馈留言 返回结果 { "code": "A00000" msg: " 已收到, 我们会第一时间处理, 请稍后 " } 状态吗 A00000 Q00001 已经发布 失败