我有一个问题,我正在开发一个人们可以分享YouTube视频的网站,有时,我会收到一些视频(不是全部)的错误,YouTube返回以下内容:无法打开流:HTTP请求失败!HTTP/1.0 403 禁止
我想知道是否有每小时的最大请求数,例如获取视频?我正在使用这个地址来获取信息:http://gdata.youtube.com/feeds/api/videos?q={VIDEO_ID}
还有我的代码:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, YT_API_URL . $post->get_youtubeVideo());
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//$feed holds a rss feed xml returned by youtube API
$feed = curl_exec($ch);
curl_close($ch);
//Using SimpleXML to parse youtube's feed
$xml = simplexml_load_string($feed);
$entry = $xml->entry[0];
//If no entry whas found, then youtube didn't find any video with specified id
if($entry) {
$media = $entry->children('media', true);
$group = $media->group;
$title = $group->title;
$desc = $group->description;
$thumb = $group->thumbnail[0];
list($thumb_url, $thumb_width, $thumb_height, $thumb_time) = $thumb->attributes();
$content_attributes = $group->content->attributes();
echo '<div class="youtube-video-inpost group" data-video-id="'.$post->get_youtubeVideo().'">
<div class="thumbnail"><div class="play-button"></div><img src="https://i1.ytimg.com/vi/'.$post->get_youtubeVideo().'/mqdefault.jpg" width="195" height="110" /></div>
<div class="infos">
<div class="title"><a href="http://www.youtube.com/watch?v='.$post->get_youtubeVideo().'" target="_blank" class="link-dark">'.$title.'</a></div>
<div class="description">'.$desc.'</div>
</div>
</div>';
}
?>
有人可以帮我吗?多谢!
欢迎来到 StackOverflow!
是的,有"最大请求数"。这称为配额。一旦超过此限制,您将无法在此天执行任何进一步的请求。但是 - 这不是我们在这里寻找的!您将收到错误消息,指出:quotaLimitExceeded
在其响应正文中。
403 Forbidden
告诉我们请求的资源(the video
)不公开可见!可能是private
.您应该处理此问题并告诉您的用户视频需要公开!
代码改进
我强烈建议使用谷歌的API PHP客户端,如果你没有它就无法正确地执行请求!您的代码包含以下问题:
- 你未通过身份验证 ->配额限制超出的速度更快
- 您不会获得详细的使用情况统计信息
- 还有更多难闻的气味。