我确信这可能是一个简单的解决方案,但我无法看到我的错误。我正在向youtube发出API调用,以便使用视频的ID获取有关YouTube视频的一些基本信息;特别是我想要的是(1)标题,(2)描述,(3)标签和(4)缩略图。
当我通过网络浏览器加载API网址时,我会看到所有数据。我不想在这个问题中粘贴整个回复,但在浏览器中粘贴以下网址,您会看到我看到的内容:http://gdata.youtube.com/feeds/api/videos/_83A00a5mG4
如果你仔细观察,你会看到媒体:缩略图,媒体:关键词,内容等。我想要的一切都在那里。现在麻烦......
当我通过以下功能(我从Vimeo api中复制过来)加载同一个网址时,缩略图和关键字就不存在了。
function curl_get($url) {
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
$return = curl_exec($curl);
curl_close($curl);
return $return;
}
// youtube_get_ID is defined elsewhere...
$request_url = "http://gdata.youtube.com/feeds/api/videos/" . youtube_get_ID($url);
$video_data = simplexml_load_string(curl_get($request_url));
这些功能确实为我提供了某些数据的响应,但缺少关键字和缩略图。谁能告诉我为什么我的缩略图和关键字丢失了?谢谢你的帮助!
答案 0 :(得分:0)
这是我写的一个函数:
function get_youtube_videos($max_number, $user_name) {
$xml = simplexml_load_file('http://gdata.youtube.com/feeds/api/users/' . $user_name . '/uploads?max-results=' . $max_number);
$server_time = $xml->updated;
$return = array();
foreach ($xml->entry as $video) {
$vid = array();
$vid['id'] = substr($video->id,42);
$vid['title'] = $video->title;
$vid['date'] = $video->published;
//$vid['desc'] = $video->content;
// get nodes in media: namespace for media information
$media = $video->children('http://search.yahoo.com/mrss/');
// get the video length
$yt = $media->children('http://gdata.youtube.com/schemas/2007');
$attrs = $yt->duration->attributes();
$vid['length'] = $attrs['seconds'];
// get video thumbnail
$attrs = $media->group->thumbnail[0]->attributes();
$vid['thumb'] = $attrs['url'];
// get <yt:stats> node for viewer statistics
$yt = $video->children('http://gdata.youtube.com/schemas/2007');
$attrs = $yt->statistics->attributes();
$vid['views'] = $attrs['viewCount'];
array_push($return, $vid);
}
return $return;
}
这是实施:
$max_videos = 9;
$videos = get_youtube_videos($max_videos, 'thelonelyisland');
foreach($videos as $video) {
echo $video['title'] . '<br/>';
echo $video['id'] . '<br/>';
echo $video['date'] . '<br/>';
echo $video['views'] . '<br/>';
echo $video['thumb'] . '<br/>';
echo $video['length'] . '<br/>';
echo '<hr/>';
}