]> git.bitcoin.ninja Git - youtube-dl/blobdiff - youtube_dl/extractor/youtube.py
Merge pull request #1531 from rg3/no-playlist
[youtube-dl] / youtube_dl / extractor / youtube.py
index c6876c69f01f78e406f11b825bc49045d854b267..6580d8bf8782d47000d9452d687836c28cd4acbd 100644 (file)
@@ -13,7 +13,6 @@ import struct
 import traceback
 import xml.etree.ElementTree
 import zlib
-import urlparse
 
 from .common import InfoExtractor, SearchInfoExtractor
 from .subtitles import SubtitlesInfoExtractor
@@ -24,6 +23,7 @@ from ..utils import (
     compat_urllib_error,
     compat_urllib_parse,
     compat_urllib_request,
+    compat_urlparse,
     compat_str,
 
     clean_html,
@@ -1391,6 +1391,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor, SubtitlesInfoExtractor):
             args = info['args']
             # Easy way to know if the 's' value is in url_encoded_fmt_stream_map
             # this signatures are encrypted
+            if 'url_encoded_fmt_stream_map' not in args:
+                raise ValueError(u'No stream_map present')  # caught below
             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)
@@ -1527,7 +1529,7 @@ class YoutubePlaylistIE(InfoExtractor):
         playlist_id = mobj.group(1) or mobj.group(2)
 
         # Check if it's a video-specific URL
-        query_dict = urlparse.parse_qs(urlparse.urlparse(url).query)
+        query_dict = compat_urlparse.parse_qs(compat_urlparse.urlparse(url).query)
         if 'v' in query_dict:
             video_id = query_dict['v'][0]
             if self._downloader.params.get('noplaylist'):