Próbuję zbudować niewielki program JavaScript, który wyszuka nazwę YouTube API dla danej listy odtwarzania uporządkowaną według czasu trwania. Wszystko działa idealnie, ale zamówienie nie uwzględnia całej listy odtwarzania, tylko 25 najnowszych filmów na jej temat! Oto pełna minimum pracy example as a JSFiddle i tu jest częścią JavaScript niego:Interfejs API serwisu YouTube "orderby = duration" nie obsługuje całej listy odtwarzania, tylko najnowsze filmy wideo
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);
});
}
);
Próbowałem to zarówno w formacie XML i JSON i Próbowałem również inne rodzaje wyszukiwań oprócz wyszukiwania listy odtwarzania. Posiadanie API sortowania tylko najnowszych filmów z wynikami wydaje się zupełnie bezcelowe. Jak dokładnie mogę pobrać najdłuższe lub najkrótsze filmy z playlisty lub te przesłane przez danego użytkownika?
Można by pomyśleć sortowania po stronie serwera wyniki byłyby tańsze ogólna operacja niż odpowiadanie na kilkunastu indywidualnych zapytań bez sortowania nic ... Na pewno nie jest idealny, jak pan powiedział. – ZeroOne
@ZeroOne, zgadzam się. Naprawdę nie rozumiem logiki, dlaczego mieliby ją wykonać w ten sposób. – JSuar
Ten link może rzucić nieco więcej światła na ten temat. http://apiblog.youtube.com/2012/03/keeping-things-fresh.html – JSuar