abushamleh / yii2-sprout-video
为SproutVideo (http://sproutvideo.com)提供的Yii2客户端
Requires
- sproutvideo/sproutvideo: 1.1.0
- yiisoft/yii2: ~2.0
This package is not auto-updated.
Last update: 2024-09-30 23:56:04 UTC
README
为SproutVideo (http://sproutvideo.com)提供的Yii2客户端
安装
-
运行Composer命令以安装最新版本
composer require abushamleh/yii2-sprout-video "dev-master"
-
将组件添加到
config/main.php
'components' => [ // ... 'sproutVideo' => [ 'class' => 'abushamleh\sproutVideo\Client', 'api_key' => 'your api key', ], // ... ],
视频
以下方法可用:list_videos
、get_video
、create_video
、update_video
、replace_video
、delete_video
。
list_videos
默认情况下,视频列表按每页25个视频进行分页,并按上传日期升序排序。您可以通过传递两个参数来控制分页:page和per_page。您还可以传递一个标签的id,仅返回带有该标签的视频。
<?php Yii::$app->sproutVideo->video::list_videos(); Yii::$app->sproutVideo->video::list_videos(array('per_page' => 10)); Yii::$app->sproutVideo->video::list_videos(array('per_page' => 10, 'page' => 2)); Yii::$app->sproutVideo->video::list_videos(array('tag_id' => 'abc'))); ?>
get_video
传递给get_video的字符串是SproutVideo视频的ID。
<?php Yii::$app->sproutVideo->video::get_video('abc123'); ?>
create_video
您可以执行的最基本的上传是将视频文件的路径传递给该方法。视频的标题将默认为文件名。
<?php Yii::$app->sproutVideo->video::create_video('/path/to/video.mp4'); ?>
您还可以通过传递数组设置标题以及许多其他参数
<?php Yii::$app->sproutVideo->video::create_video('/path/to/video.mp4', array('title' => 'My Awesome Video', 'description' => 'This video is great', 'privacy' => 2)); ?>
您还可以通过传递它们的id向新上传应用任意数量的标签
<?php Yii::$app->sproutVideo->video::create_video('/path/to/video.mp4', array('tags' => array('ec61', 'abc123')); ?>
您还可以在上传时动态创建和应用程序标签,通过传递标签名称
<?php Yii::$app->sproutVideo->video::create_video('/path/to/video.mp4', array('tag_names' => array('Tag One', 'Tag Two')); ?>
您还可以指定一个webhook URL。当视频处理完成或在处理过程中出现错误时,我们将发送包含视频JSON的HTTP POST
<?php Yii::$app->sproutVideo->video::create_video('/path/to/video.mp4', array('notification_url' => 'http://example.com/webhook_url')); ?>
update_video
第一个参数是要编辑的视频的ID。第二个参数是要更新视频上的属性数组。
<?php Yii::$app->sproutVideo->video::update_video('abc123', array('title' => 'Updated Title')); ?>
replace_video
第一个参数是要替换的视频的ID。第二个参数是视频文件的本地路径。
<?php Yii::$app->sproutVideo->video::replace_video('abc123', '/path/to/video.mp4'); ?>
标签
要向视频添加标签,请确保包含所有当前与视频关联的标签。例如,如果视频已有关联的标签id "abc"和"123",您想添加一个id为"def"的标签,则将"abc"、"123"和"def"传递给更新方法。
<?php Yii::$app->sproutVideo->video::update_video('abc123', 'tags' => array("abc", "123", "def")); ?>
如果您想从视频中删除标签,请从视频上的标签列表中删除该标签,但请确保包含您希望保留的所有标签。例如,如果您现在想从上述示例中删除id为"123"的标签,请传递"abc"和"def"。
<?php Yii::$app->sproutVideo->video::update_video("abc123", array('tags' => array("abc","def")); ?>
您可以通过只传递空数组作为标签参数来删除视频上的所有标签。
<?php Yii::$app->sproutVideo->video::update_video('abc123', array('tags' => array())); ?>
上传海报帧
您可以通过调用upload_poster_frame方法上传视频的自定义海报帧。第一个参数是要关联海报帧的视频的ID,第二个参数是图像文件的路径。
<?php Yii::$app->sproutVideo->video::upload_poster_frame('abc123','/path/to/video.mp4'); ?>
delete_video
传递您要删除的视频的ID。
<?php Yii::$app->sproutVideo->video::delete_video('abc123'); ?>
签名嵌入代码
您可以使用此便捷方法来签名嵌入代码。它将返回可用于构建iframe嵌入代码的签名嵌入代码URL。
<?php Yii::$app->sproutVideo->video::signed_embed_code($video_id, $security_token, $query_parameters, $expiration_time, $protocol); ?>
参数
video_id - String ( 必需 ) : 生成签名嵌入代码的视频的ID
security_token - String ( 必需 ) : 生成签名嵌入代码的视频的安全令牌
查询参数 - 数组 ( 可选 ):传递给嵌入代码的查询参数数组。示例:array('type' => 'hd', 'autoplay' => 'true')
过期时间 - 整数 ( 可选 ):从Epoc算起,此签名嵌入代码应过期的秒数。默认为生成签名嵌入代码时的5分钟。
协议 - 字符串 ( 可选 ):http
或 https
。默认为 http
示例
<?php Yii::$app->sproutVideo->video::signed_embed_code('abc123','def456'); #sign a base embed code with no other options Yii::$app->sproutVideo->video::signed_embed_code('abc123','def456', array('type' => 'hd')); #set parameters for the embed code such as changing the default video type to HD Yii::$app->sproutVideo->video::signed_embed_code('abc123','def456', array(), 1368127991); #set a specific expiration time for the signed embed code. (By default the expiration time is set to 5 minutes from the time the signed embed code was generated). Yii::$app->sproutVideo->video::signed_embed_code('abc123','def456', array(), null, 'https'); #Use https instead of http ?>
上传令牌
以下方法可用:create_upload_token
create_upload_token
<?php Yii::$app->sproutVideo->uploadToken::create_upload_token(); Yii::$app->sproutVideo->uploadToken::create_upload_token(array('return_url' => 'http://example.com')); Yii::$app->sproutVideo->uploadToken::create_upload_token(array('return_url' => 'http://example.com', 'seconds_valid' => 3600)); ?>
标签
以下方法可用:list_tags
、create_tag
、get_tag
、update_tag
、delete_tag
。
list_tags
默认情况下,标签列表每页显示25个标签,按创建时间升序排序。您可以通过传递两个参数来控制分页:page 和 per_page。
<?php Yii::$app->sproutVideo->tag::list_tags(); Yii::$app->sproutVideo->tag::list_tags('per_page' => 10); Yii::$app->sproutVideo->tag::list_tags('per_page' => 10, 'page' => 2); ?>
create_tag
<?php Yii::$app->sproutVideo->tag::create_tag(array('name' => 'new tag')); ?>
update_tag
<?php Yii::$app->sproutVideo->tag::update_tag('abc123', array('name' => 'updated tag name')); ?>
delete_tag
传入要删除的标签的ID。
<?php Yii::$app->sproutVideo->tag::delete_tag('abc123'); ?>
播放列表
以下方法可用:list_playlists
、create_playlist
、get_playlsit
、update_playlist
、delete_playlsit
。##list_playlists 默认情况下,播放列表列表每页显示25个播放列表,按创建时间升序排序。您可以通过传递两个参数来控制分页:page 和 per_page。
<?php Yii::$app->sproutVideo->playlist::list_playlists(); Yii::$app->sproutVideo->playlist::list_playlists(array('per_page' => 10)); Yii::$app->sproutVideo->playlist::list_playlists(array('per_page' => 10, 'page' => 2)); ?>
create_playlist
在创建播放列表时,您可以通过在 videos 参数中传入您想要添加的视频的顺序来添加视频。
<?php Yii::$app->sproutVideo->playlist::create_playlist(array( 'title' => 'New Playlist', 'privacy' => 2, 'videos' => array('abc123','def456','ghi789')); ?>
update_playlist
<?php Yii::$app->sproutVideo->playlist::update_playlist('abc123', array('title' => 'Update Playlist Title')); ?>
videos
要向播放列表中添加视频,请确保包含与该播放列表关联的所有视频。例如,如果播放列表已经包含ID为 "abc" 和 "123" 的视频,并且您想添加ID为 "def" 的视频,则通过更新方法传递 "abc"、"123" 和 "def"。
<?php Yii::$app->sproutVideo->playlist::update_playlist('abc123', array('videos' => array("abc", "123", "def"))); ?>
如果您想从播放列表中删除视频,请从播放列表中的视频列表中删除该视频,但请确保包含您希望保留的所有视频。例如,如果您现在想从上面的例子中删除ID为 "123" 的视频,则传递 "abc" 和 "def"。
<?php Yii::$app->sproutVideo->playlist::update_playlist("abc123", array('videos' => array("abc","def"))); ?>
您可以通过只传递一个空数组作为 videos 参数来从播放列表中删除所有视频。
<?php Yii::$app->sproutVideo->playlist::update_playlist('abc123', array('videos' => array())); ?>
##delete_playlist 传入要删除的播放列表的ID。
<?php Yii::$app->sproutVideo->playlist::delete_playlist('abc123'); ?>
登录
以下方法可用:list_logins
、create_login
、get_login
、update_login
、delete_login
list
默认情况下,登录列表每页显示25个标签,按创建时间升序排序。您可以通过传递两个参数来控制分页:page 和 per_page。
<?php Yii::$app->sproutVideo->login::list_logins(); Yii::$app->sproutVideo->login::list_logins(array('per_page' => 10)); Yii::$app->sproutVideo->login::list_logins(array('per_page' => 10, 'page' => 2)); ?>
create_login
create_login 需要两个必填参数,即 email
和 password
,这将用于允许观众登录观看视频,如果登录与该视频关联有 access_grant
。
<?php Yii::$app->sproutVideo->login::create_login(array( 'email' => 'test@example.com', 'password' => 'thisisthepassword')); ?>
get_login
get_login 传入的字符串是 SproutVideo 登录的 ID。
<?php Yii::$app->sproutVideo->login::get_login('abc123'); ?>
update_login
您可以更改登录的密码。
<?php Yii::$app->sproutVideo->login::update_login('abc123',array( 'password' => 'newpassword')); ?>
delete_login
传入要删除的登录的 ID。
<?php Yii::$app->sproutVideo->login::delete_login('asdf1234'); ?>
访问权限
以下方法可用:list_access_grants
、create_access_grant
、get_access_grant
、update_acces_grant
、delete_access_grant
list_access_grants
默认情况下,访问权限列表每页显示25个标签,按创建时间升序排序。您可以通过传递两个参数来控制分页:page 和 per_page。
<? Yii::$app->sproutVideo->accessGrant::list_access_grants(); Yii::$app->sproutVideo->accessGrant::list(array('per_page' => 10)); Yii::$app->sproutVideo->accessGrant::list(array('per_page' => 10, 'page' => 2)); ?>
create_access_grant
create_access_grant 需要两个必填参数,即 video_id
和 login_id
,这将用于允许观众根据其他可选参数登录观看视频。
<?php Yii::$app->sproutVideo->accessGrant::create_access_grant(array( 'video_id' => 'abc123', 'login_id' => 'abc123')); ?>
get_access_grant
get_access_grant 传入的字符串是 SproutVideo 登录的 ID。
<?php Yii::$app->sproutVideo->accessGrant::get_access_grant('abc123'); ?>
update_access_grant
您可以为访问授权更改可选参数。
<?php Yii::$app->sproutVideo->accessGrant.update_access_grant('abc123', array( 'allowed_plays' => 20, 'access_ends_at' => '2015-04-15T00:00:00+00:00')); ?>
delete_access_grant
传入您希望删除的访问授权的id。
<?php Yii::$app->sproutVideo->accessGrant::delete_access_grant('asdf1234') ?>
分析
以下方法可通过API客户端进行数据分析:
- 播放次数
- 域名
- 地理位置
- 视频类型
- 播放类型
- 设备类型
请检查API文档以获取有关这些调用返回的数据的更多信息。
每个方法都可以单独调用,以获取所有时间段的总体账户数据,如下所示:
<?php Yii::$app->sproutVideo->analytics::play_counts(); Yii::$app->sproutVideo->analytics::domains(); Yii::$app->sproutVideo->analytics::geo(); Yii::$app->sproutVideo->analytics::video_types(); Yii::$app->sproutVideo->analytics::playback_types(); Yii::$app->sproutVideo->analytics::device_types(); ?>
每个方法也可以接受一个包含`:video_id`的选项数组,用于检索特定视频的总体数据。
<?php Yii::$app->sproutVideo->analytics::play_counts(array('video_id' => 'abc123')); Yii::$app->sproutVideo->analytics::domains(array('video_id' => 'abc123')); Yii::$app->sproutVideo->analytics::geo(array('video_id' => 'abc123')); Yii::$app->sproutVideo->analytics::video_types(array('video_id' => 'abc123')); Yii::$app->sproutVideo->analytics::playback_types(array('video_id' => 'abc123')); Yii::$app->sproutVideo->analytics::device_types(array('video_id' => 'abc123')); ?>
每个方法还可以接受可选的`:start_date`和`:end_date`,以指定返回数据的日期范围。
<?php Yii::$app->sproutVideo->analytics::play_counts(array('start_date' => '2013-01-01')); Yii::$app->sproutVideo->analytics::device_types(array('video_id' => 'abc123', 'end_date' => '2012-12-31')); ?>
最后,地理位置方法可以接受可选的`:country`,以在该国家内按城市检索播放数据。
<?php Yii::$app->sproutVideo->analytics::geo(array('video_id' => 'abc123', 'country' => 'US')); ?>
参与度
您可以像这样获取您视频观看的总秒数:
<?php Yii::$app->sproutVideo->analytics::engagement(); ?>
您还可以这样获取特定视频的参与度:
<?php Yii::$app->sproutVideo->analytics::engagement(array('video_id' => 'abc123')); ?>
最后,您可以像这样获取视频的每个播放会话:
<?php Yii::$app->sproutVideo->analytics::engagement_sessions('abc123') Yii::$app->sproutVideo->analytics::engagement_sessions('abc123', array('page' => 3)); Yii::$app->sproutVideo->analytics::engagement_sessions('abc123', array('page' => 3, 'per_page' => 40)); ?>
您还可以这样获取特定电子邮件地址的视频参与会话:
<?php Yii::$app->sproutVideo->analytics::engagement_sessions('abc123', array('vemail' => 'test@example.com')); ?>
账户
以下方法可用:`get_account`、`update_account`。
get_account
<?php Yii::$app->sproutVideo->account::get_account(); ?>
update_account
<?php Yii::$app->sproutVideo->account::update_account(array('download_hd' => true)); ?>