8

期間順に並べられた特定のプレイリストについてYouTubeAPIクエリを実行する小さなJavaScriptプログラムを作成しようとしています。それ以外はすべて完璧に機能しますが、順序はプレイリスト全体を考慮しておらず、最新の25本の動画のみを考慮しています。これがJSFiddleとしての最小限の完全な実例であり、これがそのJavaScript部分です。

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に結果の最新のビデオだけをソートさせることは、まったく無意味に思えます。再生リストの最長または最短の動画、または特定のユーザーがアップロードした動画を正確に取得するにはどうすればよいですか?

4

1 に答える 1

6

編集

必要な機能が利用できないと思います。期間による注文は、YouTube自体でも利用できません。ビデオのブロックを使用max-resultsしてフェッチする必要があると思います。start-index次に、コンパイルされたリストを期間で並べ替えることができます。

考えられる解決策の1つの実例を次に示します。http://jsfiddle.net/PKcnb/8


私はグーグルがこれを明示的に不可能だと言っているところを見つけました。

YouTube API v2.0 –ビデオフィードタイプ:特定のユーザーによってアップロードされたビデオ

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

それは続けて言う:

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

したがって、それは可能かもしれませんが、認証トークンを使用してテストする必要があります。


元の投稿

  1. 応答のみがソートされているように聞こえるようにするためのAPIドキュメント。orderby

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

  2. また、タグmax-results使用すると、返すアイテムの数を指定できます。

  3. これは、すでにソートされている結果(この例では50)をさらにプルする方法の例です。できるだけ多くのリクエストをしてから並べ替える必要があるようです。絶対に理想的ではありません。

  4. ユーザーのプレイリストを取得する

于 2012-12-20T00:49:35.987 に答える