Skip to content

pengng/ali-cloud-video

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ali-cloud-video

阿里云视频点播SDK

Usage

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)
})

new AliCloudVideo(opt)

  • opt <Object>
    • AccessKeyId <string> 必填,阿里云颁发给用户的访问服务所用的密钥ID。
    • AccessKeySecret <string> 必填,AccessKeySecret

构造方法,传入配置对象。

const AliCloudVideo = require('ali-cloud-video')

const ali = new AliCloudVideo({
  AccessKeyId: 'xxx',
  AccessKeySecret: 'xxx'
})

实例方法

getPlayAuth(videoId, callback)

  • videoId <string> 视频ID

播放视频前获取播放地址和播放凭证

// 上传视频后得到的视频ID
const videoId = 'e51aa1941e3b46648f4812dbcf5c175d'
// 获取视频的播放授权信息
ali.getPlayAuth(videoId, (err, result) => {
    if (err) return console.error(err)
  console.log(result)
})

getPlayAddress(opt, callback)

  • opt <Object>
    • VideoId <string> 上传视频后得到的视频ID
    • Formats <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)
})

getUploadAuth(opt, callback)

  • opt <Object>
    • Title <string> 视频标题,长度不超过128个字节,UTF8编码。默认生成为new_video_[timestamp]
    • FileName <string> 视频源文件名,必须带扩展名,且扩展名不区分大小写, 支持的扩展名参见上传概述的限制部分。默认为[Title].mp4
    • FileSize <number> 视频文件大小,单位:字节。
    • Description <string> 视频描述,长度不超过1024个字节,UTF8编码
    • CoverUrl <string> 自定义视频封面URL地址
    • CateId <number> 视频分类ID,请在“点播控制台-全局设置-分类管理”里编辑或查看分类的ID
    • Tags <string> 视频标签,单个标签不超过32字节,最多不超过16个标签。多个用逗号分隔,UTF8编码

上传视频前获取上传凭证和上传地址

该接口不会真正上传视频文件,您需要拿到上传凭证和地址后使用上传SDK进行文件上传;

如果视频上传凭证失效(有效期3600秒),请调用刷新视频上传凭证接口重新获取上传凭证。

const opt = {}
// 获取视频的上传凭证和上传地址
ali.getUploadAuth(opt, (err, result) => {
    if (err) return console.error(err)
  console.log(result)
})

uploadFile(opt, callback)

  • opt <Object>
    • FilePath <string> 视频文件的路径。
    • progress <Function> 进度事件回调函数。参数是上传进度,从0到1。
    • Title <string> 视频标题,长度不超过128个字节,UTF8编码。默认生成为new_video_[timestamp]
    • FileName <string> 视频源文件名,必须带扩展名,且扩展名不区分大小写, 支持的扩展名参见上传概述的限制部分。默认为[Title].mp4
    • FileSize <string> 视频文件大小,单位:字节。
    • Description <string> 视频描述,长度不超过1024个字节,UTF8编码
    • CoverUrl <string> 自定义视频封面URL地址
    • CateId <number> 视频分类ID,请在“点播控制台-全局设置-分类管理”里编辑或查看分类的ID
    • Tags <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}`)
})

deleteFiles(idList, callback)

  • idList <Array> 视频ID数组

删除上传的视频文件。

const idList = ['e51aa1941e3b46648f4812dbcf5c175d']

ali.deleteFiles(idList, (err) => {
    if (err) return console.error(err)
  console.log('delete successful')
})

getVideoInfo(videoId, callback)

  • videoId <string> 视频ID

获取视频信息。

// 上传视频后得到的视频ID
const videoId = 'e51aa1941e3b46648f4812dbcf5c175d'
// 获取视频的播放授权信息
ali.getVideoInfo(videoId, (err, result) => {
    if (err) return console.error(err)
  console.log(result)
})

getVideoList(opt, callback)

  • 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> 视频分类ID
    • PageNo <number> 页号,默认1
    • PageSize <number> 可选,默认10,最大不超过100
    • SortBy <string> 结果排序,范围:CreationTime:Desc、CreationTime:Asc,默认为CreationTime:Desc(即按创建时间倒序)

获取视频信息列表。

const opt = {}

ali.getVideoList(opt, (err, result) => {
    if (err) return console.error(err)
  console.log(result)
})

updateVideoInfo(opt, callback)

  • opt <Object>
    • VideoId <string> 视频ID
    • Title <string> 视频标题,长度不超过128个字节,UTF8编码
    • Description <string> 视频描述,长度不超过1024个字节,UTF8编码
    • CoverURL <string> 视频封面URL地址
    • CateId <string> 视频分类ID
    • Tags <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')
})

addCategory(opt, callback)

  • 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')
})

getCategories(opt, callback)

  • opt <Object>
    • CateId <string> 分类ID,默认为根节点分类ID即-1
    • PageNo <number> 子分类列表页号,默认1
    • PageSize <number> 子分类列表页长,默认10,最大不超过100

获取视频分类及其子分类。

const opt = { PageSize: 20 }

ali.getCategories(opt, (err, result) => {
    if (err) return console.error(err)
  console.log(result)
})

updateCategory(opt, callback)

  • opt <Object>
    • CateId <string> 分类ID
    • CateName <string> 分类名称,不能超过64个字节,UTF8编码

更新分类

const opt = { CateId: 'xxxx', CateName: '测试分类名' }

ali.updateCategory(opt, (err) => {
    if (err) return console.error(err)
  console.log('updated successful')
})

deleteCategory(cateId, callback)

  • cateId <string> 分类ID

删除分类。

const cateId = 'xxx'

ali.deleteCategory(cateId, (err) => {
    if (err) return console.error(err)
  console.log('deleted successful')
})

getUploadImageAuth(opt, callback)

  • 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)
})

refreshUploadAuth(videoId, callback)

  • videoId <string> 视频ID

上传凭证失效后需刷新上传凭证

const videoId = 'e51aa1941e3b46648f4812dbcf5c175d'

ali.refreshUploadAuth(videoId, (err, result) => {
    if (err) return console.error(err)
  console.log(result)
})