dawson/youtube

此包已被废弃,不再维护。未建议替代包。

使用Laravel 5上传视频到YouTube。

6.0.0 2020-09-28 19:03 UTC

README

🚨 我已无法维护此项目,因此请将其视为已废弃。

Laravel 5 - YouTube视频上传

请注意,此包仅支持单个YouTube账户,不支持多个账户。

安装

要安装,请使用以下命令通过Composer拉取包:

composer require dawson/youtube

现在在 config/app.php 中注册服务提供者。

'providers' => [
    ...
    Dawson\Youtube\YoutubeServiceProvider::class,
],

并将别名添加到同一文件中。

'aliases' => [
    ...
    'Youtube' => Dawson\Youtube\Facades\Youtube::class,
],

配置

现在您需要发布 youtube.php 配置和迁移。

php artisan vendor:publish --provider="Dawson\Youtube\YoutubeServiceProvider"

现在运行 php artisan migrate 来创建 youtube_access_tokens 表,该表将包含您认证正确后的访问令牌。

获取您的凭据

如果您尚未创建,您需要在 Google开发者控制台 上创建应用程序。然后您需要进入控制台中的 凭据 以创建服务器密钥。

您将需要输入您的授权重定向URI。安装此包时,默认的重定向URI是 http://laravel.dev/youtube/callback。当然,用您的应用程序域名(laravel.dev)替换域名。

您可以为多个重定向URI添加,例如您可能希望添加本地、测试和生产服务器的URI。

一旦您对一切满意,创建凭据,您将获得一个 客户端ID客户端密钥。这些现在需要添加到您的 .env 文件中。

GOOGLE_CLIENT_ID=YOUR_CLIENT_ID
GOOGLE_CLIENT_SECRET=YOUR_SECRET

认证

出于安全原因,默认禁用了授权路由,以便在您的Laravel应用程序中授权您的频道。在执行以下操作之前,您需要在您的 config/youtube.php 中启用它们。

现在,您的应用程序已配置,我们将进行初始的Google认证。默认的授权路由是 /youtube/auth。只需在您的应用程序中访问此URI,您将被重定向到Google以认证您的YouTube账户。

假设您在认证过程中没有遇到任何错误,您将被重定向回应用程序的根目录。(/

检查您的令牌

之前,此包的用户报告了有关他们的访问令牌的问题。为确保您有正确的令牌,您只需检查您之前迁移的 youtube_access_tokens 表,并检查 access_token 列的值。

您需要检查此值中是否存在 refresh_token。如果一切正确,您就可以开始上传了。

您还需要禁用用于授权的路由,因为您现在已认证,这些路由将不再需要。您刚才查看的令牌,假设为 refresh_token,将自动处理。

上传视频

要上传视频,您只需传递您要上传的视频的完整路径,并指定您的视频信息。

以下是一个示例

$video = Youtube::upload($fullPathToVideo, [
    'title'       => 'My Awesome Video',
    'description' => 'You can also specify your video description here.',
    'tags'	      => ['foo', 'bar', 'baz'],
    'category_id' => 10
]);

return $video->getVideoId();

上述代码将返回上传视频到YouTube的ID。(例如 dQw4w9WgXcQ)

默认情况下,视频上传是公开的。如果您想更改上传的隐私设置,可以通过传递上传方法的一个第三个参数来实现。

例如,下面的代码将视频上传为 未列出

$video = Youtube::upload($fullPathToVideo, $params, 'unlisted');

自定义缩略图

如果您想为上传设置自定义缩略图,可以通过链式调用使用 withThumbnail() 方法。

$fullpathToImage = storage_path('app/public/thumbnail.jpg');

$video = Youtube::upload($fullPathToVideo, $params)->withThumbnail($fullpathToImage);

return $youtube->getThumbnailUrl();

请注意,缩略图的最大文件大小为2MB。如果尝试使用超过此大小的缩略图,设置缩略图将不会生效。

更新视频

要更新视频,您只需传递您要更新的视频的 videoId,并指定您的视频信息。

以下是一个示例

$video = Youtube::update($videoId, [
    'title'       => 'My Awesome Video',
    'description' => 'You can also specify your video description here.',
    'tags'	      => ['foo', 'bar', 'baz'],
    'category_id' => 10
], $privacy);

return $video->getVideoId();

注意:此请求是明确的。请求中省略的任何参数都将被删除。

删除视频

如果您想删除视频,当然这是上传到您授权的频道,您也将有删除它的能力

Youtube::delete($videoId);

在删除视频时,它将检查是否存在,然后再尝试删除。

问题

如果您有任何问题,请随时提交一个问题。