fbf/laravel-youtube

一个用于将视频上传到YouTube频道的Laravel包

v0.3.2 2014-01-24 12:11 UTC

This package is not auto-updated.

Last update: 2024-09-24 00:36:27 UTC


README

一个用于将视频上传到YouTube频道并获取上传视频列表的Laravel包

它旨在用于网站,用户可以上传视频文件,然后将其上传到单个YouTube账户,可能是网站所有者拥有的,或者个人的YouTube账户。账户可以是公开的或未列出的,这实际上允许您将YouTube用作视频转码、托管、服务和播放服务提供商。

除了您可以在自己的应用程序中使用上传和列表功能外,该包还包括获取和存储访问令牌的功能,这样用户就可以上传他们的视频到您的账户,而不需要每次都授权他们。Google的访问令牌有效期短,它们只持续1小时,但默认情况下,您的应用程序将获得离线访问权限,这意味着除了access_token外,您还可以获得一个可以用来更新访问令牌的refresh_token。该包处理在数据库表中存储access_token和refresh_token(包括迁移),并在access_token过期时自动使用refresh_token获取新的access_token。

还包括一个表单和简单的路由闭包回调的示例代码,用于验证表单并将视频上传到YouTube。

在生产环境中,所有示例路由都不会包含。它们仅在本地、预发布等环境中工作。您的生产代码应始终调用下面的使用部分中的方法。

安装

将以下内容添加到您的composer.json文件中

"fbf/laravel-youtube": "dev-master"

运行

composer update

将以下内容添加到app/config/app.php文件中的providers数组中

'Fbf\LaravelYoutube\LaravelYoutubeServiceProvider'

将以下内容添加到app/config/app.php文件中的aliases数组中

'Youtube'         => 'Fbf\LaravelYoutube\YoutubeFacade',

发布配置

php artisan config:publish fbf/laravel-youtube

运行迁移

php artisan migrate --package=fbf/laravel-youtube

使用

获取访问令牌(请参阅下面的身份验证部分)后,要上传视频,只需做

try {
    $youtubeVideoId = Youtube::upload($data);
} catch (Exception $e) {
    // Do something here
}

其中$data是当提交类似于src/views/example.blade.php中的表单时Input::all()的格式,或者如下所示

Youtube::upload(array(
    'title' => 'My video',
    'description' => 'This is what My video is about',
    'status' => 'unlisted', // or 'private' or 'public'
    'video' => $video, // Instance of Symfony\Component\HttpFoundation\File\UploadedFile see https://laravel.net.cn/docs/requests#files
));

请参阅src/routes.php文件中的Route::post('youtube-upload-example', function() {...})示例。

身份验证

配置文件包含多个设置。要获取这些设置的值,您需要将应用程序注册到Google开发者控制台

创建一个项目,给它一个名称和ID,但说实话,这些并不重要,因为没有人会看到它们。

在新项目的API屏幕上,确保YouTube Data API v3已启用。

在凭证屏幕中,创建一个新的客户端ID。应用程序类型应为Web应用程序,授权JavaScript起源不使用,因此保持不变,授权重定向URI应该是您的重定向URI。该包包括一个可以用作重定向URI的路由,即"youtube-upload-example/oauth2-callback",因此您应该使用包括域名在内的绝对URL,例如"http://mydomain.com/youtube-upload-example/oauth2-callback"。包括localhost的主机名不起作用,但是您仍然可以在本地开发机器上执行所有这些操作,您只需要在虚拟主机配置中别名一个真实域名并将其添加到hosts文件中。

现在将客户端ID和客户端密钥复制到app/config/packages/fbf/laravel-youtube/config.php文件中。

如果您打算将所有上传内容都放入单个频道,在下一步之前,请确保您登录的Google账户已经拥有一个YouTube频道。如果您只为您的项目创建了新的Google账户,那么您不会自动获得YouTube频道,这是一个额外的步骤。当您在www.youtube.com上尝试手动上传视频时,系统会提示您创建一个频道。这会为您创建另一个Google账户。最后,在您的浏览器中访问"http://mydomain.com/youtube-upload-example",您应该会被重定向到"http://mydomain.com/youtube-upload-example/get-access-token"。点击“连接我”,然后批准应用程序。然后,您应该会被重定向回http://mydomain.com/youtube-upload-example/oauth2-callback",应该会显示您的访问令牌,并表示已将其添加到数据库中。现在您应该能够上传视频,尝试示例。

如果您打算允许不同用户上传到他们自己的频道,请将laravel-youtube::auth配置设置设置为true,然后在您的应用程序中创建一些使用示例路由和示例视图提供的功能的行为和视图,以允许用户为您进行身份验证。

待办事项

在Google API PHP客户端库中包含YouTube服务其他功能的漂亮包装器