全部产品

媒资管理

本篇文档提供了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";
}