abushamleh / yii2-sprout-video

为SproutVideo (http://sproutvideo.com)提供的Yii2客户端

安装: 24

依赖: 0

建议: 0

安全性: 0

星级: 2

关注者: 2

分支: 0

公开问题: 0

类型:yii2-extension

dev-master 2018-09-23 10:03 UTC

This package is not auto-updated.

Last update: 2024-09-30 23:56:04 UTC


README

为SproutVideo (http://sproutvideo.com)提供的Yii2客户端

安装

  1. 运行Composer命令以安装最新版本

    composer require abushamleh/yii2-sprout-video "dev-master"
  2. 将组件添加到config/main.php

    'components' => [
        // ...
        'sproutVideo' => [
            'class'   => 'abushamleh\sproutVideo\Client',
            'api_key' => 'your api key',
        ],
        // ...
    ],

视频

以下方法可用:list_videosget_videocreate_videoupdate_videoreplace_videodelete_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分钟。

协议 - 字符串 ( 可选 ):httphttps。默认为 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_tagscreate_tagget_tagupdate_tagdelete_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_playlistscreate_playlistget_playlsitupdate_playlistdelete_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_loginscreate_loginget_loginupdate_logindelete_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 需要两个必填参数,即 emailpassword,这将用于允许观众登录观看视频,如果登录与该视频关联有 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_grantscreate_access_grantget_access_grantupdate_acces_grantdelete_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_idlogin_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));
?>