YouTube - Data API v3无法使用Google服务帐户在我的网站上显示我的YouTube频道的私有视频

时间:2016-09-30 22:52:34

标签: youtube youtube-api youtube-data-api

我的YouTube频道上的私人视频很少,我想将它们放在我的网站上。基本上我不希望我的网站用户直接在我的YouTube频道上观看它们。此外,我也不想向用户显示同意屏幕。我在 stackoverflow 中浏览并找到了this示例,其中 DalmTo 建议有人使用Google服务帐户来实现此目的。我的代码适用于公开播放的视频,但只要我使用它的ID搜索视频,它就不会显示私有视频。

这是我的代码:

<?php
session_start();
require_once('vendor/autoload.php');

$client = new Google_Client();
$client->setApplicationName("YouTube-Example");
$client->setScopes('https://www.googleapis.com/auth/youtube');

putenv("GOOGLE_APPLICATION_CREDENTIALS=service_account.json");
$client->useApplicationDefaultCredentials();

$youtube = new Google_Service_YouTube($client); 

try{
      $response = $youtube->videos->listVideos(
                  'snippet',
                  array(
                  'id' => 'pW0og1OZurE'    //private video unable to display
                  )); 

      echo "<pre>";
      print_r($response);

} catch (Google_Service_Exception $e) {
   $htmlBody .= sprintf('<p>A service error occurred: <code>%s</code></p>',
   htmlspecialchars($e->getMessage()));
} catch (Google_Exception $e) {
   $htmlBody .= sprintf('<p>An client error occurred: <code>%s</code></p>',
   htmlspecialchars($e->getMessage()));
}
?>

我遵循了文档,但我无法弄清楚它为什么不起作用。请帮帮我。

提前致谢。

2 个答案:

答案 0 :(得分:0)

Youtube API中不允许显示私人视频stated in the help guide

  

私人视频只有被邀请的人才能看到   观看视频。

     

以下是您或您分享的人的一些可能原因   视频无法看到私有视频:

     

- 观看者需要拥有YouTube帐户,并在尝试观看视频时登录。

     

- 如果观看者拥有多个YouTube帐户,则必须将其登录到与之共享视频的帐户中。

     

- 由于私人视频未显示在频道页面上,此人需要使用指向私有视频的特定链接。 YouTube会发送   一旦你邀请他们,他们就会发一封带有链接的电子邮件,但你也可以   自己发送。

答案 1 :(得分:0)

这可能是您的答案:

forMine参数指示响应仅应在授权用户的视频中搜索。另外,由于此请求使用forMine参数,因此它还必须将type参数值设置为video。 如果您还没有上传与该词相关的任何视频,那么您在API响应列表中将不会看到任何项目。

来源:Google developers docs