arm092 / youtuber-for-laravel
该包可以帮助您以隐私参数上传视频到YouTube,并使使用YouTube API变得更加简单。
1.1
2019-11-21 20:18 UTC
Requires
- google/apiclient: ^2.0@dev
This package is auto-updated.
Last update: 2024-09-30 01:52:18 UTC
README
laravel youtube uploader 是由 Arman Khachatryan 编写的 PHP 包,它通过简化API来处理许多YouTube SDK功能。
特性
- 上传视频到用户频道
- 创建播放列表
- 将视频插入现有播放列表
- 为现有视频或上传视频设置缩略图
- 删除视频
安装指南
在laravel项目中,使用composer安装包
composer require arm092/youtuber-for-laravel
该包与Laravel 6.x兼容,因此您不需要为包设置提供者或别名,我们使用laravel自动发现
从Google获取您的凭证
- 转到 Google Developers Console,在侧边栏中选择“凭证”,然后从OAuth同意屏幕创建项目,然后点击“凭证”=>“创建凭证”=>“OAuth客户端ID”,选择Web应用程序,并设置您授权的重定向URI,您还可以稍后编辑或添加新的URL。
- 您将获得客户端ID和客户端密钥。
- 转到您的.env文件,并将您的凭证粘贴如下
GOOGLE_CLIENT_ID=YOUR_CLIENT_ID
GOOGLE_CLIENT_SECRET=YOUR_SECRET
现在您可以使用该包了。
为任何包操作,有两个步骤:获取认证URL和执行YouTube API操作。
要获取认证URL,只需转到routes/web.php,并执行此路由或您想要的路径
Route::get('youtube/auth', 'YoutubeUploaderController@auth');
在控制器中,您将获得URL,您可以在视图文件中显示它或直接将用户重定向到它。
use Youtube;
public function auth() {
$redirect_url ='https:///youtube-uploader/public/youtube/callback'; // Upload video path
return redirect(Youtube::setRedirectUrl($redirect_url)->AuthUrl());
}
此代码将验证用户,然后将用户重定向到另一个URL以执行您的逻辑,要执行任何逻辑代码,您需要将路由URL添加到routes/web.php中。
Route::get('youtube/callback', 'YoutubeUploaderController@callback');
请勿忘记在Google控制台开发者的项目凭证中保存回调URL的完整路径。
现在,我们将展示该包的逻辑。
上传视频
public function callback(Request $request) {
$redirect_url ='https:///youtube-uploader/public/youtube/callback';
$video = public_path('VIDEO_FILE');
$image = public_path('IMAGE_FILE');
$youtube = Youtube::setRedirectUrl($redirect_url)->upload($video,
[
'title' => 'TITLE',
'description' => 'DESCRIPTION',
'tags' => ['tag 1', 'tag 2'],
'category_id' => '22',
'privacy' => 'public' // or 'private' and 'unlisted'
]
);
// Get uploaded video id
$video_id = $youtube->uploadedVideoId();
}
为现有视频设置缩略图
请记住,您需要为每个回调URL在路由中设置认证URL。
public function another_callback(Request $request) {
$redirect_url ='https:///youtube-uploader/public/youtube/callback/another_callback';
$video_id = 'VIDEO_ID';
$image = public_path('THUMBNAIL_PATH');
$youtube = Youtube::setRedirectUrl($redirect_url)->updateThumbnail($video_id, $image);
}
上传时设置缩略图
请记住,您需要为每个回调URL在路由中设置认证URL。
public function another_callback(Request $request) {
$redirect_url ='https:///youtube-uploader/public/youtube/callback/another_callback';
$video = public_path('VIDEO_PATH');
$image = public_path('THUMBNAIL_PATH');
$youtube = Youtube::setRedirectUrl($redirect_url)->upload($video,
[
'title' => 'TITLE',
'description' => 'Description1',
'tags' => ['tag 1', 'tag2'],
'category_id' => '22',
'privacy' => 'public' // or 'private' and 'unlisted'
]
)->withThumbnail($image);
$video_id = $youtube->uploadedVideoId();
}
为现有视频设置标签
请记住,您需要为每个回调URL在路由中设置认证URL。
public function another_callback(Request $request) {
$redirect_url ='https:///youtube-uploader/public/youtube/callback/another_callback';
$video_id = 'YOUR_VIDEO_ID';
$youtube = Youtube::setRedirectUrl($redirect_url)->updateTags($video_id, ['tag 1', 'tag2', 'Tag3', 'Tag 4']);
}
创建播放列表
请记住,您需要为每个回调URL在路由中设置认证URL。
public function another_callback(Request $request) {
$redirect_url ='https:///youtube-uploader/public/youtube/callback/another_callback';
$youtube = Youtube::setRedirectUrl($redirect_url)
->createPlaylist('TITLE', 'DESCRIPTION');
// Get playlist id
$playlist_id = $youtube->createdPlaylistId();
}
将视频插入播放列表
请记住,您需要为每个回调URL在路由中设置认证URL。
public function another_callback(Request $request) {
$redirect_url ='https:///youtube-uploader/public/youtube/callback/another_callback';
$youtube = Youtube::setRedirectUrl($redirect_url)
->VideoToPlaylist('VIDEO_ID', 'PLAYLIST_ID');
}
通过给定ID删除视频
请记住,您需要为每个回调URL在路由中设置认证URL。
public function another_callback(Request $request) {
$redirect_url ='https:///youtube-uploader/public/youtube/callback/another_callback';
$video_id = 'VIDEO_ID';
$youtube = Youtube::setRedirectUrl($redirect_url)->deleteVideo($video_id);
}