使用Youtube API v3从Youtube频道中获取视频列表(没有恼人的身份验证弹出窗口)

时间:2014-01-26 12:32:58

标签: php youtube-api

我有一个youtube频道,我正在使用Youtube API v3来提取在该频道上传的视频列表(使用 php库)。以下是我正在使用的代码片段:

require_once 'google-api-php-client/src/Google_Client.php';
require_once 'google-api-php-client/src/contrib/Google_YouTubeService.php';
session_start();

$OAUTH2_CLIENT_ID = 'xxxxxxxxx';
$OAUTH2_CLIENT_SECRET = 'xxxxxxxxx';

$client = new Google_Client();
$client->setClientId($OAUTH2_CLIENT_ID);
$client->setClientSecret($OAUTH2_CLIENT_SECRET);

$redirect = filter_var('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'], FILTER_SANITIZE_URL);
$client->setRedirectUri($redirect);

$youtube = new Google_YoutubeService($client);

$channelsResponse = $youtube->channels->listChannels('contentDetails', array(
      'mine' => 'true',

但是,我收到一个烦人的弹出窗口,要求我登录并进行身份验证以获取详细信息。如何摆脱这种身份验证弹出窗口? 我打算写一个cron作业,定期拉出视频列表并将其存储在数据库中,这样我就不需要这个认证弹出窗口。

注意:当我尝试从播放列表中提取视频时,我不会被要求任何身份验证和api功能顺利

$playlistItemsResponse = $youtube->playlistItems->listPlaylistItems('snippet,status', array(
          'part' => 'snippet,contentDetails',
          'maxResults' => 50,
          'playlistId' => 'UUGpAMVStIfaQ32K-vhwNIxw'
        ));

2 个答案:

答案 0 :(得分:3)

是的,您不需要OAuth2登录。您可以通过设置API密钥来完成此操作。

这是一个playlistItems->列表请求。

这是api资源管理器中的演示:https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.playlistItems.list?part=snippet&playlistId=PLjFEz-E0UPUxw3lFpnfV1dDA7OE7YIFRj&_h=2&

而不是设置clientId和客户端秘密

在公共API访问中从云控制台为您的API密钥设置API密钥。

  

$客户端 - > setAPIKey($ API_KEY);

答案 1 :(得分:2)

您无需身份验证即可从YouTube频道获取视频列表。使用YouTube Data API从YouTube频道中提取视频列表。

$API_key    = 'Your_API_Key';
$channelID  = 'YouTube_Channel_ID';
$maxResults = 10;

$videoList = json_decode(file_get_contents('https://www.googleapis.com/youtube/v3/search?order=date&part=snippet&channelId='.$channelID.'&maxResults='.$maxResults.'&key='.$API_key.''));