获取视频信息 Youtube(有时禁止某些视频)


Fetching videos infos Youtube (Sometimes forbidden for some videos)

我有一个问题,我正在开发一个人们可以分享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客户端,如果你没有它就无法正确地执行请求!您的代码包含以下问题:

  • 你未通过身份验证 ->配额限制超出的速度更快
  • 您不会获得详细的使用情况统计信息
  • 还有更多难闻的气味。