npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ali-cloud-video

v1.1.3

Published

Ali cloud video on demand SDK

Downloads

38

Readme

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