[关闭]
@sewise-dev 2017-01-03T09:43:32.000000Z 字数 16868 阅读 670

(媒资平台)VPaas平台PHP API接口文档

VPaas组件化 媒资平台


更新历史

编号 版本 说明 作者 日期
1 v1.0 1.创建文档 Seven 2016-12-14
2 v1.1 1.1.完善文档 jacky 2016-12-29

目录

1. 对接方式、鉴权认证

凡是要使用应用能力的接口,双方需通过对比加密sign值,进行安全校验,否则接口不能使用。

加密算法:
sign = md5(shal(appid + time + random) + key);

成功样例
http://media.sewise.com/v1/media/info?appid=ic89rf8705ztf6uip7&time=1481600689&sign=818b8ca06a1dc4811d25983d6b19bfc3&random=123456

2. 全局返回码说明

每次调用接口时,可能获得正确或错误的返回码,开发者可以根据返回码信息调试接口,排查错误。

返回码 说明
-1 系统繁忙,此时请开发者稍候再试
200 请求成功
403 禁止访问
404 异常错误
500 数据验证错误
40001 不合法的凭证,或者access_token无效。
40004 不合法请求

HTTP请求状态返回格式

返回字段 字段类型 说明
status Integer 请求返回码(详细请见状态表)
message String 返回描述
data Array 返回结果

错误样例
{
"status": 40013,
"message": {"0":"invalid appid"}
}
成功样例
{
"status": 200,
"data": {"access_token":"ACCESS_TOKEN","expires_in":7200}
}


1.媒资平台

1.1 创建一个目录节点

接口地址

/v1/media/createNode

HTTP Content-Type / 请求方式

application/json
POST

请求参数
参数 必选 类型 说明
RequestBody
name String 目录名称
parentId Int 父节点id
HTTP 响应状态

200

返回字段 字段类型 说明
status int 返回状态码
message String 返回错误信息
data Array 返回结果
接口示例

Request
curl -X POST -H "Content-Type:application/json" -d {"name":"默认目录","parentId":"12"} http://media.sewise.com/v1/media/createNode
Response
{
"status": 200,
"data": {
"cId": "3",
"name": "视频录像",
"parentId": "1",
"userId": "1",
"aId": "1",
"status":1
}
}

1.2 更改一个目录节点

接口地址

/v1/media/editNode

说明

暂时只支持修改目录名称,不涉及父节点修改

HTTP Content-Type / 请求方式

application/json
POST

请求参数
参数 必选 类型 说明
RequestBody
cId Int 分类Id
name String 目录名称
HTTP 响应状态

200

返回字段 字段类型 说明
status int 返回状态码
message String 返回错误信息
data Array 返回结果
接口示例

Request
curl -X POST -H "Content-Type:application/json" -d {"cId":"2","name":"视频","parentId":"1"} http://media.sewise.com/v1/media/editNode
Response
{
"status": 200,
"message": "修改成功",
"data": {
"cId": "2",
"name": "视频",
"parentId": "1",
"userId": "1",
"aId": "1",
"modifiedDate": "2016-12-14 11:06:24",
"status": "1"
}
}

1.3 删除一个目录节点

接口地址

/v1/media/deleteNode

HTTP Content-Type / 请求方式

application/json
POST

请求参数
参数 必选 类型 说明
RequestBody
cId Int 分类Id;删除父节点时,前端应该提示:确定删除该分类和其分类下的子分类?用户确定后才提交请求
HTTP 响应状态

200

返回字段 字段类型 说明
status int 返回状态码
message String 返回错误信息
data Array 返回结果
接口示例

Request
curl -X POST -H "Content-Type:application/json" -d {"cId":"2"}
http://media.sewise.com/v1/media/deleteNode
Response
{
"status": 200,
"message": "删除成功",
}

1.4 获取工作空间目录树形结构

接口地址

/v1/media/treeNode

HTTP Content-Type / 请求方式

application/json
GET/POST

请求参数
参数 必选 类型 说明
RequestBody
HTTP 响应状态

200

返回字段 字段类型 说明
status int 返回状态码
message String 返回错误信息
data Array 返回结果
data
返回字段 字段类型 说明
maxLevel int 返回允许创建最大层级;maxLevel:-1时允许无限分级
events Array 返回各种视频状态操作事件
events
返回字段 字段类型 说明
categorys Array 返回分类列表结果
接口示例

Request
curl -X POST -H "Content-Type:application/json" -d
http://media.sewise.com/v1/media/treeNode
Response
{"status":200,"data":[{"maxLevel":"6","events":[{"name":"正在转码","num":"20","status":"1"},{"name":"暂不可用","num":"8","status":"0"},{"name":"准备就绪","num":"6","status":"2","categorys":[{"cId":"1","name":"默认目录","parentId":"0","level":"1","children":[{"cId":"2","name":"视频","parentId":"1","level":"2","children":[{"cId":"4","name":"视频4","level":"3","parentId":"2"}]}]},{"cId":"6","name":"目录2","parentId":"0","level":"1","children":[{"cId":"7","name":"视频","level":"2","parentId":"1"}]}]}]}]}

1.5 文件上传保存

接口地址

/v1/media/save

HTTP Content-Type / 请求方式

application/json
POST

请求参数
参数 必选 类型 说明
PathParam
appid String 应用appId
time long 请求时间戳(1481699786)
random String 加密随机数
sign String 授权签名
RequestBody
fileName String 文件名称
sourceId String 视频文件源sourceId
format String 文件格式
url String 媒资地址
img String 媒资截图
duration float 媒资时长
size bigint 文件的字节数
dimension String 分辨率:(640*480)
bitrate int 码率:(480)
framerate String 帧率:(25fbps)
status int 状态: 0,不可用 ; 1,可用
isReferenced int 使用状态: 0,未引用 ;1,引用
catalog int 素材所属的目录ID
transcodeId String 转码任务ID
workerUrl String 服务的worker地址
例如:

/v1/media/save?appid={appid}&time={time}&random={random}&sign={sign}

HTTP 响应状态

200

返回字段 字段类型 说明
status int 返回状态码
message String 返回错误信息
data Array 返回结果
接口示例

Request
curl -X POST -H "Content-Type:application/json" -d {"fileName":"我的收藏","sourceId":"#########",....} http://media.sewise.com/v1/media/save
Response
{"status":200,"data":{"mId":"10"}}

1.6 文件信息

接口地址

/v1/media/info

HTTP Content-Type / 请求方式

application/json
POST

请求参数

方式一 (POST)

参数 必选 类型 说明
PathParam
appid String 应用appId
time long 请求时间戳(1481699786)
random String 加密随机数
sign String 授权签名
RequestBody
mId int 文件平台编号

方式二 (POST)

参数 必选 类型 说明
RequestHeader
token String 管理员/内部调用授权签名
RequestBody
userId Long 用户uid
mId int 文件平台编号

方式三 (POST)

参数 必选 类型 说明
RequestHeader
unLoginToken String 免登陆授权签名
RequestBody
userId Long 用户uid
mId int 文件平台编号
HTTP 响应状态

200

返回字段 字段类型 说明
status int 返回状态码
message String 返回错误信息
data Array 返回结果

data

返回字段 字段类型 说明
mId int 返回状态码
sourceId String 视频 ID
user String 上传者
audio String 音频
tags String 标签
modifiedDate String 返回错误信息
audio String 音频
orign String 原画
videolist Array 返回结果

videolist

返回字段 字段类型 说明
sd array 高清
hd array 标清
shd array 流畅

sd

返回字段 字段类型 说明
template_id string tp_sd
template_name string 高清
dimension string 1280x720
bitrate string 1500kb/s
dimension string 640*480
bitrate string 1M
data array 转码视频数据

data

返回字段 字段类型 说明
itemId string tp_sd
mId string 高清
sourceId string 视频sourceid
format string
duration int 时长
size int 文件大小
dimension string 分辨率
bitrate string
framerate string
status int 视频转码状态
modifiedDate int 最近更新时间
process int 转码百分比
jobId string 转码任务id
play string 播放地址
download string 下载地址
接口示例

Request
curl -X POST -H "Content-Type:application/json" -d {"mId":"1"}
http://media.sewise.com/v1/media/info
Response
{"status":200,"data":{"mId":"1","userId":"1","aId":"1","sourceId":"31480a4e452e85d64c3861525d5b6e25","fileName":"周润发 - 电影澳门风云3爆片花","status":"2","errorStatus":"0","isReferenced":"0","modifiedDate":"1482894124","category":"1","tags":"","resolution":"2","workerUrl":"http://192.168.1.66:3000","uploadUrl":"192.168.1.66:8888","maxQuality":"2","duration":"30","user":"","audio":{"acodec":"aac","channels":2,"samplerate":44100},"orign":{"file_size":"21650769","cover":"http://192.168.1.66:81/cover/31/48/0a/31480a4e452e85d64c3861525d5b6e25.jpg","duration":30,"format":"mp4","vcodec":"mpeg4","dimension":"1280x720","bitrate":5682742,"framerate":25},"videolist":{"sd":{"template_id":"tp_sd","template_name":"标清","dimension":"640x480","bitrate":"768kb/s","data":{"itemId":"1","mId":"1","sourceId":"31480a4e452e85d64c3861525d5b6e25","format":"","quality":"1","duration":"30","size":"21650769","dimension":"640x480","bitrate":"5682742","framerate":"25","status":"2","modifiedDate":"1482894115","process":"100","poster":"","templateId":"tp_sd","jobId":"","play":"http://192.168.1.66:8888/api/player/31480a4e452e85d64c3861525d5b6e25?mode=vod&protocal=hls","download":"http://192.168.1.66:81/video/31/48/0a/31480a4e452e85d64c3861525d5b6e25.mp4"}},"hd":{"template_id":"tp_hd","template_name":"高清","dimension":"1280x720","bitrate":"1500kb/s","data":{"itemId":"2","mId":"1","sourceId":"31480a4e452e85d64c3861525d5b6e25","format":"","quality":"2","duration":"30","size":"21650769","dimension":"1280x720","bitrate":"5682742","framerate":"25","status":"2","modifiedDate":"1482894124","process":"100","poster":"","templateId":"tp_hd","jobId":"","play":"http://192.168.1.66:8888/api/player/31480a4e452e85d64c3861525d5b6e25?mode=vod&protocal=hls","download":"http://192.168.1.66:81/video/31/48/0a/31480a4e452e85d64c3861525d5b6e25.mp4"}}}}}

1.7 文件列表

接口地址

/v1/media/list

HTTP Content-Type / 请求方式

application/json
GET/POST

请求参数

方式一 (POST)

参数 必选 类型 说明
PathParam
appid String 应用appId
time long 请求时间戳(1481699786)
random String 加密随机数
sign String 授权签名
RequestBody
cId int 素材所属的目录ID,默认所有目录
page int 页数,默认1
pageSize int 页码,默认20
order String 排序,默认modifiedDate倒序(mId/fileName/modifiedDate/duration/name/status)
direction String 升序(ASC)/降序(DESC),默认降序
keyword String 搜索关键字
例如:

/v1/media/list?appid={appid}&time={time}&random={random}&sign={sign}

方式二 (POST)

参数 必选 类型 说明
RequestHeader
token String 管理员/内部调用授权签名
RequestBody
cId int 素材所属的目录ID,默认所有目录
page int 页数,默认1
pageSize int 页码,默认20
order String 排序,默认modifiedDate倒序(mId/fileName/modifiedDate/duration/name/status)
direction String 升序(ASC)/降序(DESC),默认降序
keyword String 搜索关键字

方式三 (POST)

参数 必选 类型 说明
RequestHeader
unLoginToken String 免登陆授权签名
RequestBody
cId int 素材所属的目录ID,默认所有目录
page int 页数,默认1
pageSize int 页码,默认20
order String 排序,默认倒序
keyword String 搜索关键字

根据转码状态来请求(POST)

参数 必选 类型 说明
RequestBody
status int 转码状态,默认转码完成:2,转码中:1;不可用:-1;禁止:0
page int 页数,默认1
pageSize int 页码,默认20
order String 排序,默认modifiedDate倒序(mId/fileName/modifiedDate/duration/name/status);特殊字段status;
direction String 升序(ASC)/降序(DESC),默认降序
keyword String 搜索关键字

根据分类来请求(POST)

参数 必选 类型 说明
RequestBody
cId int 素材所属的目录ID,默认所有目录
page int 页数,默认1
pageSize int 页码,默认20
order String 排序,默认modifiedDate倒序(mId/fileName/modifiedDate/duration/name)
direction String 升序(ASC)/降序(DESC),默认降序
keyword String 搜索关键字
HTTP 响应状态

200

返回字段 字段类型 说明
status int 返回状态码
message String 返回错误信息
data Array 返回结果
orderFields Array 可排序字段以及相关值

orderFields

返回字段 字段类型 说明
order Array 排序可用字段
status Array 视频转码状态
direction Array 升降序

data

返回字段 字段类型 说明
total_page int 总页数
page int 当前页数
pagesize int 每页显示数目
total_record int 所有数据总数
record array 当前页所有数据

record

返回字段 字段类型 说明
mId int 媒资id
userId int 上传用户id
user string 上传用户名
aId int 应用id
sourceId int 视频sourceid
fileName array 视频名
status array 视频状态
errorStatus array 不可用状态
isReferenced array 是否引用;1:引用
modifiedDate array 最近修改时间
category string 上一级分类名
categoryId int 上一级分类id
tags string 标签
resolution int 所有分辨率总数
duration int 视频时长
retrancode int 是否可以需要重新转码;1:可以
dimension string 最高码率分辨率
videolist array 视频播放列表
size int 视频大小
process int 视频所有分辨率转码平均百分比

videolist

返回字段 字段类型 说明
name int 模版名
play int 播放地址
接口示例

Request
curl -X POST -H "Content-Type:application/json" -d {"catalog":"1","page":"1","pageSize":"20","order":"mId Desc"}
http://media.sewise.com/v1/media/list
Response
{"status":200,"data":{"total_page":1,"page":"2","pagesize":"20","total_record":6,"record":[{"mId":"12","sourceId":"","fileName":"2222","status":"","isReferenced":"0","modifiedDate":"2016/12/21","category":"0","tags":"超级英雄,科幻,漫威,好莱坞","extra":{"audio":["双声道","AAC","64k","64kps"],"orign":["650x490","2M","1.2G","30帧","MP4","H.264"]},"resolution":"0","workerUrl":"","maxQuality":"1","duration":"1020","poster":"","dimension":"","video":"","size":0,"process":"0%"},{"mId":"13","sourceId":"","fileName":"11111","status":"","isReferenced":"0","modifiedDate":"2016/12/21","category":"0","tags":"22222222","extra":[],"resolution":"0","workerUrl":"","maxQuality":"0","duration":"110","poster":"","dimension":"","video":"","size":0,"process":"0%"},{"mId":"10","sourceId":"","fileName":"11111","status":"","isReferenced":"0","modifiedDate":"2016/12/09","category":"0","tags":"22222222","extra":[],"resolution":"0","workerUrl":"","maxQuality":"0","duration":"600","poster":"","dimension":"","video":"","size":0,"process":"0%"},{"mId":"6","sourceId":"","fileName":"2222","status":true,"isReferenced":"0","modifiedDate":"2016/08/27","category":"0","tags":"超级英雄,科幻,漫威,好莱坞","extra":{"audio":["双声道","AAC","64k","64kps"],"orign":["650x490","2M","1.2G","30帧","MP4","H.264"]},"resolution":"0","workerUrl":"","maxQuality":"1","duration":"100","poster":"","dimension":"640*480","video":"d22a334f555d11","size":"100K","process":"1%"},{"mId":"7","sourceId":"","fileName":"11111","status":"","isReferenced":"0","modifiedDate":"2016/05/04","category":"0","tags":"22222222","extra":[],"resolution":"0","workerUrl":"","maxQuality":"0","duration":"200","poster":"","dimension":"","video":"","size":0,"process":"0%"},{"mId":"9","sourceId":"","fileName":"2222","status":"","isReferenced":"0","modifiedDate":"2016/01/09","category":"0","tags":"超级英雄,科幻,漫威,好莱坞","extra":{"audio":["双声道","AAC","64k","64kps"],"orign":["650x490","2M","1.2G","30帧","MP4","H.264"]},"resolution":"0","workerUrl":"","maxQuality":"1","duration":"500","poster":"","dimension":"","video":"","size":0,"process":"0%"}],"orderFields":{"status":[0,1,2],"order":["mId","fileName","modifiedDate","name","duration","status"],"direction":["asc","desc"]}}}

1.8 移动媒资到一个目录节点

接口地址

/v1/media/move

HTTP Content-Type / 请求方式

application/json
POST

请求参数
参数 必选 类型 说明
RequestBody
mIds Int 媒资Id组成的数组转的字符串(如 "1,2,3")
cId Int 分类Id
HTTP 响应状态

200

返回字段 字段类型 说明
status int 返回状态码
message String 返回错误信息
data Array 返回结果
接口示例

Request
curl -X POST -H "Content-Type:application/json" -d {"mIds":"1,2,3","cId":"2"}
http://media.sewise.com/v1/media/moveMedia
Response
{
"status": 200,
"message": "移动成功",
}

1.9 修改媒资标签信息

接口地址

/v1/media/updateTags

HTTP Content-Type / 请求方式

application/json
POST

修改单个媒资标签

请求参数
参数 必选 类型 说明
RequestBody
mId Int 媒资Id(多个id用','来间隔)
tags string 媒资标签;用','间隔

增量修改多个媒资标签

请求参数
参数 必选 类型 说明
RequestBody
mId Int 媒资Id
tags string 媒资标签;用','间隔
HTTP 响应状态

200

返回字段 字段类型 说明
status int 返回状态码
message String 返回错误信息
接口示例

Request
curl -X POST -H "Content-Type:application/json" -d {"mId":"1","tags":"超级英雄,科幻,漫威,好莱坞"}
http://media.sewise.com/v1/media/updateTags
Response
{
"status": 200,
"message": "修改成功",
}

2.0 删除媒资

接口地址

/v1/media/delete

HTTP Content-Type / 请求方式

application/json
POST

请求参数
参数 必选 类型 说明
RequestBody
mIds Int 媒资Id组成的数组转的字符串(如1,2,3)
HTTP 响应状态

200

返回字段 字段类型 说明
status int 返回状态码
message String 返回错误信息
data Array 返回结果
接口示例

Request
curl -X POST -H "Content-Type:application/json" -d {"mIds":"1,2,3"}
http://media.sewise.com/v1/media/delete
Response
{
"status": 200,
"message": "删除成功",
}

2.1 下载文件

接口地址

/v1/media/download

HTTP Content-Type / 请求方式

application/json
POST

请求参数
参数 必选 类型 说明
RequestBody
source_id string 流id
definition int 清晰度(0流畅1标清2高清)
HTTP 响应状态

200

返回字段 字段类型 说明
status int 返回状态码
message String 返回错误信息
data Array 返回结果
接口示例

Request
curl -X POST -H "Content-Type:application/json" -d {"source_id":"aaaaaaaa","definition":"0"}
http://media.sewise.com/v1/media/download
Response
{"status":200,"data":{"downloadurl":"http://download.sewise.com/qwerasdfzxcvtyuiqwerasdfzxcvtyui.flv"}}

2.2 修改媒资信息

接口地址

/v1/media/update

HTTP Content-Type / 请求方式

application/json
POST

请求参数
参数 必选 类型 说明
RequestBody
mId Int 媒资Id(多个id用','来间隔)
fileName string 媒资标题
HTTP 响应状态

200

返回字段 字段类型 说明
status int 返回状态码
message String 返回错误信息
接口示例

Request
curl -X POST -H "Content-Type:application/json" -d {"mId":"1","fileName":"超级英雄"}
http://media.sewise.com/v1/media/update
Response
{
"status": 200,
"message": "修改成功",
}

2.3 上传接口

接口地址

/v1/media/server

HTTP Content-Type / 请求方式

application/json
POST/GET

HTTP 响应状态

200

返回字段 字段类型 说明
status int 返回状态码
data array 返回上传信息

data

返回字段 字段类型 说明
UUID string 上传任务id
serverUrl string 核心地址
handleUrl string 核心握手地址地址
uploadUrl string 上传地址;加上uuid和切片数id即为切片核心上传地址
callbackUrl string 媒资回调地址
接口示例

Request
curl -X POST -H "Content-Type:application/json"
http://media.sewise.com/v1/media/server
Response
{"cId":"1","UUID":"bb5ae39dd047b874341528f5d8c41380","serverUrl":"http://192.168.1.128:3000","handleUrl":"http://192.168.1.128:3000/api/file/upload","uploadUrl":"192.168.1.128:8888","callbackUrl":"http://192.168.1.111/v1/media/callback?token=09e05eafd740fc13116c962d1a6872e0412d1ecd","extra":"a:7:{s:9:\"file_size\";i:0;s:10:\"slice_size\";i:0;s:10:\"slice_nums\";i:0;s:11:\"suffix_name\";s:0:\"\";s:3:\"tag\";s:0:\"\";s:9:\"file_name\";s:0:\"\";s:13:\"capture_image\";b:0;}"}

2.4 取消媒资

接口地址

/v1/media/cancel

HTTP Content-Type / 请求方式

application/json
POST

请求参数
参数 必选 类型 说明
RequestBody
mIds Int 媒资Id组成的数组转的字符串(如1,2,3)
HTTP 响应状态

200

返回字段 字段类型 说明
status int 返回状态码
message String 返回错误信息
data Array 返回结果
接口示例

Request
curl -X POST -H "Content-Type:application/json" -d {"mIds":"1,2,3"}
http://media.sewise.com/v1/media/cancel
Response
{
"status": 200,
"message": "取消成功",
}

2.5 下载媒资(暂不能用)

接口地址

/v1/media/download

HTTP Content-Type / 请求方式

application/json
POST

请求参数
参数 必选 类型 说明
RequestBody
token string 授权token
sourceId string 媒资的sourceid
templateId string 媒资的转码模板id;不传默认tp_default;
HTTP 响应状态

200

返回字段 字段类型 说明
stream stream 下载流

2.6 请求转码进度状态

接口地址

/v1/media/process

HTTP Content-Type / 请求方式

application/json
POST

请求参数

根据媒资id请求

参数 必选 类型 说明
RequestBody
mIds string 媒资的id,用','间隔开

根据媒资sourceid请求

参数 必选 类型 说明
RequestBody
sourceIds string 媒资的sourceid,用','间隔开
HTTP 响应状态

200

接口示例

Request
curl -X POST -H "Content-Type:application/json" -d {"mIds":"1,2,3"}
http://media.sewise.com/v1/media/process
Response
{"status":200,"data":{"media":{"5":{"process":0,"sourceId":"f14555ecc94aaab916a62367368b4df4","mId":"5"},"6":{"process":0,"sourceId":"864917d2a0796dac8902bf9333331e73","mId":"6"}},"category":[{"name":"正在转码","num":4,"status":3},{"name":"暂不可用","num":0,"status":1}],"params":{"mIds":"5,6"}}}

Request
curl -X POST -H "Content-Type:application/json" -d{"sourceIds":"67324bfce3a0e32cc1a4416707c8e6e7,57e0f2030c3c485cdf9a71a8f44b36d3"}
http://media.sewise.com/v1/media/process
Response
{"status":200,"data":{"media":{"67324bfce3a0e32cc1a4416707c8e6e7":{"process":100,"sourceId":"67324bfce3a0e32cc1a4416707c8e6e7","mId":"1"},"57e0f2030c3c485cdf9a71a8f44b36d3":{"process":0,"sourceId":"57e0f2030c3c485cdf9a71a8f44b36d3","mId":"3"}},"category":[{"name":"正在转码","num":4,"status":3},{"name":"暂不可用","num":0,"status":1}],"params":{"sourceId":"67324bfce3a0e32cc1a4416707c8e6e7,57e0f2030c3c485cdf9a71a8f44b36d3"}}}

2.7 重新请求转码

接口地址

/v1/media/transcode

HTTP Content-Type / 请求方式

application/json
POST

请求参数

根据媒资id请求

参数 必选 类型 说明
RequestBody
mIds string 媒资的id,用','间隔开

根据媒资sourceid请求

参数 必选 类型 说明
RequestBody
sourceIds string 媒资的sourceid,用','间隔开
HTTP 响应状态

200

接口示例

Request
curl -X POST -H "Content-Type:application/json" -d {"mIds":"1,2,3"}
http://media.sewise.com/v1/media/transcode

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注