1

我有一个问题,我正在开发一个网站,人们可以在其中分享 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>';
}

?>

有人能帮助我吗 ?非常感谢 !

4

1 回答 1

0

欢迎来到 StackOverflow!

是的,有一个“最大请求数”。这叫配额。一旦超过此限制,您将无法在这一天进行任何进一步的请求。然而 - 这不是我们在这里寻找的!您会收到错误说明:quotaLimitExceeded在它的响应正文中。

403 Forbidden告诉我们请求的资源 ( the video)是不公开的!大概是吧private。您应该处理这个问题并告诉您的用户视频需要公开!

代码改进

如果没有它就无法正确执行请求,我强烈建议您使用Googles API PHP 客户端!您的代码包含问题:

  • 您未通过身份验证 ->配额限制超过更快
  • 您不会获得详细的使用情况统计信息
  • 还有更多难闻的气味。
于 2013-10-30T21:57:51.667 回答