媒资管理

本篇文档提供了Node.js SDK媒资管理模块相关功能的API调用示例。主要包含搜索媒资信息、获取视频信息、修改视频信息、删除视频、获取源文件信息、获取图片信息、删除图片信息等。

初始化客户端

使用前请先初始化客户端,请参见初始化

搜索媒资信息

调用SearchMedia接口,完成搜索媒资信息功能。

接口参数和返回字段请参见SearchMedia。调用示例如下:

// 请求示例
var client = initVodClient('<Your AccessKeyId>', '<Your AccessKeySecret>');

client.request("SearchMedia", {
    Fields: 'Title,CoverURL,Status',
    Match: "Status in ('Normal','Checking') and CreationTime = ('2018-07-01T08:00:00Z','2018-08-01T08:00:00Z')",
    PageNo: 1,
    PageSize: 10,
    SearchType: 'video',
    SortBy: 'CreationTime:Desc'
}, {}).then(function (response) {
    console.log("Total = " + response.Total);
    console.log("ScrollToken = " + response.ScrollToken);
    if (response.MediaList && response.MediaList && response.MediaList.length > 0){
        for (var i=0; i<response.MediaList.length; i++){
            console.log("MediaId = " + response.MediaList[i].MediaId);
            console.log("MediaType = " + response.MediaList[i].MediaType);
            console.log("CreationTime = " + response.MediaList[i].CreationTime);
            console.log("Title = " + response.MediaList[i].Video.Title);
            console.log("CoverURL = " + response.MediaList[i].Video.CoverURL);
            console.log("Status = " + response.MediaList[i].Video.Status);
        }
    }
    console.log('RequestId = ' + response.RequestId);
}).catch(function (response) {
    console.log('ErrorCode = ' + response.data.Code);
    console.log('ErrorMessage = ' + response.data.Message);
    console.log('RequestId = ' + response.data.RequestId);
});

获取视频信息

调用GetVideoInfo接口,完成获取视频信息功能。

接口参数和返回字段请参见GetVideoInfo。调用示例如下:

// 请求示例
var client = initVodClient('<Your AccessKeyId>', '<Your AccessKeySecret>');

client.request("GetVideoInfo", {
    VideoId: 'VideoId'
}, {}).then(function (response) {
    if (response.Video){
        console.log("Title = " + response.Video.Title);
        console.log("Description = " + response.Video.Description);
    }
    console.log('RequestId = ' + response.RequestId);
}).catch(function (response) {
    console.log('ErrorCode = ' + response.data.Code);
    console.log('ErrorMessage = ' + response.data.Message);
    console.log('RequestId = ' + response.data.RequestId);
});

批量获取视频信息

调用GetVideoInfos接口,完成批量获取视频信息功能。

接口参数和返回字段请参见GetVideoInfos。调用示例如下:

// 请求示例
var client = initVodClient('<Your AccessKeyId>', '<Your AccessKeySecret>');

client.request("GetVideoInfos", {
    VideoIds: 'Video1,Video2'
}, {}).then(function (response) {
    if (response.VideoList && response.VideoList.length > 0){
        console.log("===== exist video infos : =====");
        for (var i=0; i<response.VideoList.length; i++) {
            var video = response.VideoList[i];
            console.log("VideoId = " + video.VideoId);
            console.log("Title = " + video.Title);
            console.log("Description = " + video.Description);
            console.log("Tags = " + video.Tags);
            console.log("CreationTime = " + video.CreationTime);
        }
    }
    if (response.NonExistVideoIds && response.NonExistVideoIds.length > 0){
        console.log("===== nonexistent videoIds : =====");
        for (var i=0; i<response.NonExistVideoIds.length; i++) {
            console.log("VideoId = " + response.NonExistVideoIds[i]);
        }
    }
    console.log('RequestId = ' + response.RequestId);
}).catch(function (response) {
    console.log('ErrorCode = ' + response.data.Code);
    console.log('ErrorMessage = ' + response.data.Message);
    console.log('RequestId = ' + response.data.RequestId);
});

修改视频信息

调用UpdateVideoInfo接口,完成修改视频信息功能。

接口参数和返回字段请参见UpdateVideoInfo。调用示例如下:

// 请求示例
var client = initVodClient('<Your AccessKeyId>', '<Your AccessKeySecret>');

client.request("UpdateVideoInfo", {
    VideoId: 'VideoId',
    Title: 'new Title',
    Description: 'new Description',
    Tags: 'new Tag1,new Tag2'
}, {}).then(function (response) {
    console.log('RequestId = ' + response.RequestId);
}).catch(function (response) {
    console.log('ErrorCode = ' + response.data.Code);
    console.log('ErrorMessage = ' + response.data.Message);
    console.log('RequestId = ' + response.data.RequestId);
});

批量修改视频信息

调用UpdateVideoInfos接口,完成批量修改视频信息功能。

接口参数和返回字段请参见UpdateVideoInfos。调用示例如下:

// 请求示例
var client = initVodClient('<Your AccessKeyId>', '<Your AccessKeySecret>');

var updateContent = [{
    VideoId: 'VideoId1',
    Title: 'new Title',
    Tags: 'new Tag1,new Tag2'
},{
    VideoId: 'VideoId2',
    Title: 'new Title',
    Tags: 'new Tag1,new Tag2'
}];
client.request("UpdateVideoInfos", {
    UpdateContent: JSON.stringify(updateContent)
}, {}).then(function (response) {
    if (response.NonExistVideoIds && response.NonExistVideoIds.length > 0){
        console.log("===== nonexistent videoIds : =====");
        for (var i=0; i<response.NonExistVideoIds.length; i++) {
            console.log("VideoId = " + response.NonExistVideoIds[i]);
        }
    }
    console.log('RequestId = ' + response.RequestId);
}).catch(function (response) {
    console.log('ErrorCode = ' + response.data.Code);
    console.log('ErrorMessage = ' + response.data.Message);
    console.log('RequestId = ' + response.data.RequestId);
});

删除视频

调用DeleteVideo接口,完成删除视频功能。

接口参数和返回字段请参见DeleteVideo。调用示例如下:

// 请求示例
var client = initVodClient('<Your AccessKeyId>', '<Your AccessKeySecret>');

client.request("DeleteVideo", {
    VideoIds: 'Video1,Video2'
}, {}).then(function (response) {
    console.log('RequestId = ' + response.RequestId);
}).catch(function (response) {
    console.log('ErrorCode = ' + response.data.Code);
    console.log('ErrorMessage = ' + response.data.Message);
    console.log('RequestId = ' + response.data.RequestId);
});

获取源文件信息(含源片下载地址)

调用GetMezzanineInfo接口,完成获取源文件信息功能。

接口参数和返回字段请参见GetMezzanineInfo。调用示例如下:

// 请求示例
var client = initVodClient('<Your AccessKeyId>', '<Your AccessKeySecret>');

client.request("GetMezzanineInfo", {
    VideoId: 'VideoId',
    AuthTimeout: 3600   // 源片下载地址过期时间
}, {}).then(function (response) {
    if (response.Mezzanine){
        console.log('Mezzanine.VideoId = ' + response.Mezzanine.VideoId);
        console.log('Mezzanine.FileURL = ' + response.Mezzanine.FileURL);
        console.log('Mezzanine.Width = ' + response.Mezzanine.Width);
        console.log('Mezzanine.Height = ' + response.Mezzanine.Height);
        console.log('Mezzanine.Size = ' + response.Mezzanine.Size);
    }
    console.log('RequestId = ' + response.RequestId);
}).catch(function (response) {
    console.log('ErrorCode = ' + response.data.Code);
    console.log('ErrorMessage = ' + response.data.Message);
    console.log('RequestId = ' + response.data.RequestId);
});

获取视频列表

调用GetVideoList接口,完成获取视频列表功能。

接口参数和返回字段请参见GetVideoList。调用示例如下:

// 请求示例
var client = initVodClient('<Your AccessKeyId>', '<Your AccessKeySecret>');

client.request("GetVideoList", {
    StartTime: '2018-12-28T06:00:00Z',
    EndTime: '2018-12-28T14:00:00Z',
    PageNo: 1,
    PageSize: 2
}, {}).then(function (response) {
    // 根据指定筛选条件查询到的视频总数
    console.log('Total = ' + response.Total);
    if (response.VideoList && response.VideoList.Video && response.VideoList.Video.length > 0){
        for (var i=0; i<response.VideoList.Video.length; i++){
            var video = response.VideoList.Video[i];
            console.log('Title = ' + video.Title);
            console.log('Description = ' + video.Description);
            console.log('Tags = ' + video.Tags);
            console.log('CreationTime = ' + video.CreationTime);
        }
    }
    console.log('RequestId = ' + response.RequestId);
}).catch(function (response) {
    console.log('ErrorCode = ' + response.data.Code);
    console.log('ErrorMessage = ' + response.data.Message);
    console.log('RequestId = ' + response.data.RequestId);
});

删除媒体流

调用DeleteStream接口,完成删除媒体流功能。

接口参数和返回字段请参见DeleteStream。调用示例如下:

// 请求示例
var client = initVodClient('<Your AccessKeyId>', '<Your AccessKeySecret>');

client.request("DeleteStream", {
    VideoId: 'VideoId',
    JobIds: 'JobId1,JobId2'
}, {}).then(function (response) {
    console.log('RequestId = ' + response.RequestId);
}).catch(function (response) {
    console.log('ErrorCode = ' + response.data.Code);
    console.log('ErrorMessage = ' + response.data.Message);
    console.log('RequestId = ' + response.data.RequestId);
});

批量删除源文件

调用DeleteMezzanines接口,完成批量删除源文件功能。

接口参数和返回字段请参见DeleteMezzanines。调用示例如下:

// 请求示例
var client = initVodClient('<Your AccessKeyId>', '<Your AccessKeySecret>');

client.request("DeleteMezzanines", {
    VideoIds: 'VideoId',
    Force: false
}, {}).then(function (response) {
    console.log('RequestId = ' + response.RequestId);
}).catch(function (response) {
    console.log('ErrorCode = ' + response.data.Code);
    console.log('ErrorMessage = ' + response.data.Message);
    console.log('RequestId = ' + response.data.RequestId);
});

批量更新图片信息

调用UpdateImageInfos接口,完成批量更新图片信息功能。

接口参数和返回字段请参见UpdateImageInfos。调用示例如下:

// 请求示例
var client = initVodClient('<Your AccessKeyId>', '<Your AccessKeySecret>');

var updateContent = [{
    ImageId: 'ImageId1',
    Title: 'new title',
    Tags: 'new Tag1,new Tag2'
},{
    ImageId: 'ImageId2',
    Title: 'new title',
    Tags: 'new Tag1,new Tag2'
}];
client.request("UpdateImageInfos", {
    UpdateContent: JSON.stringify(updateContent)
}, {}).then(function (response) {
    if (response.NonExistImageIds && response.NonExistImageIds.ImageId && response.NonExistImageIds.ImageId.length > 0) {
        console.log("======nonexistent ImageIds : ======");
        console.log('ImageId = ' + response.NonExistImageIds.ImageId);
    }
    console.log('RequestId = ' + response.RequestId);
}).catch(function (response) {
    console.log('ErrorCode = ' + response.data.Code);
    console.log('ErrorMessage = ' + response.data.Message);
    console.log('RequestId = ' + response.data.RequestId);
});

获取图片信息

调用GetImageInfo接口,完成获取图片信息功能。

接口参数和返回字段请参见GetImageInfo。调用示例如下:

// 请求示例
var client = initVodClient('<Your AccessKeyId>', '<Your AccessKeySecret>');

client.request("GetImageInfo", {
    ImageId: 'ImageId1'
}, {}).then(function (response) {
    if (response.ImageInfo) {
        console.log('ImageId = ' + response.ImageInfo.ImageId);
        console.log('Title = ' + response.ImageInfo.Title);
        console.log('CreationTime = ' + response.ImageInfo.CreationTime);
        console.log('FileURL = ' + response.ImageInfo.Mezzanine.FileURL);
    }
    console.log('RequestId = ' + response.RequestId);
}).catch(function (response) {
    console.log('ErrorCode = ' + response.data.Code);
    console.log('ErrorMessage = ' + response.data.Message);
    console.log('RequestId = ' + response.data.RequestId);
});

删除图片

调用DeleteImage接口,完成删除图片功能。

接口参数和返回字段请参见DeleteImage。调用示例如下:

// 请求示例
var client = initVodClient('<Your AccessKeyId>', '<Your AccessKeySecret>');

// 根据ImageURL删除图片文件
var paras = {
    DeleteImageType: 'ImageURL',
    //Image URL示例:http://example.aliyundoc.com/cover-****.jpg
    ImageURLs: '<your Image URL>'
};
// 根据ImageId删除图片文件
// var paras = {
//     DeleteImageType: 'ImageId',
//     ImageIds: 'ImageId1,ImageId2'
// };
// 根据VideoId删除指定ImageType的图片文件
// var paras = {
//     DeleteImageType: 'VideoId',
//     VideoId: '<your Video ID>',
//     ImageType: 'SpriteSnapshot'
// };
client.request("DeleteImage", paras, {}).then(function (response) {
    console.log('RequestId = ' + response.RequestId);
}).catch(function (response) {
    console.log('ErrorCode = ' + response.data.Code);
    console.log('ErrorMessage = ' + response.data.Message);
    console.log('RequestId = ' + response.data.RequestId);
});
阿里云首页 视频点播 相关技术圈