正如YouTube 开发者 API docs 所描述的那样, 我使用 Zend_ Gdata 来尝试和简单地拉动最新的两个视频, 使用缩略图。 不幸的是, 它非常缓慢且延迟了页面的其余部分, 因此我不得不禁用此代码并输入静态 HTML 。 我认为它可能查询太多数据, 但我看不到 < code> getuserUpload code> 的限值选项。 我唯一能想到的办法是在页面加载后使用 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>
";
$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 );