getvod.php_阿里云视频点播sdk封装 php

use vod\Request\V20170321 asvod;use Sts\Request\V20150401 asSts;classAliyunVideo {//private $accessKeyId = 'zsZ';

//private $accessKeySecret = 'myQkfV';

private $accessKeyId = 'uWLFMAO';private $accessKeySecret = '5FS1b39QnRdzRNVWp';private $regionId = 'cn-shanghai'; //点播服务所在的Region,国内请填cn-shanghai,不要填写别的区域

private $endpoint = 'sts.cn-shanghai.aliyuncs.com';private $client = null;private $sts = null;public function__construct(){try{$this -> init_vod_client($this -> accessKeyId,$this ->accessKeySecret);

}catch (Exception $e) {print $e->getMessage();

}

}/**

* @desc 初始化客户端

* @param [type] $accessKeyId [description]

* @param [type] $accessKeySecret [description]

* @return [type] [description]*/

public function init_vod_client($accessKeyId, $accessKeySecret) {//初始化视频客户端

$profile = DefaultProfile::getProfile($this -> regionId, $accessKeyId, $accessKeySecret);$this -> client = new DefaultAcsClient($profile);//初始化sts授权策略客户端

DefaultProfile::addEndpoint($this -> regionId, $this -> regionId, "Sts", $this ->endpoint);$iClientProfile = DefaultProfile::getProfile($this -> regionId, $accessKeyId, $accessKeySecret);$this -> sts = new DefaultAcsClient($iClientProfile);

}/**

* @desc 刷新视频上传凭证

* @param [type] $client [description]

* @param [type] $videoId [description]

* @return [type] [description]*/

function refresh_upload_video( $videoId) {$request = newvod\RefreshUploadVideoRequest();$request->setVideoId($videoId);$request->setAcceptFormat('JSON');return $this -> client ->getAcsResponse($request);

}/**

* @desc [获取上传地址和凭证]

* @param [type] $client [description]

* @param array $fileInfo = array();

* @return [type] [description]*/

public function create_upload_video($fileInfo) {$request = newvod\CreateUploadVideoRequest();$request->setTitle($fileInfo['title']); //视频标题(必填参数)

$request->setFileName($fileInfo['filename']); //视频源文件名称,必须包含扩展名(必填参数)

$request->setDescription($fileInfo['desc']); //视频源文件描述(可选)

//$request->setCoverURL("http://img.alicdn.com/tps/TB1qnJ1PVXXXXXCXXXXXXXXXXXX-700-700.png"); // 自定义视频封面(可选)

if($fileInfo['thumb']){ $request -> setCoverURL($fileInfo['thumb']) ; }if($fileInfo['catid']){ $request -> setCateId($fileInfo['catid']) ; }if($fileInfo['tags']){$request -> setTags($fileInfo['tags']);

}$request->setAcceptFormat('JSON');return $this -> client -> getAcsResponse($request);

}/**

* @desc 获取播放地址接口

* @param [type] $client [为上面init_vod_client接口返回的客户端对象]

* @param [type] $videoId [为视频ID]

* @return [type] [description]*/

public function get_play_info( $videoId) {$request = newvod\GetPlayInfoRequest();$request->setVideoId($videoId);$request->setAcceptFormat('JSON');return $this -> client ->getAcsResponse($request);

}/**

* @desc 获取sts授权策略信息

* @author 646943067@qq.com

* @version 1.0

* @date 2018-11-27*/

public functiongetStsInfo(){$roleArn = "acs:ram::1357249633099392:role/aliyunvoduploadauth"; //角色资源描述符,在RAM的控制台的资源详情页上可以获取

// 在扮演角色(AssumeRole)时,可以附加一个授权策略,进一步限制角色的权限;

// 详情请参考《RAM使用指南》

// 此授权策略表示读取所有OSS的只读权限

$policy=<<

{"Statement":[

{"Action": "sts:AssumeRole",

"Effect": "Allow",

"Principal":{"RAM":["acs:ram::1357249633099392:root"]

}

}

],

"Version": "1"}

POLICY;$request = newSts\AssumeRoleRequest();//RoleSessionName即临时身份的会话名称,用于区分不同的临时身份

// 您可以使用您的客户的ID作为会话名称

$request->setRoleSessionName("client_name");$request->setRoleArn($roleArn);$request->setPolicy($policy);$request->setDurationSeconds(3600);try{$response = $this -> sts ->getAcsResponse($request);print_r($response);

}catch(ServerException $e) {print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";

}catch(ClientException $e) {print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";

}

}/**

* @desc 删除媒体流

* 可删除视频流或音频流信息及存储文件,并支持批量删除;删除后当CDN缓存过期,该路流会无法播放,请谨慎操作

* @param [type] $client [description]

* @param [type] $videoId [description]

* @param [type] $jobIds [description]

* @return [type] [description]*/

function delete_stream( $videoId, $jobIds) {$request = newvod\DeleteStreamRequest();$request->setVideoId($videoId);$request->setJobIds($jobIds); //媒体流转码的作业ID列表,多个用逗号分隔;JobId可通过获取播放地址接口(GetPlayInfo)获取到。

$request->setAcceptFormat('JSON');return $this -> client ->getAcsResponse($request);

}/**

* @desc 获取视频列表

* @param [type] $client [description]

* @return [type] [description]*/

functionget_video_list() {$request = newvod\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 $this -> client ->getAcsResponse($request);

}/**

* @desc 获取源文件信息(含原片下载地址)

* @param [type] $client [description]

* @param [type] $videoId [description]

* @return [type] [description]*/

function get_mezzanine_info( $videoId) {$request = newvod\GetMezzanineInfoRequest();$request->setVideoId($videoId);$request->setAuthTimeout(3600*5); //原片下载地址过期时间,单位:秒,默认为3600秒

$request->setAcceptFormat('JSON');return $this -> client ->getAcsResponse($request);

}/**

* @desc 删除视频

* @param [type] $client [description]

* @param [type] $videoIds [description]

* @return [type] [description]*/

function delete_videos( $videoIds) {$request = newvod\DeleteVideoRequest();$request->setVideoIds($videoIds); //支持批量删除视频;videoIds为传入的视频ID列表,多个用逗号分隔

$request->setAcceptFormat('JSON');return $this -> client ->getAcsResponse($request);

}/**

* @desc 修改视频信息

* @param [type] $client [description]

* @param [type] $videoId [description]

* @return [type] [description]*/

function update_video_info( $videoId) {$request = newvod\UpdateVideoInfoRequest();$request->setVideoId($videoId);$request->setTitle('New Title'); //更改视频标题

$request->setDescription('New Description'); //更改视频描述

$request->setCoverURL('http://img.alicdn.com/tps/TB1qnJ1PVXXXXXCXXXXXXXXXXXX-700-700.png'); //更改视频封面

$request->setTags('tag1,tag2'); //更改视频标签,多个用逗号分隔

$request->setCateId(0); //更改视频分类(可在点播控制台·全局设置·分类管理里查看分类ID:https://vod.console.aliyun.com/#/vod/settings/category)

$request->setAcceptFormat('JSON');return $this -> client ->getAcsResponse($request);

}/**

* @desc 获取视频信息

* @param [type] $client [description]

* @param [type] $videoId [description]

* @return [type] [description]*/

function get_video_info( $videoId) {$request = newvod\GetVideoInfoRequest();$request->setVideoId($videoId);$request->setAcceptFormat('JSON');return $this -> client ->getAcsResponse($request);

}/**

* @desc 获取指定的分类信息,及其子分类(即下一级分类)的列表

* @param [type] $client [description]

* @param integer $cateId [description]

* @param integer $pageNo [description]

* @param integer $pageSize [description]

* @return [type] [description]*/

function get_categories( $cateId=-1, $pageNo=1, $pageSize=10) {$request = newvod\GetCategoriesRequest();$request->setCateId($cateId); //分类ID,默认为根节点分类ID即-1

$request->setPageNo($pageNo);$request->setPageSize($pageSize);$request->setAcceptFormat('JSON');return $this -> client ->getAcsResponse($request);

}/**

* @desc 删除分类

* 删除视频分类,同时会删除其下级分类(包括二级分类和三级分类),请慎重操作

* @param [type] $client [description]

* @param [type] $cateId [description]

* @return [type] [description]*/

function delete_category( $cateId) {$request = newvod\DeleteCategoryRequest();$request->setCateId($cateId);$request->setAcceptFormat('JSON');return $this -> client ->getAcsResponse($request);

}/**

* @desc 修改分类

* @param [type] $client [description]

* @param [type] $cateId [description]

* @param [type] $cateName [description]

* @return [type] [description]*/

function update_category( $cateId, $cateName) {$request = newvod\UpdateCategoryRequest();$request->setCateId($cateId);$request->setCateName($cateName); //分类名称,不能超过64个字节,UTF8编码

$request->setAcceptFormat('JSON');return $this -> client ->getAcsResponse($request);

}/**

* @desc 创建分类

* 1.创建视频分类,最大支持三级分类,每个分类最多支持创建100个子分类

* 2.一级分类最大也是支持100个,若有更大需求请提工单联系我们

* @param [type] $client [description]

* @param [type] $cateName [description]

* @param integer $parentId [description]*/

function add_category( $cateName, $parentId=-1) {$request = newvod\AddCategoryRequest();$request->setCateName($cateName); //分类名称,不能超过64个字节,UTF8编码

$request->setParentId($parentId); //父分类ID,若不填,则默认生成一级分类,根节点分类ID为-1

$request->setAcceptFormat('JSON');return $this -> client ->getAcsResponse($request);

}/**

* @desc 获取图片上传地址和凭证

* @param [type] $client [description]

* @param [type] $imageType [description]

* @param [type] $imageExt [description]

* @return [type] [description]*/

function create_upload_image( $imageType, $imageExt) {$request = newvod\CreateUploadImageRequest();$request->setImageType($imageType);$request->setImageExt($imageExt);$request->setAcceptFormat('JSON');return $this -> client ->getAcsResponse($request);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值