YouTube API 使用 Zend_Gdata 2 个最新视频 - 真的很慢


YouTube API Using Zend_Gdata for 2 Latest Videos - Really Slow

我正在使用Zend_Gdata,如YouTube开发者API文档中所述,尝试简单地提取最新的两个带有缩略图的视频。不幸的是,它非常慢并且延迟了页面其余部分的加载,因此我不得不禁用此代码并放入静态 HTML。我在想也许它查询了太多数据,但我没有看到getuserUploads的限制选项.我能想到的唯一其他解决方案是让它在页面加载后执行 AJAX 调用,但我仍然需要它更快。

如果使用XML会更快,有人可以指出我一些工作代码来获取标题,URL和缩略图吗?我首先找到并尝试的代码(使用简单的XML函数)根本不起作用。

以下是使用的代码很慢:

require_once 'Zend/Loader.php'; 
Zend_Loader::loadClass('Zend_Gdata_YouTube');
function printVideoFeed($videoFeed, $limit)
{
  $count = 1;
  foreach ($videoFeed as $videoEntry) {
    if ($count > $limit) { break; }
    echo "<li>";
    printVideoEntry($videoEntry);
    echo "</li>'n";
    $count++;
  }
}
function getAndPrintUserUploads($userName)                    
{     
  //Zend_Gdata_YouTube($httpClient, $applicationId, $clientId, $developerKey);
  $yt = new Zend_Gdata_YouTube(NULL, 'APPIDHERE', 'CLIENTNAMEHERE', 'ASDF-LONGDEVKEYHERE-TO-FIX-TOO-MANY-CALLS-PROBLEM');
  $yt->setMajorProtocolVersion(2);
  printVideoFeed( $yt->getuserUploads($userName), 2 );
}  
function printVideoEntry($videoEntry) 
{
    // get all thumbnails. Use the 2nd one (index of 1 in array) that is 180px wide
    $videoThumbnails = $videoEntry->getVideoThumbnails(); ?>
    <div class="theimg">
        <a href="<?php echo $videoEntry->getVideoWatchPageUrl(); ?>" target="_blank">
            <img src="<?php echo $videoThumbnails[1]['url']; ?>" alt="" width="160" />
        </a>
    </div>
    <span class="date">Video</span>
    <h4><a href="<?php echo $videoEntry->getVideoWatchPageUrl(); ?>" target="_blank"><?php echo $videoEntry->getVideoTitle(); ?></a></h4>
} 
getAndPrintUserUploads('USERNAMEHERE');

乍一看,你没有使用完整的Zend MVC模型,你可以用来提高性能的一些东西是发送处理VIEW的HTML的方法,并使用来自youtube的RSS提要来发出这个请求。