0

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');
4

1 に答える 1

0

一見、完全なZend MVCモデルを使用していませんが、パフォーマンスを向上させるために使用できるいくつかのことは、VIEWのHTMLを処理するメソッドを送信し、YouTubeからのRSSフィードを使用してこのリクエストを行うことです。

于 2012-05-24T19:57:57.653 に答える