【发布时间】:2014-03-02 22:41:51
【问题描述】:
我更喜欢使用像 smplayer 这样的程序来观看 youtube 视频。但是,为了将 smplayer 与播放列表一起使用,我需要右键单击并复制每个单独的链接并将每个链接粘贴到 smplayer...
我想要一个简单的应用程序,它获取一个 youtube 播放列表链接并获取播放列表中各个视频的网址列表。然后我可以简单地将 url 列表复制粘贴到程序中并完成。
这显然是极难实现的......
我差一点就找到了一个已经存在的解决方案here。但是对于非常大的播放列表,它似乎失败了。
所以,在谷歌上搜索后,我发现了this post。从中,我能够创建一个解决方案......但是这些请求似乎随时完成,并以他们选择的任何顺序输入输出。
while(keepGoing&&index<absoluteMax){
$.getJSON(playListURL, {}).done(function(data) {
var list_data="";
if (data.feed.entry.length<resultsPerPage){
keepGoing=false;
}
$.each(data.feed.entry, function(i, item) {
var feedURL = item.link[1].href;
var fragments = feedURL.split("/");
var videoID = fragments[fragments.length - 2];
var url = videoURL + videoID;
list_data += url + '\n';
});
var results = $('#results').val();
$('#results').val(results+=list_data);
});
index+=resultsPerPage;
playListURL = 'http://gdata.youtube.com/feeds/api/playlists/PLpclVninnGnu9a9qQphjPsK95kkZsNS_z?alt=json&v=2&max-results='+resultsPerPage+'&start-index='+index+'&callback=?';
}
您会注意到我必须循环才能拉入视频链接,因为 API 不允许您一次拉入超过 50 个视频。这里的问题是每组 50 个返回的顺序与调用时不同。单击小提琴中的开始按钮,您会注意到每次返回的网址都以不同的顺序...
我想知道的是为什么这些结果以随机顺序返回?我错过了什么?我试过添加一个等待计时器,但这不起作用。我试过简单地将每个结果附加到一个数组并在最后显示该数组,但这也不起作用。出于某种原因,在萤火虫调试中,我似乎无法进入“getJSON”函数......事实上它甚至从未进入过。这个功能唯一有效的时候是我根本不调试的时候......
我即将解决这个问题,我已经花了太多时间来破解它......如果任何更熟悉它的人有更好的主意,请告诉我:)
【问题讨论】:
标签: jquery youtube-api