Merge remote-tracking branch 'upstream/master'
[youtube-dl] / youtube_dl / extractor / youtube.py
index bdd399d3e0b3ccd853a224d59bb66753f176f54f..1599dd484cf79815a6cf9da0069352802b0cad1b 100644 (file)
@@ -777,12 +777,17 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
             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']]
-            m_s = re.search(r'[&,]s=', args['adaptive_fmts'] if 'adaptive_fmts' in args else '')
-            if m_s is not None and 'adaptive_fmts' in args:
-                video_info['url_encoded_fmt_stream_map'][0] += ','+args['adaptive_fmts']
+            m_s = re.search(r'[&,]s=', args.get('adaptive_fmts', u''))
+            if m_s is not None:
+                if 'url_encoded_fmt_stream_map' in video_info:
+                    video_info['url_encoded_fmt_stream_map'][0] += ',' + args['adaptive_fmts']
+                else:
+                    video_info['url_encoded_fmt_stream_map'] = [args['adaptive_fmts']]
             elif 'adaptive_fmts' in video_info:
-                video_info['url_encoded_fmt_stream_map'][0] += ','+video_info['adaptive_fmts'][0]
-
+                if 'url_encoded_fmt_stream_map' in video_info:
+                    video_info['url_encoded_fmt_stream_map'][0] += ',' + video_info['adaptive_fmts'][0]
+                else:
+                    video_info['url_encoded_fmt_stream_map'] = video_info['adaptive_fmts']
         except ValueError:
             pass