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