aidens / youtube
针对Laravel的YouTube 3 API包
Requires
- php: ^5.6|^7.1|^8.0
- google/apiclient: ^2.7
- illuminate/support: ^5.2|^6.0|^7.0|^8.0
- nesbot/carbon: ^2.17
Requires (Dev)
- phpunit/phpcov: ^8.1
- phpunit/phpunit: ^9.3
This package is auto-updated.
Last update: 2024-09-08 23:15:10 UTC
README
请注意,此包仅适用于单个YouTube账户,不支持多个账户。
安装
要安装,请使用以下命令通过Composer拉取此包。
将以下内容添加到您的composer.json文件中
"repositories": {
"laravel-youtube-api-3": {
"type": "package",
"package": {
"name": "aiden/youtube",
"version": "1.1",
"source": {
"url": "https://github.com/jhemmmm/Laravel-Youtube-Api-3.git",
"type": "git",
"reference": "origin/master"
},
"autoload": {
"psr-4": {
"ad\\Youtube\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"ad\\Youtube\\Tests\\": "tests/"
}
},
"minimum-stability": "stable",
"extra": {
"laravel": {
"providers": [
"ad\\Youtube\\YoutubeAPIServiceProvider"
],
"aliases": {
"Youtube": "ad\\Youtube\\Facades\\YoutubeAPI"
}
}
}
}
}
},
并将以下内容也添加到您的"require"和"require-dev"部分
"require": {
"aiden/youtube": "1.0",
"php": "^7.2",
"illuminate/support": "^6.13",
"nesbot/carbon": "^2.0",
"google/apiclient": "^2.2",
},
"require-dev": {
"orchestra/testbench": "^4.6",
"phpunit/phpcov": "^6.0",
"phpunit/phpunit": "~8.0"
},
使用以下命令更新您的composer
composer update
或者简化复制粘贴
composer require aidens/youtube
现在在config/app.php
中注册服务提供者
'providers' => [ ... aiden\Youtube\YoutubeAPIServiceProvider::class, ],
并将别名也添加到同一文件中。
'aliases' => [ ... 'YoutubeAPI'=>aiden\Youtube\Facades\YoutubeAPI::class, ],
配置
现在您需要发布youtubeAPI.php
配置和迁移。
php artisan vendor:publish --provider="aiden\Youtube\YoutubeAPIServiceProvider"
现在运行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/youtubeAPIConfig.php
中启用它们。
现在您的应用程序已配置,我们将通过Google进行初始认证。默认的授权路由是/youtube/auth
。只需访问此URI并在您的应用程序中进行认证,您将被重定向到Google以认证您的YouTube账户。
假设认证过程中没有出现任何错误,您将被重定向回您的应用程序根目录。(/
)。
检查令牌
之前,此包的用户报告了他们访问令牌的问题。为确保您拥有正确的令牌,您只需审查您之前迁移的youtube_access_tokens
表,并审查access_token
列中的值。
您需要检查此值中是否存在refresh_token
。如果这是正确的,您就可以开始上传了。
您还希望禁用用于授权的路由,因为您现在已认证,不再需要这些路由。您刚刚审查的令牌,假设是作为refresh_token
,将自动处理。
上传视频
要上传视频,您只需传递您要上传的视频的完整路径并指定视频信息。
下面是一个示例
$video = YoutubeAPI::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 = YoutubeAPI::upload($fullPathToVideo, $params, 'unlisted');
自定义缩略图
如果您想为上传的视频设置自定义缩略图,可以使用链式调用的withThumbnail()
方法。
$fullpathToImage = storage_path('app/public/thumbnail.jpg'); $video = YoutubeAPI::upload($fullPathToVideo, $params)->withThumbnail($fullpathToImage); return $youtube->getThumbnailUrl();
请注意,缩略图的最大文件大小为2MB。如果您尝试使用超过此大小的缩略图,设置缩略图将无法工作。
删除视频
如果您想删除一个视频,当然这个视频是上传到您的授权频道的,您也将有删除它的能力。
YoutubeAPI::delete($videoId);
在删除视频时,系统会先检查视频是否存在,然后再尝试删除。
创建播放列表
YoutubeAPI::createPlaylist($playlistName,$descriptions,$privacy);
按频道获取所有播放列表
YoutubeAPI::getAllPlayList();
按ID获取所有播放列表信息
YoutubeAPI::playListInfoById($playlistId);
获取播放列表项
YoutubeAPI::playListItemById($playlistId);
将视频插入播放列表
YoutubeAPI::insertVideoInPlaylist($videoId,$playlistId);
从播放列表中移除视频
YoutubeAPI::removeVideoFromPlaylist($videoPlaylistId);
更新播放列表
YoutubeAPI::updatePlaylist($id,$title,$description);
删除播放列表
YoutubeAPI::deletePlaylist($id);
我还添加了Google Drive支持。
将文件上传到Google Drive(您的文件将被自动共享到公共
YoutubeAPI::uploadDrive($path, $data = array('name' => 'foo', 'mimeType' => 'bar'));
删除文件
YoutubeAPI::deleteDrive($fileId);