diff options
| -rw-r--r-- | youtube_dl/extractor/iqiyi.py | 15 | ||||
| -rw-r--r-- | youtube_dl/utils.py | 14 | 
2 files changed, 16 insertions, 13 deletions
| diff --git a/youtube_dl/extractor/iqiyi.py b/youtube_dl/extractor/iqiyi.py index c3e33009a..4f02b9f87 100644 --- a/youtube_dl/extractor/iqiyi.py +++ b/youtube_dl/extractor/iqiyi.py @@ -18,6 +18,7 @@ from ..compat import (      compat_urllib_parse_urlparse,  )  from ..utils import ( +    base62,      ExtractorError,      ohdave_rsa_encrypt,      remove_start, @@ -126,21 +127,9 @@ class IqiyiSDK(object):  class IqiyiSDKInterpreter(object): -    BASE62_TABLE = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' -      def __init__(self, sdk_code):          self.sdk_code = sdk_code -    @classmethod -    def base62(cls, num): -        if num == 0: -            return '0' -        ret = '' -        while num: -            ret = cls.BASE62_TABLE[num % 62] + ret -            num = num // 62 -        return ret -      def decode_eval_codes(self):          self.sdk_code = self.sdk_code[5:-3] @@ -154,7 +143,7 @@ class IqiyiSDKInterpreter(object):          while count:              count -= 1 -            b62count = self.base62(count) +            b62count = base62(count)              symbol_table[b62count] = symbols[count] or b62count          self.sdk_code = re.sub( diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index a3df90fad..d7a1586c0 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -2619,3 +2619,17 @@ def ohdave_rsa_encrypt(data, exponent, modulus):      payload = int(binascii.hexlify(data[::-1]), 16)      encrypted = pow(payload, exponent, modulus)      return '%x' % encrypted + + +def base_n(num, n, table): +    if num == 0: +        return '0' +    ret = '' +    while num: +        ret = table[num % n] + ret +        num = num // n +    return ret + + +def base62(num): +    return base_n(num, 62, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') | 
