媒资管理
本篇文档提供了PHP SDK媒资管理模块相关功能的API调用示例。主要包含搜索媒资信息、获取视频信息、修改视频信息、删除视频、获取源文件信息、获取图片信息、删除图片信息等。
初始化客户端
使用前请先初始化客户端,参考初始化。
搜索媒资信息
调用SearchMedia接口,完成搜索媒资信息功能。
接口参数和返回字段请参见SearchMedia。调用示例如下:
**
* 搜索媒资信息
* @param client 发送请求客户端
* @return SearchMediaResponse 搜索媒资信息响应数据
*/
function searchMedia($client) {
$request = new vod\SearchMediaRequest();
$request->setFields("Title,CoverURL,Status");
$request->setMatch("Status in ('Normal','Checking') and CreationTime = ('2018-07-01T08:00:00Z','2018-08-01T08:00:00Z')");
$request->setPageNo(1);
$request->setPageSize(10);
$request->setSearchType("video");
$request->setSortBy("CreationTime:Desc");
return $client->getAcsResponse($request);
}
try {
$client = initVodClient('<AccessKeyId>', '<AccessKeySecret>');
$result = searchMedia($client);
var_dump($result);
} catch (Exception $e) {
print $e->getMessage()."\n";
}
获取视频信息
调用GetVideoInfo接口,完成获取视频信息功能。
接口参数和返回字段请参见GetVideoInfo。调用示例如下:
/**
* 获取视频信息
* @param client 发送请求客户端
* @return GetVideoInfoResponse 获取视频信息响应数据
*/
function getVideoInfo($client, $videoId) {
$request = new vod\GetVideoInfoRequest();
$request->setVideoId($videoId);
$request->setAcceptFormat('JSON');
return $client->getAcsResponse($request);
}
try {
$client = initVodClient('<AccessKeyId>', '<AccessKeySecret>');
$videoInfo = getVideoInfo($client, 'Your videoId');
var_dump($videoInfo);
} catch (Exception $e) {
print $e->getMessage()."\n";
}
批量获取视频信息
调用GetVideoInfos接口,完成批量获取视频信息功能。
接口参数和返回字段请参见GetVideoInfos。调用示例如下:
/**
* 批量获取视频信息函数
* @param client 发送请求客户端
* @return GetVideoInfosResponse 获取视频信息响应数据
*/
function getVideoInfos($client) {
$request = new vod\GetVideoInfosRequest();
$request->setVideoIds("e67e761ec04342cd9ca5149c7488****,b19439abb9a94374b7f4d45f6988****");
return $client->getAcsResponse($request);
}
try {
$client = initVodClient('<AccessKeyId>', '<AccessKeySecret>');
$result = getVideoInfos($client);
var_dump($result);
} catch (Exception $e) {
print $e->getMessage()."\n";
}
修改视频信息
调用UpdateVideoInfo接口,完成修改视频信息功能。
接口参数和返回字段请参见UpdateVideoInfo。调用示例如下:
/**
* 修改视频信息
* @param client 发送请求客户端
* @return UpdateVideoInfoResponse 修改视频信息响应数据
*/
function updateVideoInfo($client, $videoId) {
$request = new vod\UpdateVideoInfoRequest();
$request->setVideoId($videoId);
$request->setTitle('New Title'); // 更改视频标题
$request->setDescription('New Description'); // 更改视频描述
$request->setCoverURL('http://192.168.0.0/16/tps/TB1qnJ1PVXXXXXCXXXXXXXXXXXX-700-700.png'); // 更改视频封面
$request->setTags('tag1,tag2'); // 更改视频标签,多个用逗号分隔
$request->setCateId(0); // 更改视频分类(可在点播控制台·全局设置·分类管理里查看分类ID:https://192.168.0.0/16/#/vod/settings/category)
$request->setAcceptFormat('JSON');
return $client->getAcsResponse($request);
}
try {
$client = initVodClient('<AccessKeyId>', '<AccessKeySecret>');
$videoInfo = updateVideoInfo($client, 'Your videoId');
var_dump($videoInfo);
} catch (Exception $e) {
print $e->getMessage()."\n";
}
批量修改视频信息
调用UpdateVideoInfos接口,完成批量修改视频信息功能。
接口参数和返回字段请参见UpdateVideoInfos。调用示例如下:
/**
* 批量修改视频信息
* @param client 发送请求客户端
* @return UpdateVideoInfosResponse 批量修改视频信息响应数据
*/
function updateVideoInfos($client) {
$request = new vod\UpdateVideoInfosRequest();
$updateContentArray = array();
$updateContent1 = array();
$updateContent1["VideoId"] = "e67e761ec04342cd9ca5149c7485****";
$updateContent1["Title"] = "new Title1";
$updateContentArray[] = $updateContent1;
$updateContent2 = array();
$updateContent2["VideoId"] = "b19439abb9a94374b7f4d45f6985****";
$updateContent2["Title"] = "new Title2";
$updateContentArray[] = $updateContent2;
$request->setUpdateContent(json_encode($updateContentArray));
return $client->getAcsResponse($request);
}
try {
$client = initVodClient('<AccessKeyId>', '<AccessKeySecret>');
$result = updateVideoInfos($client);
var_dump($result);
} catch (Exception $e) {
print $e->getMessage()."\n";
}
删除视频
调用DeleteVideo接口,完成删除视频功能。
接口参数和返回字段请参见DeleteVideo。调用示例如下:
/**
* 删除视频
* @param client 发送请求客户端
* @return DeleteVideoResponse 删除视频响应数据
*/
function deleteVideos($client, $videoIds) {
$request = new vod\DeleteVideoRequest();
$request->setVideoIds($videoIds); // 支持批量删除视频;videoIds为传入的视频ID列表,多个用逗号分隔
$request->setAcceptFormat('JSON');
return $client->getAcsResponse($request);
}
try {
$client = initVodClient('<AccessKeyId>', '<AccessKeySecret>');
$delInfo = deleteVideos($client, 'vid1,vid2');
var_dump($delInfo);
} catch (Exception $e) {
print $e->getMessage()."\n";
}
获取源文件信息(含原片下载地址)
调用GetMezzanineInfo接口,完成获取源文件信息功能。
接口参数和返回字段请参见GetMezzanineInfo。调用示例如下:
/**
* 获取源文件信息
* @param client 发送请求客户端
* @return GetMezzanineInfoResponse 获取源文件信息响应数据
*/
function getMezzanineInfo($client, $videoId) {
$request = new vod\GetMezzanineInfoRequest();
$request->setVideoId($videoId);
$request->setAuthTimeout(3600*5); // 原片下载地址过期时间,单位:秒,默认为3600秒
$request->setAcceptFormat('JSON');
return $client->getAcsResponse($request);
}
try {
$client = initVodClient('<AccessKeyId>', '<AccessKeySecret>');
$mezzanine = getMezzanineInfo($client, 'Your videoId');
var_dump($mezzanine);
} catch (Exception $e) {
print $e->getMessage()."\n";
}
获取视频列表
调用GetVideoList接口,完成获取视频列表功能。
接口参数和返回字段请参见GetVideoList。调用示例如下:
/**
* 获取视频列表
* @param client 发送请求客户端
* @return GetVideoListResponse 获取视频列表响应数据
*/
function getVideoList($client) {
$request = new vod\GetVideoListRequest();
// 示例:分别取一个月前、当前时间的UTC时间作为筛选视频列表的起止时间
$localTimeZone = date_default_timezone_get();
date_default_timezone_set('UTC');
$utcNow = gmdate('Y-m-d\TH:i:s\Z');
$utcMonthAgo = gmdate('Y-m-d\TH:i:s\Z', time() - 30*86400);
date_default_timezone_set($localTimeZone);
$request->setStartTime($utcMonthAgo); // 视频创建的起始时间,为UTC格式
$request->setEndTime($utcNow); // 视频创建的结束时间,为UTC格式
#$request->setStatus('Uploading,Normal,Transcoding'); // 视频状态,默认获取所有状态的视频,多个用逗号分隔
#$request->setCateId(0); // 按分类进行筛选
$request->setPageNo(1);
$request->setPageSize(20);
$request->setAcceptFormat('JSON');
return $client->getAcsResponse($request);
}
try {
$client = initVodClient('<AccessKeyId>', '<AccessKeySecret>');
$videoList = getVideoList($client);
var_dump($videoList);
} catch (Exception $e) {
print $e->getMessage()."\n";
}
删除媒体流
调用DeleteStream接口,完成删除媒体流功能。
接口参数和返回字段请参见DeleteStream。调用示例如下:
/**
* 删除媒体流函数
* @param client 发送请求客户端
* @return DeleteMezzaninesResponse 删除媒体流响应数据
*/
function deleteStream($client, $videoId, $jobIds) {
$request = new vod\DeleteStreamRequest();
$request->setVideoId($videoId);
$request->setJobIds($jobIds); // 媒体流转码的作业ID列表,多个用逗号分隔;JobId可通过获取播放地址接口(GetPlayInfo)获取到。
$request->setAcceptFormat('JSON');
return $client->getAcsResponse($request);
}
try {
$client = initVodClient('<AccessKeyId>', '<AccessKeySecret>');
$delStream = deleteStream($client, 'videoId', 'jobId1,jobId2');
var_dump($delStream);
} catch (Exception $e) {
print $e->getMessage()."\n";
}
批量删除源文件
调用DeleteMezzanines接口,完成批量删除源文件功能。
接口参数和返回字段请参见DeleteMezzanines。调用示例如下:
/**
* 批量删除源文件函数
* @param client 发送请求客户端
* @return DeleteMezzaninesResponse 批量删除源文件响应数据
*/
function deleteMezzanines($client) {
$request = new vod\DeleteMezzaninesRequest();
$request->setVideoIds("b19439abb9a94374b7f4d45f6656****");
$request->setForce(false);
return $client->getAcsResponse($request);
}
try {
$client = initVodClient('<AccessKeyId>', '<AccessKeySecret>');
$result = deleteMezzanines($client);
var_dump($result);
} catch (Exception $e) {
print $e->getMessage()."\n";
}
批量更新图片信息
调用UpdateImageInfos接口,完成批量更新图片信息功能。
接口参数和返回字段请参见UpdateImageInfos。调用示例如下:
/**
* 批量更新图片信息函数
* @param client 发送请求客户端
* @return UpdateImageInfosResponse 批量更新图片信息响应数据
*/
function updateImageInfos($client) {
$request = new vod\UpdateImageInfosRequest();
$updateContentArray = array();
$updateContent1 = array();
$updateContent1["ImageId"] = "7e66f99e1cb3419982275398159****";
$updateContent1["Title"] = "new Title1";
$updateContentArray[] = $updateContent1;
$updateContent2 = array();
$updateContent2["ImageId"] = "d2171a5656454c49a4f11a544c59****";
$updateContent2["Title"] = "new Title2";
$updateContentArray[] = $updateContent2;
$request->setUpdateContent(json_encode($updateContentArray));
return $client->getAcsResponse($request);
}
try {
$client = initVodClient('<AccessKeyId>', '<AccessKeySecret>');
$result = updateImageInfos($client);
var_dump($result);
} catch (Exception $e) {
print $e->getMessage()."\n";
}
获取图片信息
调用GetImageInfo接口,完成获取图片信息功能。
接口参数和返回字段请参见GetImageInfo。调用示例如下:
/**
* 获取图片信息函数
* @param client 发送请求客户端
* @return GetImageInfoResponse 获取图片信息响应数据
*/
function getImageInfo($client) {
$request = new vod\GetImageInfoRequest();
$request->setImageId("7e66f99e1cb341998227539812b4****");
return $client->getAcsResponse($request);
}
try {
$client = initVodClient('<AccessKeyId>', '<AccessKeySecret>');
$result = getImageInfo($client);
var_dump($result);
} catch (Exception $e) {
print $e->getMessage()."\n";
}
删除图片
调用DeleteImage接口,完成删除图片功能。
接口参数和返回字段请参见DeleteImage。调用示例如下:
/**
* 删除图片函数
* @param client 发送请求客户端
* @return DeleteImageResponse 删除图片响应数据
*/
function deleteImage($client) {
$request = new vod\DeleteImageRequest();
//根据ImageURL删除图片文件
$request->setDeleteImageType("ImageURL");
$request->setImageURLs("http://192.168.0.0/16/cover.jpg");
//根据ImageId删除图片文件
//$request->setDeleteImageType("ImageId");
//$request->setImageIds("ImageId1,ImageId2");
//根据VideoId删除指定ImageType的图片文件
//$request->setDeleteImageType("VideoId");
//$request->setVideoId("VideoId");
return $client->getAcsResponse($request);
}
try {
$client = initVodClient('<AccessKeyId>', '<AccessKeySecret>');
$result = deleteImage($client);
var_dump($result);
} catch (Exception $e) {
print $e->getMessage()."\n";
}