ayman-elmalah/laravel-youtube-uploader

此包可以帮助您上传视频到YouTube,并使YouTube API的使用变得更加简单。

v1.0.1 2019-01-04 23:37 UTC

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

如果您有任何问题、问题或请求,如果您能听到任何反馈,我将非常高兴