diff options
Diffstat (limited to 'youtube_dl/extractor/iqiyi.py')
| -rw-r--r-- | youtube_dl/extractor/iqiyi.py | 19 | 
1 files changed, 12 insertions, 7 deletions
| diff --git a/youtube_dl/extractor/iqiyi.py b/youtube_dl/extractor/iqiyi.py index 393e67e35..c3731a110 100644 --- a/youtube_dl/extractor/iqiyi.py +++ b/youtube_dl/extractor/iqiyi.py @@ -95,6 +95,10 @@ class IqiyiIE(InfoExtractor):          ('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 @@ -121,7 +125,7 @@ class IqiyiIE(InfoExtractor):                  note='Download path key of segment %d for format %s' % (segment_index + 1, format_id)              )['t']              t = str(int(math.floor(int(tm) / (600.0)))) -            return hashlib.md5((t + mg + x).encode('utf8')).hexdigest() +            return self.md5_text(t + mg + x)          video_urls_dict = {}          for format_item in data['vp']['tkl'][0]['vs']: @@ -179,20 +183,19 @@ class IqiyiIE(InfoExtractor):      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(), +            'src': self.md5_text('youtube-dl'),              'tvId': tvid,              'vid': video_id,              'vinfo': 1,              'tm': tm, -            'enc': hashlib.md5( -                (enc_key + tm + tvid).encode('utf8')).hexdigest(), +            'enc': self.md5_text(enc_key + tail),              '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' + '?' + \ @@ -201,7 +204,9 @@ class IqiyiIE(InfoExtractor):          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 +        # last update at 2015-12-18 for Zombie::bite +        enc_key = '8b6b683780897eb8d9a48a02ccc4817d'[::-1]          return enc_key      def _real_extract(self, url): | 
