Tôi đang cố tạo một chương trình JavaScript nhỏ để truy vấn YouTube API cho danh sách phát đã cho, được sắp xếp theo thời lượng. Mọi thứ hoạt động hoàn hảo nếu không, nhưng thứ tự không chiếm toàn bộ danh sách phát, chỉ 25 video mới nhất trên đó! Dưới đây là một hoàn chỉnh tối thiểu làm việc example as a JSFiddle và đây là một phần JavaScript của nó:YouTube API 'orderby = duration' không xử lý toàn bộ danh sách phát, chỉ các video mới nhất
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);
});
}
);
Tôi đã cố gắng này trong cả XML và JSON và tôi cũng đã cố gắng loại khác tìm kiếm bên cạnh việc tìm kiếm danh sách nhạc. Việc sắp xếp API chỉ là các video mới nhất của kết quả có vẻ khá vô nghĩa. Làm cách nào để lấy lại các video dài nhất hoặc ngắn nhất của một danh sách phát hoặc các video được tải lên bởi một người dùng cụ thể cho vấn đề đó?
Bạn sẽ nghĩ sắp xếp phía máy chủ kết quả sẽ là một hoạt động tổng thể rẻ hơn so với trả lời một chục hay nhiều truy vấn cá nhân mà không sắp xếp bất cứ điều gì ... Chắc chắn không lý tưởng, như bạn nói. – ZeroOne
@ZeroOne, tôi đồng ý. Tôi thực sự không hiểu được lý do tại sao họ sẽ có nó thực hiện theo cách đó. – JSuar
Liên kết này có thể làm sáng tỏ thêm một chút về chủ đề này. http://apiblog.youtube.com/2012/03/keeping-things-fresh.html – JSuar