mirror of https://github.com/calzoneman/sync.git
Fix playlists because ytapi returns inconsistent results
This commit is contained in:
parent
9faada9891
commit
25421514d2
15
channel.js
15
channel.js
|
@ -481,7 +481,7 @@ Channel.prototype.enqueue = function(data) {
|
||||||
}
|
}
|
||||||
// YouTube Playlist
|
// YouTube Playlist
|
||||||
else if(data.type == "yp") {
|
else if(data.type == "yp") {
|
||||||
var callback = (function(chan, id) { return function(res, data) {
|
var callback = (function(chan, plid) { return function(res, data) {
|
||||||
if(res != 200) {
|
if(res != 200) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -492,7 +492,16 @@ Channel.prototype.enqueue = function(data) {
|
||||||
var title = item.title.$t;
|
var title = item.title.$t;
|
||||||
var url = item.link[1].href;
|
var url = item.link[1].href;
|
||||||
var parts = url.split("/");
|
var parts = url.split("/");
|
||||||
var id = parts[parts.length - 1];
|
// INCOMING H4X BECAUSE YTAPI IS INCONSISTENT
|
||||||
|
var last = parts[parts.length - 1];
|
||||||
|
var match = last.match(/watch\?v=([^&]+)/);
|
||||||
|
var id;
|
||||||
|
if(match) {
|
||||||
|
id = match[1];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
id = parts[parts.length - 2];
|
||||||
|
}
|
||||||
var seconds = item.media$group.yt$duration.seconds;
|
var seconds = item.media$group.yt$duration.seconds;
|
||||||
var vid = new Media(id, title, seconds, "yt");
|
var vid = new Media(id, title, seconds, "yt");
|
||||||
chan.queue.splice(idx, 0, vid);
|
chan.queue.splice(idx, 0, vid);
|
||||||
|
@ -503,7 +512,7 @@ Channel.prototype.enqueue = function(data) {
|
||||||
chan.addToLibrary(vid);
|
chan.addToLibrary(vid);
|
||||||
idx++;
|
idx++;
|
||||||
}
|
}
|
||||||
chan.logger.log("*** Queued YT Playlist: id=" + id);
|
chan.logger.log("*** Queued YT Playlist: id=" + plid);
|
||||||
}
|
}
|
||||||
catch(e) {
|
catch(e) {
|
||||||
Logger.errlog.log("YTPlaylist Failed: id=", id);
|
Logger.errlog.log("YTPlaylist Failed: id=", id);
|
||||||
|
|
Loading…
Reference in New Issue