diff options
Diffstat (limited to 'youtube_dl/extractor/openload.py')
| -rw-r--r-- | youtube_dl/extractor/openload.py | 61 | 
1 files changed, 45 insertions, 16 deletions
| diff --git a/youtube_dl/extractor/openload.py b/youtube_dl/extractor/openload.py index fc7ff43a6..58ffde541 100644 --- a/youtube_dl/extractor/openload.py +++ b/youtube_dl/extractor/openload.py @@ -75,22 +75,51 @@ class OpenloadIE(InfoExtractor):              '<span[^>]+id="[^"]+"[^>]*>([0-9A-Za-z]+)</span>',              webpage, 'openload ID') -        first_char = int(ol_id[0]) -        urlcode = [] -        num = 1 - -        while num < len(ol_id): -            i = ord(ol_id[num]) -            key = 0 -            if i <= 90: -                key = i - 65 -            elif i >= 97: -                key = 25 + i - 97 -            urlcode.append((key, compat_chr(int(ol_id[num + 2:num + 5]) // int(ol_id[num + 1]) - first_char))) -            num += 5 - -        video_url = 'https://openload.co/stream/' + ''.join( -            [value for _, value in sorted(urlcode, key=lambda x: x[0])]) +        video_url_chars = [] + +        first_char = ord(ol_id[0]) +        key = first_char - 55 +        maxKey = max(2, key) +        key = min(maxKey, len(ol_id) - 38) +        t = ol_id[key:key + 36] + +        hashMap = {} +        v = ol_id.replace(t, '') +        h = 0 + +        while h < len(t): +            f = t[h:h + 3] +            i = int(f, 8) +            hashMap[h / 3] = i +            h += 3 + +        h = 0 +        H = 0 +        while h < len(v): +            B = '' +            C = '' +            if len(v) >= h + 2: +                B = v[h:h + 2] +            if len(v) >= h + 3: +                C = v[h:h + 3] +            i = int(B, 16) +            h += 2 +            if H % 3 == 0: +                i = int(C, 8) +                h += 1 +            elif H % 2 == 0 and H != 0 and ord(v[H - 1]) < 60: +                i = int(C, 10) +                h += 1 +            index = H % 7 + +            A = hashMap[index] +            i ^= 213 +            i ^= A +            video_url_chars.append(compat_chr(i)) +            H += 1 + +        video_url = 'https://openload.co/stream/%s?mime=true' +        video_url = video_url % (''.join(video_url_chars))          title = self._og_search_title(webpage, default=None) or self._search_regex(              r'<span[^>]+class=["\']title["\'][^>]*>([^<]+)', webpage, | 
