ayman-elmalah / laravel-youtube-uploader
此包可以帮助您上传视频到YouTube,并使YouTube API的使用变得更加简单。
v1.0.1
2019-01-04 23:37 UTC
Requires
- google/apiclient: ^2.0@dev
This package is not auto-updated.
Last update: 2024-09-23 07:16:19 UTC
README
laravel-youtube-uploader 是由 Ayman Elmalah 编写的 PHP 包,用于处理多个 YouTube SDK 功能,通过使其 API 更加易于使用,结合 Laravel 实现。
功能
- 上传视频到用户频道
- 创建播放列表
- 将视频插入现有播放列表
- 设置现有视频或上传视频的缩略图
- 删除视频
安装指南
在 Laravel 项目中,使用 composer 安装包
composer require ayman-elmalah/laravel-youtube-uploader
该包与 Laravel 5.7 兼容,因此您无需设置提供者或别名,我们使用 Laravel 自动发现
从 Google 获取您的凭证
- 前往 Google 开发者控制台,从侧边栏选择“凭证”,然后在 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',
]
);
// 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',
]
)->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);
}