YoutubeIE: Extend decryption of signatures to all videos that have the 's' field...
authorJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>
Mon, 24 Jun 2013 19:19:04 +0000 (21:19 +0200)
committerJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>
Mon, 24 Jun 2013 19:25:12 +0000 (21:25 +0200)
youtube_dl/extractor/youtube.py

index 35b95fdc2332f78288f3fdfc26fd271a5db8e353..b34c1a7b9a494ca719f2a7ec3f1a128837efbf14 100644 (file)
@@ -486,9 +486,11 @@ class YoutubeIE(InfoExtractor):
             mobj = re.search(r';ytplayer.config = ({.*?});', video_webpage)
             info = json.loads(mobj.group(1))
             args = info['args']
-            if args.get('ptk','') == 'vevo' or 'dashmpd' in args:
-                # Vevo videos with encrypted signatures
-                self.to_screen(u'%s: Vevo video detected.' % video_id)
+            # Easy way to know if the 's' value is in url_encoded_fmt_stream_map
+            # this signatures are encrypted
+            m_s = re.search(r'[&,]s=', args['url_encoded_fmt_stream_map'])
+            if m_s is not None:
+                self.to_screen(u'%s: Encrypted signatures detected.' % video_id)
                 video_info['url_encoded_fmt_stream_map'] = [args['url_encoded_fmt_stream_map']]
         except ValueError:
             pass