我正在尝试构建一个小的 JavaScript 程序来查询给定播放列表的YouTube API,按持续时间排序。一切正常,但排序不考虑整个播放列表,只是其中的 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 只对结果的最新视频进行排序似乎毫无意义。我究竟如何检索播放列表中最长或最短的视频,或者由给定用户上传的视频?