YouTube 開発者 API ドキュメントで説明されているように、私は Zend_Gdata を使用して、最新の 2 つのビデオをサムネイル付きで単純に取り込もうとしています。残念ながら、これは信じられないほど遅く、ページの残りの部分の読み込みが遅くなるため、このコードを無効にして静的 HTML を挿入する必要がありました。おそらくデータのクエリが多すぎるのではないかと考えていますが、 の制限オプションが表示されませんgetuserUploads
。私が考えることができる他の唯一の解決策は、ページの読み込み後に AJAX 呼び出しを行うことですが、それでも高速にする必要があります。
XML を使用する方が速い場合は、タイトル、URL、およびサムネイルを取得するための作業コードを教えてもらえますか? 私が見つけて最初に試したコード (Simple 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');