阿里云视频点播SDK
npm i ali-cloud-video -S
const AliCloudVideo = require('ali-cloud-video')
const ali = new AliCloudVideo({
AccessKeyId: '',
AccessKeySecret: ''
})
const videoId = 'e51aa1941e3b46648f4812dbcf5c175d'
ali.getPlayAuth(videoId, (err, result) => {
console.log(result)
})
opt
<Object>AccessKeyId
<string> 必填,阿里云颁发给用户的访问服务所用的密钥ID。AccessKeySecret
<string> 必填,AccessKeySecret
构造方法,传入配置对象。
const AliCloudVideo = require('ali-cloud-video')
const ali = new AliCloudVideo({
AccessKeyId: 'xxx',
AccessKeySecret: 'xxx'
})
- 凭证
- getPlayAuth 播放视频前获取播放地址和播放凭证
- getPlayAddress 获取视频播放地址
- getUploadAuth 上传视频前获取上传凭证和上传地址
- getUploadImageAuth 上传图片前先获取上传地址和上传凭证
- refreshUploadAuth 上传凭证失效后需刷新上传凭证
- 视频
- uploadFile 上传视频文件到视频点播服务器
- deleteFiles 删除上传的视频文件
- getVideoInfo 获取视频信息
- getVideoList 获取视频信息列表,最多支持获取前5000条
- updateVideoInfo 更新视频信息。
- 分类
- addCategory 创建视频分类。
- getCategories 获取视频分类及其子分类。
- updateCategory 更新分类
- deleteCategory 删除分类
videoId
<string> 视频ID
播放视频前获取播放地址和播放凭证
// 上传视频后得到的视频ID
const videoId = 'e51aa1941e3b46648f4812dbcf5c175d'
// 获取视频的播放授权信息
ali.getPlayAuth(videoId, (err, result) => {
if (err) return console.error(err)
console.log(result)
})
opt
<Object>VideoId
<string> 上传视频后得到的视频IDFormats
<string> 可选,视频流格式,多个用逗号分隔,支持格式mp4,m3u8,mp3
,默认获取所有格式的流AuthTimeout
<string> 可选,播放鉴权过期时间,默认为1800秒,支持设置最小值为1800秒
获取视频的播放链接
// 上传视频后得到的视频ID
const opt = { VideoId: 'e51aa1941e3b46648f4812dbcf5c175d' }
// 获取视频的播放链接
ali.getPlayAddress(opt, (err, result) => {
if (err) return console.error(err)
console.log(result)
})
opt
<Object>Title
<string> 视频标题,长度不超过128个字节,UTF8编码。默认生成为new_video_[timestamp]FileName
<string> 视频源文件名,必须带扩展名,且扩展名不区分大小写, 支持的扩展名参见上传概述的限制部分。默认为[Title].mp4FileSize
<number> 视频文件大小,单位:字节。Description
<string> 视频描述,长度不超过1024个字节,UTF8编码CoverUrl
<string> 自定义视频封面URL地址CateId
<number> 视频分类ID,请在“点播控制台-全局设置-分类管理”里编辑或查看分类的IDTags
<string> 视频标签,单个标签不超过32字节,最多不超过16个标签。多个用逗号分隔,UTF8编码
上传视频前获取上传凭证和上传地址
该接口不会真正上传视频文件,您需要拿到上传凭证和地址后使用上传SDK进行文件上传;
如果视频上传凭证失效(有效期3600秒),请调用刷新视频上传凭证接口重新获取上传凭证。
const opt = {}
// 获取视频的上传凭证和上传地址
ali.getUploadAuth(opt, (err, result) => {
if (err) return console.error(err)
console.log(result)
})
opt
<Object>FilePath
<string> 视频文件的路径。progress
<Function> 进度事件回调函数。参数是上传进度,从0到1。Title
<string> 视频标题,长度不超过128个字节,UTF8编码。默认生成为new_video_[timestamp]FileName
<string> 视频源文件名,必须带扩展名,且扩展名不区分大小写, 支持的扩展名参见上传概述的限制部分。默认为[Title].mp4FileSize
<string> 视频文件大小,单位:字节。Description
<string> 视频描述,长度不超过1024个字节,UTF8编码CoverUrl
<string> 自定义视频封面URL地址CateId
<number> 视频分类ID,请在“点播控制台-全局设置-分类管理”里编辑或查看分类的IDTags
<string> 视频标签,单个标签不超过32字节,最多不超过16个标签。多个用逗号分隔,UTF8编码
上传本地视频文件到视频点播服务器。返回视频ID
const opt = {
FilePath: '/path/to/file.mp4',
progress: (p) => { console.log(`uploaded ${p * 100}%`) }
}
ali.uploadFile(opt, (err, videoId) => {
if (err) return console.error(err)
console.log(`videoId is ${videoId}`)
})
idList
<Array> 视频ID数组
删除上传的视频文件。
const idList = ['e51aa1941e3b46648f4812dbcf5c175d']
ali.deleteFiles(idList, (err) => {
if (err) return console.error(err)
console.log('delete successful')
})
videoId
<string> 视频ID
获取视频信息。
// 上传视频后得到的视频ID
const videoId = 'e51aa1941e3b46648f4812dbcf5c175d'
// 获取视频的播放授权信息
ali.getVideoInfo(videoId, (err, result) => {
if (err) return console.error(err)
console.log(result)
})
opt
<Object>Status
<string> 视频状态,默认获取所有视频,多个可以用逗号分隔,如:Uploading,Normal,取值包括:Uploading(上传中),UploadFail(上传失败),UploadSucc(上传完成),Transcoding(转码中),TranscodeFail(转码失败),Blocked(屏蔽),Normal(正常)StartTime
<string> CreationTime(创建时间)的开始时间,为开区间(大于开始时间)。日期格式按照ISO8601标准表示,并需要使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ 例如,2017-01-11T12:00:00Z(为北京时间2017年1月11日20点0分0秒)EndTime
<string> CreationTime的结束时间,为闭区间(小于等于结束时间)。日期格式按照ISO8601标准表示,并需要使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ 例如,2017-01-11T12:00:00Z(为北京时间2017年1月11日20点0分0秒)CateId
<string> 视频分类IDPageNo
<number> 页号,默认1PageSize
<number> 可选,默认10,最大不超过100SortBy
<string> 结果排序,范围:CreationTime:Desc、CreationTime:Asc,默认为CreationTime:Desc(即按创建时间倒序)
获取视频信息列表。
const opt = {}
ali.getVideoList(opt, (err, result) => {
if (err) return console.error(err)
console.log(result)
})
opt
<Object>VideoId
<string> 视频IDTitle
<string> 视频标题,长度不超过128个字节,UTF8编码Description
<string> 视频描述,长度不超过1024个字节,UTF8编码CoverURL
<string> 视频封面URL地址CateId
<string> 视频分类IDTags
<string> 视频标签,单个标签不超过32字节,最多不超过16个标签。多个用逗号分隔,UTF8编码
更新视频信息。传入参数则更新相应字段,否则该字段不会被覆盖或更新。
const opt = {
VideoId: 'e51aa1941e3b46648f4812dbcf5c175d',
Title: 'test_name'
}
ali.updateVideoInfo(opt, (err) => {
if (err) return console.error(err)
console.log('updated successful')
})
opt
<Object>CateName
<string> 分类名称ParentId
<string> 可选,父分类ID,若不填,则默认生成一级分类,根节点分类ID为-1
创建视频分类。最大支持三级分类,每个分类最多支持创建100个子分类。
const opt = { CateName: '新分类' }
ali.addCategory(opt, (err) => {
if (err) return console.error(err)
console.log('created successful')
})
opt
<Object>CateId
<string> 分类ID,默认为根节点分类ID即-1PageNo
<number> 子分类列表页号,默认1PageSize
<number> 子分类列表页长,默认10,最大不超过100
获取视频分类及其子分类。
const opt = { PageSize: 20 }
ali.getCategories(opt, (err, result) => {
if (err) return console.error(err)
console.log(result)
})
opt
<Object>CateId
<string> 分类IDCateName
<string> 分类名称,不能超过64个字节,UTF8编码
更新分类
const opt = { CateId: 'xxxx', CateName: '测试分类名' }
ali.updateCategory(opt, (err) => {
if (err) return console.error(err)
console.log('updated successful')
})
cateId
<string> 分类ID
删除分类。
const cateId = 'xxx'
ali.deleteCategory(cateId, (err) => {
if (err) return console.error(err)
console.log('deleted successful')
})
opt
<Object>ImageType
<string> 图片类型,可选值 cover:封面,watermark:水印。默认cover。ImageExt
<string> 图片文件扩展名,可选值 png,jpg,jpeg,默认 png
上传图片前先获取上传地址和上传凭证
该接口不会真正上传图片文件,您需要拿到上传凭证和地址后使用上传SDK进行文件上传(和视频上传相同);
如果图片上传凭证失效(有效期900秒),请重新调用此接口获取上传地址和凭证;
如果发现返回的ImageURL在浏览器无法访问(403),那是因为您开启了点播域名的鉴权功能,可工单联系我们关闭或自助生成鉴权签名。
const opt = {}
ali.getUploadImageAuth(opt, (err, result) => {
if (err) return console.error(err)
console.log(result)
})
videoId
<string> 视频ID
上传凭证失效后需刷新上传凭证
const videoId = 'e51aa1941e3b46648f4812dbcf5c175d'
ali.refreshUploadAuth(videoId, (err, result) => {
if (err) return console.error(err)
console.log(result)
})