我有一个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'
));
答案 0 :(得分:3)
是的,您不需要OAuth2登录。您可以通过设置API密钥来完成此操作。
这是一个playlistItems->列表请求。
而不是设置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.''));