API参考

优质
小牛编辑
139浏览
2023-12-01

接口目录

创建视频

POST /video/api/create

需要先调用存储微服务的接口,如 /storage/api/upload 等,上传视频,获取到 storage_id

JSON 参数

参数描述取值
storage_id文件 IDstring
source_type来源类型(调用方自己定义,如 streaming, upload, etc.)string
source_id来源 ID(不知道该值可不填)string
video_name(可选)视频文件名(默认为存储服务上的文件名)string
skip_auto_trans(可选)创建的视频无视该用户配置的自动转码规则,不进行自动转码(为 true 时生效)bool

返回字段

参数描述取值
errcode错误码,1000 为正常int
msg"OK" 或错误信息string
id视频 IDstring

返回示例:

{
    "errcode": 1000,
    "id": "17lok52y",
    "msg": "OK"
}

获取视频列表

GET /video/api/list

视频状态表:

意义
0初始状态
1上传成功(这是最终状态)
2上传中
3上传失败
4已删除

转码视频状态表:

意义
0初始状态(过程状态)
1上传成功(这是最终状态)
2转码中(过程状态)
3转码成功(过程状态)
4转码失败
5上传中(过程状态)
6上传失败
7已删除

URL 参数

参数描述取值
page页数,默认 1int
page_size每页个数,默认 15int

返回字段

参数描述取值
errcode错误码,1000 为正常int
msg"OK" 或错误信息string
videos视频列表object array
videos.id视频 IDstring
videos.created_at创建时间string
videos.updated_at更新时间string
videos.source_type上传来源类型string
videos.source_id来源 IDstring
videos.status视频状态(见视频状态表)int
videos.storage_id文件 IDstring
videos.origin_url原片 URL(初始为空)string
videos.thumb_url视频封面 URL(初始为空)string
videos.file_size视频文件大小int
videos.video_name视频名称string
videos.video_width视频宽int
videos.video_height视频高int
videos.video_duration视频时长(毫秒)int
videos.shared_state分享状态(0-私有,1-需要密码,2-不需要密码)int
videos.share_password分享密码string
videos.play_set视频转码数据object array
videos.play_set.created_at创建时间string
videos.play_set.updated_at更新时间string
videos.play_set.storage_id文件 IDstring
videos.play_set.status转码视频状态(定义见转码视频状态表)int
videos.play_set.trans_progress转码进度(0.0~1.0)float
videos.play_set.trans_task_config_temp_id转码模板 IDint
videos.play_set.url文件 URLstring
videos.play_set.file_size视频文件大小int
videos.play_set.video_width视频宽int
videos.play_set.video_height视频高int
videos.play_set.video_duration视频时长(毫秒)int
videos.play_set.resolution清晰度(360P, 480P, 720P, 1080P, Origin)string
count视频总个数int

返回示例:

{
    "count": 33,
    "errcode": 1000,
    "msg": "OK",
    "videos": [
        {
            "id": "17lok52y",
            "created_at": "2010-11-22T15:16:17+08:00",
            "updated_at": "2010-11-22T15:16:17+08:00",
            "source_type": "1",
            "source_id": "1",
            "status": 1,
            "storage_id": "1",
            "origin_url": "1",
            "thumb_url": "1",
            "file_size": 1,
            "video_name": "1",
            "video_width": 1,
            "video_height": 1,
            "video_duration": 1,
            "shared_state": 1,
            "share_password": "5zpr0kpzo",
            "play_set": [
                {
                    "created_at": "2010-11-22T15:16:17+08:00",
                    "updated_at": "2010-11-22T15:16:17+08:00",
                    "storage_id": "1",
                    "status": 1,
                    "trans_progress": 1,
                    "trans_task_config_temp_id": 1,
                    "url": "1",
                    "file_size": 1,
                    "video_width": 1,
                    "video_height": 1,
                    "video_duration": 1,
                    "resolution": "360P"
                }
            ]
        }
    ]
}

获取单个视频

GET /video/api/get

URL 参数

参数描述取值
id视频 IDstring

返回字段

参数描述取值
errcode错误码,1000 为正常int
msg"OK" 或错误信息string
video视频信息object
video.id视频 IDstring
video.created_at创建时间string
video.updated_at更新时间string
video.source_type上传来源类型string
video.source_id来源 IDstring
video.status视频状态(见视频状态表)int
video.storage_id文件 IDstring
video.origin_url原片 URL(初始为空)string
video.thumb_url视频封面 URL(初始为空)string
video.file_size视频文件大小int
video.video_name视频名称string
video.video_width视频宽int
video.video_height视频高int
video.video_duration视频时长(毫秒)int
video.shared_state分享状态(0-私有,1-需要密码,2-不需要密码)int
video.share_password分享密码string
video.play_set视频转码数据object array
video.play_set.created_at创建时间string
video.play_set.updated_at更新时间string
video.play_set.storage_id文件 IDstring
video.play_set.status转码视频状态(定义见转码视频状态表)int
video.play_set.trans_progress转码进度(0.0~1.0)float
video.play_set.trans_task_config_temp_id转码模板 IDint
video.play_set.url文件 URLstring
video.play_set.file_size视频文件大小int
video.play_set.video_width视频宽int
video.play_set.video_height视频高int
video.play_set.video_duration视频时长(毫秒)int
video.play_set.resolution清晰度(360P, 480P, 720P, 1080P, Origin)string

返回示例:

{
    "errcode": 1000,
    "msg": "OK",
    "video": {
        "id": "17lok52y",
        "created_at": "2010-11-22T15:16:17+08:00",
        "updated_at": "2010-11-22T15:16:17+08:00",
        "source_type": "1",
        "source_id": "1",
        "status": 1,
        "storage_id": "1",
        "origin_url": "1",
        "thumb_url": "1",
        "file_size": 1,
        "video_name": "1",
        "video_width": 1,
        "video_height": 1,
        "video_duration": 1,
        "shared_state": 1,
        "share_password": "5zpr0kpzo",
        "play_set": [
            {
                "created_at": "2010-11-22T15:16:17+08:00",
                "updated_at": "2010-11-22T15:16:17+08:00",
                "storage_id": "1",
                "status": 1,
                "trans_progress": 1,
                "trans_task_config_temp_id": 1,
                "url": "1",
                "file_size": 1,
                "video_width": 1,
                "video_height": 1,
                "video_duration": 1,
                "resolution": "360P"
            }
        ]
    }
}

获取分享视频

GET /video/api/get_shared_video

若访问该视频需要密码,当密码一致时才能获取该视频

URL 参数

参数描述取值
id视频 IDstring
password视频密码string

返回内容同获取单个视频

搜索视频

GET /video/api/search

  • 根据视频 ID 搜索
  • 根据视频名称模糊搜索
  • 根据视频来源搜索

URL 参数

参数描述取值
search搜索内容(ID 或视频名称)string
source_type视频来源int
page页数,默认 1int
page_size每页个数,默认 15int

返回字段和示例同获取视频列表

更新视频名称、视频封面等视频信息

POST /video/api/update

(更新封面时,原封面会被删除)

URL 参数

参数描述取值
id视频 IDstring

JSON 参数

参数描述取值
video_name(可选)视频名称string
thumb_storage_id(可选)要替换的封面的文件 IDstring

返回字段

参数描述取值
errcode错误码,1000 为正常int
msg"OK" 或错误信息string

返回示例:

{
    "errcode": 1000,
    "msg": "OK"
}

设置视频分享密码

POST /video/api/set_video_password

URL 参数

参数描述取值
id视频 IDstring

JSON 参数

参数描述取值
shared_state分享状态(0-私有,1-需要密码,2-不需要密码)int
password视频分享密码(0-16位字符)string

返回字段

参数描述取值
errcode错误码,1000 为正常int
msg"OK" 或错误信息string

返回示例:

{
    "errcode": 1000,
    "msg": "OK"
}

查询该用户所有视频的已用空间

GET /video/api/get_video_size_sum

返回字段

参数描述取值
errcode错误码,1000 为正常int
msg"OK" 或错误信息string
size_sum该用户所有视频的已用空间(字节)int

返回示例:

{
    "errcode": 1000,
    "msg": "OK",
    "size_sum": 4813741023
}

转码视频

POST /video/api/trans

说明:若调用转码时存储的原始文件还没准备好,是无法转码的,可以在创建点播并成功收到 video_ready 回调之后,再去调用转码

URL 参数

参数描述取值
id视频 IDstring

JSON 参数

参数描述取值
task_config_temp_id转码模板 ID(参见转码微服务)int
redo重新转码,该操作会删除原有的转码任务bool

返回字段

参数描述取值
errcode错误码,1000 为正常int
msg"OK" 或错误信息string

返回示例:

{
    "errcode": 1000,
    "msg": "OK"
}

删除视频

POST /video/api/delete

视频、视频的转码、视频封面也会被删除

URL 参数

参数描述取值
id视频 IDstring

返回字段

参数描述取值
errcode错误码,1000 为正常int
msg"OK" 或错误信息string

返回示例:

{
    "errcode": 1000,
    "msg": "OK"
}

批量删除视频

POST /video/api/delete_videos

视频、视频的转码、视频封面也会被删除

URL 参数

参数描述取值
ids一组视频 ID,用逗号隔开string

返回字段

参数描述取值
errcode错误码,1000 为正常int
msg"OK" 或错误信息string

返回示例:

{
    "errcode": 1000,
    "msg": "OK"
}

查询单个视频的每分钟流量

GET /video/api/list_video_statistic

可以查询跨度在90天内的该视频的流量数据,即查询该视频的 [start, end] 时间范围内的每分钟流量,且 end-start<=90天

URL 参数

参数描述取值
id视频 IDstring
start时间戳int
end时间戳int

返回字段

参数描述取值
errcode错误码,1000 为正常int
msg"OK" 或错误信息string
video_statistic结果列表object array
video_statistic.time时间string
video_statistic.bytes该分钟的流量(字节数)int

查询视频总流量,分页

GET /video/api/list_video_total_summary

可以选择如下查询方式:

  • 按视频 ID 查询
  • 按视频名称查询
  • 按视频创建时间查询,即 start<=视频创建时间<=end,且 end-start<=90天

URL 参数

参数描述取值
search视频 ID 或 视频名称string
start时间戳int
end时间戳int
page页数,默认 1int
page_size每页个数,默认 20int

返回字段

参数描述取值
errcode错误码,1000 为正常int
msg"OK" 或错误信息string
count满足查询条件的视频总数int
video_total_summary_list结果列表object array
video_total_summary_list.video_id视频 IDstring
video_total_summary_list.video_name视频名称string
video_total_summary_list.video_created_at上传时间string
video_total_summary_list.total_bytes使用流量(字节)int

导出视频总流量,分页

GET /video/api/export_video_total_summary

可以选择如下查询方式:

  • 按视频 ID 查询
  • 按视频名称查询
  • 按视频创建时间查询,即 start<=视频创建时间<=end,且 end-start<=90天

URL 参数

参数描述取值
search视频 ID 或 视频名称string
start时间戳int
end时间戳int

返回一个 CSV 文件

查询该用户上传的所有视频的每日流量之和

GET /video/api/list_user_video_day_summary

可以查询跨度在90天内的每日流量之和,即 [start, end] 时间范围内的每日流量之和,且 end-start<=90天

URL 参数

参数描述取值
start北京时区的零点时间戳,如 1471881600(2016-08-23 00:00:00)int
end北京时区的零点时间戳int

返回字段

参数描述取值
errcode错误码,1000 为正常int
msg"OK" 或错误信息string
user_video_day_summary_list结果列表object array
user_video_day_summary_list.date日期string
user_video_day_summary_list.total_bytes使用流量(字节)int

导出该用户上传的所有视频的每日流量之和,一天一条数据

GET /video/api/export_user_video_day_summary

可以查询跨度在90天内的每日流量之和,即 [start, end] 时间范围内的每日流量之和,且 end-start<=90天

URL 参数

参数描述取值
start北京时区的零点时间戳,如 1471881600(2016-08-23 00:00:00)int
end北京时区的零点时间戳int

返回一个 CSV 文件

获取该用户上传的所有视频的总流量之和

GET /video/api/get_user_video_total_summary

返回字段

参数描述取值
errcode错误码,1000 为正常int
msg"OK" 或错误信息string
user_video_total_summary结果对象object
user_video_total_summary.total_bytes使用流量(字节)int

错误码

错误代码使用模块错误描述
3101点播参数不合法
3102点播找不到该文件
3103点播视频正在上传
3104点播视频上传失败
3105点播视频已有正在进行的或已完成的转码
3106点播媒体库已存在该视频,请勿重复上传
3107点播该文件上传失败,请重新上传
3108点播访问拒绝
3111点播内部错误:无法创建转码任务
3112点播内部错误:无法删除转码任务
3113点播内部错误:从 URL 上传文件失败
3114点播内部错误:创建临时文件失败
3121点播插入视频失败
3122点播查询单个视频失败
3123点播修改视频失败
3124点播删除视频失败
3125点播查询视频列表失败
3126点播检查 storage ID 是否存在失败
3127点播获取视频大小之和失败
3131点播插入视频具体数据失败
3132点播查询单个视频具体数据失败
3133点播修改视频具体数据失败
3134点播删除视频具体数据失败
3135点播查询视频具体数据列表失败
3141点播add video key description failed
3142点播modify video key description failed
3143点播get video key description failed
3144点播delete video key description failed
3151点播保存转码配置失败
3152点播删除转码配置失败
3153点播获取转码配置列表失败
3161点播数据库错误:获取点播总流量失败
3162点播数据库错误:列出点播总流量失败
3163点播数据库错误:列出用户每日流量失败
3164点播数据库错误:获取用户点播总流量失败

消息通知

0.在 svc_notify.user_event_config 中配置要回调的用户和回调地址,例如

36 video http://bugu.198dev.myun.tv:10080/videos/api/video_callback http 36 transcoding http://bugu.198dev.myun.tv:10080/videos/api/transcode_callback http

1.视频和转码的视频准备好(即其 Status 为 1)后,会调用消息通知微服务,发送视频数据

2.视频准备好后发送:

参数|描述|类型| |-------|--------|--------| |event_type|事件类型,值为 "video_ready" |string| |video_id|视频 ID|string| |storage_id|存储 ID|string| |source_type|上传来源类型|string| |source_id|来源 hash ID|string| |url_origin|原片 URL|string| |thumb_url|视频封面 URL|string| |file_size|视频文件大小|int| |video_name|视频名称|string| |video_width|视频宽|int| |video_height|视频高|int| |video_duration|视频时长|int| |play_set|视频转码的数据(定义见下表)|object array|

其中 play_set 是一个对象数组,对象描述:

参数描述类型
play_set_idPlaySet IDstring
trans_task_config_temp_id转码模板 IDint
resolution清晰度("360P", "480P", "720P", "1080P", "Origin")string
url文件 URLstring
file_size视频文件大小int
video_width视频宽int
video_height视频高int
video_duration视频时长int

若用户有转码配置,play_set 会包含一个转码数据;否则 play_set 为空

3.转码视频准备好后发送:

参数描述类型
event_type事件类型,值为 "video_play_set_ready"string
play_set_idPlaySet IDstring
video_id视频 IDstring
status转码视频状态(定义见"获取视频列表")int
trans_task_config_temp_id转码模板 IDint
resolution清晰度("360P", "480P", "720P", "1080P", "Origin")string
url文件 URLstring
file_size视频文件大小int
video_width视频宽int
video_height视频高int
video_duration视频时长int

判断视频能否合并

POST /video/api/can_videos_be_merged

仅限 M3U8 链接

JSON 参数

参数描述取值
video_urlsM3U8 链接数组string array

返回字段

参数描述取值
errcode错误码,1000 为正常int
msg"OK" 或错误信息string
can_be_merged能否合并bool

返回示例:

{
    "errcode": 1000,
    "msg": "OK",
    "can_be_merged": true
}