diff options
| author | denneboomyo <denis_b555@freenet.de> | 2017-03-06 11:00:17 +0100 | 
|---|---|---|
| committer | Yen Chi Hsuan <yan12125@gmail.com> | 2017-03-06 18:00:17 +0800 | 
| commit | da92da4b886a0e44fe28591ddf5b746fba1c9ade (patch) | |
| tree | 136a2c4fd1ed8822f6378c58fe31f805b8a2c6d4 | |
| parent | 16647026264b35a40ecd56f5d9392d0643a2066c (diff) | |
Openload fix extraction (#12357)
* Fix extraction
| -rw-r--r-- | youtube_dl/extractor/openload.py | 47 | 
1 files changed, 31 insertions, 16 deletions
| diff --git a/youtube_dl/extractor/openload.py b/youtube_dl/extractor/openload.py index fc7ff43a6..25f6a9aca 100644 --- a/youtube_dl/extractor/openload.py +++ b/youtube_dl/extractor/openload.py @@ -75,22 +75,37 @@ 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) - 14) +        t = ol_id[key:key + 12] + +        hashMap = {} +        v = ol_id.replace(t, "") +        h = 0 + +        while h < len(t): +            f = t[h:h + 2] +            i = int(f, 16) +            hashMap[h / 2] = i +            h += 2 + +        h = 0 + +        while h < len(v): +            B = v[h:h + 2] +            i = int(B, 16) +            index = (h / 2) % 6 +            A = hashMap[index] +            i = i ^ A +            video_url_chars.append(compat_chr(i)) +            h += 2 + +        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, | 
