aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--youtube_dl/extractor/iqiyi.py15
-rw-r--r--youtube_dl/utils.py14
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')