ユーチューブのAPI - ページネーションの結果を制限する方法は?
-
20-09-2019 - |
質問
私は、ユーザーのアップロード(すなわち:BBC)をつかむしたい。そしてページあたり10への出力を制限する
私は、次のURLを使用することができますしながら。 http://gdata.youtube。 COM /フィード/ API /ユーザー/ BBC /アップロード/?開始インデックスを= 1&MAX-結果= 10 の
上記の作品をいいます。
私が代わりにクエリメソッドを使用します。
Zend Frameworkのドキュメント: http://framework.zend.com/manual/en/zend.gdata .youtube.htmlする
私は、ユーザーがアップロードした動画を検索することができますが、理想的に私は改ページの結果を制限するために、queryメソッドを使用します。国家ます。
クエリメソッドは、(「メタデータによって動画の検索」のタイトルの下に、以前と同じページ)は、Zendのフレームワークのドキュメント上で、次のようになります:
$yt = new Zend_Gdata_YouTube();
$query = $yt->newVideoQuery();
$query->setTime('today');
$query->setMaxResults(10);
$videoFeed = $yt->getUserUploads( NULL, $query );
print
'<ol>';
foreach($videoFeed as $video):
print '<li>' . $video->title . '</li>';
endforeach;
print '</ol>'
;
この問題は、私ができていない$ query-> SETUSER( 'BBC')です。
私はSETAUTHORを試してみましたが、これは全く異なる結果を返します。
理想的には、私はページ区切りの形式で結果をつかむために、クエリメソッドを使用します。
はどのようにページネーションのための私の制限を設定するために$クエリメソッドを使用していますか?
ありがとう。
解決
私は基本的にわずかにひねりを加えたworchyldと同じ方法でこれを解決します:
$username = 'ignite';
$limit = 30; // Youtube will throw an exception if > 50
$offset = 1; // First video is 1 (silly non-programmers!)
$videoFeed = null;
$uploadCount = 0;
try {
$yt = new Zend_Gdata_YouTube();
$yt->setMajorProtocolVersion(2);
$userProfile = $yt->getUserProfile($username);
$uploadCount = $userProfile->getFeedLink('http://gdata.youtube.com/schemas/2007#user.uploads')->countHint;
// The following code is a dirty hack to get pagination with the YouTube API without always starting from the first result
// The following code snippet was copied from Zend_Gdata_YouTube->getUserUploads();
$url = Zend_Gdata_YouTube::USER_URI .'/'. $username .'/'. Zend_Gdata_YouTube::UPLOADS_URI_SUFFIX;
$location = new Zend_Gdata_YouTube_VideoQuery($url);
$location->setStartIndex($offset);
$location->setMaxResults($limit);
$videoFeed = $yt->getVideoFeed($location);
} catch (Exception $e) {
// Exception handling goes here!
return;
}
それは - それは実際にフィードをフェッチする前に含まgetUserUploads方法はVideoQueryインスタンスを返すことはありません、あなたが2番目のパラメータとしての位置オブジェクトを渡すことができますが、それは「二者択一」の状況だとしてZendのYouTubeのAPIは愚かなようです基本的なURIを構築するかだけでは(上記のように)全部を自分で構築する必要がある場所を、使用するユーザー名パラメータを使用するでしょう。
他のヒント
私はちょうど仕事に改ページを取得する方法として、フィードユーザーのアップロードを使用することを決めました。 http://gdata.youtube。 COM /フィード/ API /ユーザー/ BBC /アップロード/?開始インデックスを= 1&MAX-結果= 10 の
と同様の仕事をするために、クエリ/検索方法を使用する方法を模索して興味深いものになるだろうがある場合。