1
0
mirror of https://codeberg.org/polarisfm/youtube-dl synced 2024-11-26 02:14:32 +01:00

CDA.PL extractor fix

This commit is contained in:
dkja 2020-08-19 12:52:29 +02:00
parent 10709fc7c6
commit fdee0c4773

View File

@ -4,6 +4,8 @@ from __future__ import unicode_literals
import codecs import codecs
import re import re
import js2py
from .common import InfoExtractor from .common import InfoExtractor
from ..utils import ( from ..utils import (
ExtractorError, ExtractorError,
@ -141,8 +143,12 @@ class CDAIE(InfoExtractor):
video['file'] = codecs.decode(video['file'], 'rot_13') video['file'] = codecs.decode(video['file'], 'rot_13')
if video['file'].endswith('adc.mp4'): if video['file'].endswith('adc.mp4'):
video['file'] = video['file'].replace('adc.mp4', '.mp4') video['file'] = video['file'].replace('adc.mp4', '.mp4')
# Native cda decode:
decode = getDecoder()
f = { f = {
'url': video['file'], 'url': decode(video['file']),
} }
m = re.search( m = re.search(
r'<a[^>]+data-quality="(?P<format_id>[^"]+)"[^>]+href="[^"]+"[^>]+class="[^"]*quality-btn-active[^"]*">(?P<height>[0-9]+)p', r'<a[^>]+data-quality="(?P<format_id>[^"]+)"[^>]+href="[^"]+"[^>]+class="[^"]*quality-btn-active[^"]*">(?P<height>[0-9]+)p',
@ -180,3 +186,50 @@ class CDAIE(InfoExtractor):
self._sort_formats(formats) self._sort_formats(formats)
return info_dict return info_dict
def getDecoder():
return js2py.eval_js(R'''
var k = function (a) {
return a.replace(/[a-zA-Z]/g, function (a) {
return String.fromCharCode(("Z" >= a ? 90 : 122) >= (a = a.charCodeAt(0) + 13) ? a : a - 26)
})
};
var l = function(a) {
for (var b = [], e = 0; e < a.length; e++) {
var f = a.charCodeAt(e);
b[e] = 33 <= f && 126 >= f ? String.fromCharCode(33 + (f + 14) % 94) : String.fromCharCode(f)
}
return da(b.join(""))
}
var aa = function (a) {
String.fromCharCode(("Z" >= a ? 82 : 132) >= (c = a.charCodeAt(0) + 11) ? c : c - 55);
return l(a)
};
da = function(a) {
a = a.replace(".cda.mp4", "");
a = a.replace(".2cda.pl", ".cda.pl");
a = a.replace(".3cda.pl", ".cda.pl");
return -1 < a.indexOf("/upstream") ? (a = a.replace("/upstream", ".mp4/upstream"),
"https://" + a) : "https://" + a + ".mp4"
}
var ba = function (a) {
return aa(decodeURIComponent(k(a)))
};
// M function:
var decode = function (a) {
String.fromCharCode(("Z" >= a ? 11 : 344) >= (c = a.charCodeAt(0) + 22) ? c : c - 11);
a = a.replace("_XDDD", "");
a = a.replace("_CDA", "");
a = a.replace("_ADC", "");
a = a.replace("_CXD", "");
a = a.replace("_QWE", "");
a = a.replace("_Q5", "");
a = a.replace("_IKSDE", "");
return ba(k(a))
};
''')