2014-01-26 53 views
4

我有一個YouTube頻道,我使用Youtube API v3來拉取該頻道上傳的視頻列表(使用php庫)。下面是我使用的代碼片段:使用Youtube API v3從YouTube頻道獲取視頻列表(沒有惱人的身份驗證彈出窗口)

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

回答

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密鑰。

$ client-> setAPIKey($ API_KEY);

+0

謝謝它工作:) – ghost

1

您無需驗證即可從YouTube頻道獲取視頻列表。使用YouTube數據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.'')); 
相關問題