bahaaalhagar/youtube-uploader

:simple YouTube 上传器

0.5.3 2018-08-26 17:06 UTC

This package is not auto-updated.

Last update: 2024-09-23 07:33:01 UTC


README

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

安装

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

composer require bahaaalhagar/youtube-uploader

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

'providers' => [
    ...
    BahaaAlhagar\YoutubeUploader\YoutubeUploaderServiceProvider::class,
],

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

'aliases' => [
    ...
    'YoutubeUploader' => BahaaAlhagar\YoutubeUploader\Facades\YoutubeUploader::class,
],

配置

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

php artisan vendor:publish --provider="BahaaAlhagar\YoutubeUploader\YoutubeUploaderServiceProvider"

现在运行 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 = YoutubeUploader::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)

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

例如,下面的示例将视频上传为 unlisted

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

自定义缩略图

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

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

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

return $youtube->getThumbnailUrl();

请注意,缩略图的最大文件大小为2MB。如果您尝试使用超过此大小的缩略图,设置缩略图将无法工作。

更新视频

要更新视频,您只需提供您希望更新的视频的videoId,并指定您的视频信息。

下面是一个示例

$video = YoutubeUploader::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();

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

删除视频

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

YoutubeUploader::delete($videoId);

在删除视频时,它将在尝试删除之前检查是否存在。

创建播放列表

要创建播放列表,您必须提供播放列表标题和描述。

下面是一个示例

$playlist = YoutubeUploader::createPlaylist($title, $description);

return $playlist->getPlaylistId();

以上将返回在YouTube上创建的播放列表的ID。(例如,PLFgquLnL59akxkuW7czf5TvyjzcUMgaci)

默认情况下,播放列表是公开的。如果您想更改播放列表的隐私设置,您可以通过传递第三个参数给createPlaylist方法来实现。

例如,下面的代码将创建一个未列出的播放列表。

$playlist = YoutubeUploader::createPlaylist($title, $description, 'unlisted');

将视频添加到播放列表

如果您想将视频添加到播放列表,您必须提供上传的视频ID和播放列表ID。

下面是一个示例

YoutubeUploader::addVideoToPlaylist([
	'id' => 'jq498asd' // a youtube video id
], $playlistId);

这将返回播放列表项目响应。

您还可以为播放列表中的视频提供另一个标题。

YoutubeUploader::addVideoToPlaylist([
	'id' => 'jq498asd', // a youtube video id
	'title' => 'a new title for video in playlist'
], $playlistId);

您还可以创建播放列表并将视频添加到其中。

$playlist = YoutubeUploader::createPlaylist($title, $description)->addVideoToPlaylist([
	'id' => 'jq498asd', // a youtube video id
]);

问题

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