Fix an issue with quality selection

This commit is contained in:
calzoneman 2014-08-14 16:28:44 -05:00
parent 83ae835bed
commit ecca806a58
2 changed files with 13 additions and 10 deletions

View File

@ -713,13 +713,14 @@ var Getters = {
/* /*
* Preference map of quality => youtube formats. * Preference map of quality => youtube formats.
* see https://en.wikipedia.org/wiki/Youtube#Quality_and_codecs * see https://en.wikipedia.org/wiki/Youtube#Quality_and_codecs
*
* Prefer WebM over MP4, ignore other codecs (e.g. FLV)
*/ */
const preference = { const preference = {
"hd1080": [46, 37], "hd1080": [46, 37],
"hd720": [22, 45], "hd720": [45, 22],
"large": [44, 35], "large": [44, 59],
"medium": [43, 18], "medium": [43, 18]
"small": [5]
}; };
var direct = {}; var direct = {};
@ -848,10 +849,9 @@ var Getters = {
*/ */
const preference = { const preference = {
"hd1080": [46, 37], "hd1080": [46, 37],
"hd720": [22, 45], "hd720": [45, 22],
"large": [44, 35], "large": [44, 59],
"medium": [43, 18], "medium": [43, 18]
"small": [5]
}; };
var direct = {}; var direct = {};

View File

@ -2749,15 +2749,18 @@ function googlePlusSimulator2014(data) {
var fallbacks = ["hd1080", "hd720", "large", "medium", "small"]; var fallbacks = ["hd1080", "hd720", "large", "medium", "small"];
var i = fallbacks.indexOf(q); var i = fallbacks.indexOf(q);
if (i < 0) { if (i < 0) {
// Default to 360p because 480p is Flash
i = fallbacks.indexOf("medium"); i = fallbacks.indexOf("medium");
} }
while (!(q in data.meta.gpdirect) && i < fallbacks.length) { while (!(q in data.meta.gpdirect) && i < fallbacks.length) {
q = fallbacks[i++]; q = fallbacks[i++];
} }
if (i === fallbacks.length) { if (i === fallbacks.length) {
q = "medium"; var hasCodecs = Object.keys(data.meta.gpdirect);
if (hasCodecs.length > 0) {
q = hasCodecs[0];
}
} }
data.url = data.meta.gpdirect[q]; data.url = data.meta.gpdirect[q];