2012-12-16 4 views
7

YouTube APIを指定してプレイリストを照会するためのJavaScriptプログラムを作成しました。すべてが他の点では完全に機能しますが、オーダーでは再生リスト全体が考慮されません。その上に25個の最新の動画があります。ここでexample as a JSFiddle作業最小完全だとここでのJavaScriptの一部です:YouTube API 'orderby = duration'プレイリスト全体を処理していない、最新の動画だけ

var playlistId = "UUAuUUnT6oDeKwE6v1NGQxug";  
jQuery.getJSON(
    "https://gdata.youtube.com/feeds/api/playlists/"+playlistId+"?v=2&orderby=duration&alt=json", 
    function(data) { 
     $.each(data.feed.entry, function(key, val) { 
      var title = val.title.$t; 
      var url = val.content.src; 
      var duration = val.media$group.yt$duration.seconds; 
      var minutes = Math.floor(duration/60); 
      var seconds = (duration % 60); 

      if(seconds < 10) seconds = "0"+seconds; 

      var newRow = $("<tr></tr>"); 
      newRow.append("<td><a href='"+url+"'>"+title+"</a></td>"); 
      newRow.append("<td class='dur'>"+minutes+":"+seconds+"</td>"); 
      $("#videos").append(newRow); 
     }); 
    } 
); 

私はXMLとJSONの両方でこれを試してみましたが、私はまた、プレイリストの検索以外の検索の他の種類を試してみました。 APIを並べ替えるだけで、結果の最新の動画が分かりにくいようです。 プレイリストの最長または最短の動画、または特定のユーザーがアップロードした動画をどのくらい正確に取得できますか?

答えて

6

EDIT

私はあなたが欲しい機能が利用可能であるとは思いません。期間別の注文は、YouTube自体でも利用できません。あなたはビデオのブロックを取得するためにmax-resultsstart-indexを使用する必要があると思います。コンパイルされたリストを期間別に並べ替えることができます。 http://jsfiddle.net/PKcnb/8


私が見つけたGoogleが、この明示的には可能ではないと言う:

は、ここに1つの可能な解決策の作業例です。

YouTube API v2.0 – Video Feed Types: Videos uploaded by a specific user

このセクションでは、特定のユーザーによってアップロードされた動画 のすべてを含むフィードを取得する方法について説明します。 アップロードされた動画フィードを取得するリクエストにsearch parametersを含めないでください。 のパラメータは、YouTubeの検索インデックス からフィードを生成し、ユーザのアップロードした動画の完全なリストを返すのではなく、結果セットをインデックス付きの公開動画 に効果的に限定します。

それが言うように行く:

は、現在ログインしている ユーザーがアップロードしたすべての動画のフィードを要求するには、以下のURLにGETリクエストを送信します。このリクエストでは、認証トークン が必要です。これにより、YouTubeはユーザーを識別できます。

したがって、認証トークンを使用してテストする必要があります。


オリジナルポスト

  1. API docs for orderbyのみ応答がソートされているように聞こえるします。

    ビデオフィードとプレイリストフィードでサポートされているorderbyパラメータは、APIレスポンスのエントリを並べ替えるためのメソッドを指定します。

  2. また、the max-results tagも返すアイテムの数を指定できます。

  3. Here's an example of how you could pull more (50 in this example)結果は既にソートされています。できるだけ多くを要求してから並べ替える必要があるかもしれないように見えます。確かに理想的ではありません。

  4. Retrieving a user's playlists

+0

あなたが言ったように結果をサーバ側は、確かに...理想的ではない何かをソートせずにダース以上の個別の問い合わせに返信するよりも全体的に安いの動作になりソートだと思うだろう。 – ZeroOne

+0

@ZeroOne、私は同意します。私は本当になぜ彼らはそれをそのように実行するのかの論理を理解していません。 – JSuar

+0

このリンクは、このトピックについてもう少し詳しく説明しています。 http://apiblog.youtube.com/2012/03/keeping-things-fresh.html – JSuar

関連する問題