projects
/
youtube-dl
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
eb11cbe
)
[iqiyi] Fix extraction (fixes #6878)
author
Yen Chi Hsuan
<yan12125@gmail.com>
Wed, 23 Sep 2015 14:22:04 +0000
(22:22 +0800)
committer
Yen Chi Hsuan
<yan12125@gmail.com>
Wed, 23 Sep 2015 14:22:04 +0000
(22:22 +0800)
youtube_dl/extractor/iqiyi.py
patch
|
blob
|
history
diff --git
a/youtube_dl/extractor/iqiyi.py
b/youtube_dl/extractor/iqiyi.py
index 393e67e354c4adb9864bdebfe05c38503be67b0b..2ce6627a481351dc6a134f1a5488bcd12e368021 100644
(file)
--- a/
youtube_dl/extractor/iqiyi.py
+++ b/
youtube_dl/extractor/iqiyi.py
@@
-95,6
+95,10
@@
class IqiyiIE(InfoExtractor):
('10', 'h1'),
]
('10', 'h1'),
]
+ @staticmethod
+ def md5_text(text):
+ return hashlib.md5(text.encode('utf-8')).hexdigest()
+
def construct_video_urls(self, data, video_id, _uuid):
def do_xor(x, y):
a = y % 3
def construct_video_urls(self, data, video_id, _uuid):
def do_xor(x, y):
a = y % 3
@@
-179,6
+183,7
@@
class IqiyiIE(InfoExtractor):
def get_raw_data(self, tvid, video_id, enc_key, _uuid):
tm = str(int(time.time()))
def get_raw_data(self, tvid, video_id, enc_key, _uuid):
tm = str(int(time.time()))
+ tail = tm + tvid
param = {
'key': 'fvip',
'src': hashlib.md5(b'youtube-dl').hexdigest(),
param = {
'key': 'fvip',
'src': hashlib.md5(b'youtube-dl').hexdigest(),
@@
-186,13
+191,11
@@
class IqiyiIE(InfoExtractor):
'vid': video_id,
'vinfo': 1,
'tm': tm,
'vid': video_id,
'vinfo': 1,
'tm': tm,
- 'enc': hashlib.md5(
- (enc_key + tm + tvid).encode('utf8')).hexdigest(),
+ 'enc': self.md5_text((enc_key + tail)[1:64:2] + tail),
'qyid': _uuid,
'tn': random.random(),
'um': 0,
'qyid': _uuid,
'tn': random.random(),
'um': 0,
- 'authkey': hashlib.md5(
- (tm + tvid).encode('utf8')).hexdigest()
+ 'authkey': self.md5_text(self.md5_text('') + tail),
}
api_url = 'http://cache.video.qiyi.com/vms' + '?' + \
}
api_url = 'http://cache.video.qiyi.com/vms' + '?' + \
@@
-201,7
+204,8
@@
class IqiyiIE(InfoExtractor):
return raw_data
def get_enc_key(self, swf_url, video_id):
return raw_data
def get_enc_key(self, swf_url, video_id):
- enc_key = '3601ba290e4f4662848c710e2122007e' # last update at 2015-08-10 for Zombie
+ # TODO: automatic key extraction
+ enc_key = 'eac64f22daf001da6ba9aa8da4d501508bbe90a4d4091fea3b0582a85b38c2cc' # last update at 2015-09-23-23 for Zombie::bite
return enc_key
def _real_extract(self, url):
return enc_key
def _real_extract(self, url):