arm092/youtuber-for-laravel

该包可以帮助您以隐私参数上传视频到YouTube,并使使用YouTube API变得更加简单。

1.1 2019-11-21 20:18 UTC

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);
}