Mark SoundCloud IE as nonfunctional for now (#579)
[youtube-dl] / youtube_dl / InfoExtractors.py
index 44ad342a80616ae2a7e17250ba3c213928e1b280..71b6a136eb13e3d2d0d1d462f08b6ff369009998 100644 (file)
@@ -1671,7 +1671,7 @@ class YahooSearchIE(InfoExtractor):
 class YoutubePlaylistIE(InfoExtractor):
     """Information Extractor for YouTube playlists."""
 
-    _VALID_URL = r'(?:(?:https?://)?(?:\w+\.)?youtube\.com/(?:(?:course|view_play_list|my_playlists|artist|playlist)\?.*?(p|a|list)=|user/.*?/user/|p/|user/.*?#[pg]/c/)(?:PL|EC)?|PL|EC)([0-9A-Za-z-_]+)(?:/.*?/([0-9A-Za-z_-]+))?.*'
+    _VALID_URL = r'(?:(?:https?://)?(?:\w+\.)?youtube\.com/(?:(?:course|view_play_list|my_playlists|artist|playlist)\?.*?(p|a|list)=|user/.*?/user/|p/|user/.*?#[pg]/c/)(?:PL|EC)?|PL|EC)([0-9A-Za-z-_]{10,})(?:/.*?/([0-9A-Za-z_-]+))?.*'
     _TEMPLATE_URL = 'http://www.youtube.com/%s?%s=%s&page=%s&gl=US&hl=en'
     _VIDEO_INDICATOR_TEMPLATE = r'/watch\?v=(.+?)&([^&"]+&)*list=.*?%s'
     _MORE_PAGES_INDICATOR = r'yt-uix-pager-next'
@@ -2649,6 +2649,7 @@ class EscapistIE(InfoExtractor):
 class CollegeHumorIE(InfoExtractor):
     """Information extractor for collegehumor.com"""
 
+    _WORKING = False
     _VALID_URL = r'^(?:https?://)?(?:www\.)?collegehumor\.com/video/(?P<videoid>[0-9]+)/(?P<shorttitle>.*)$'
     IE_NAME = u'collegehumor'
 
@@ -2798,6 +2799,7 @@ class SoundcloudIE(InfoExtractor):
 
     _VALID_URL = r'^(?:https?://)?(?:www\.)?soundcloud\.com/([\w\d-]+)/([\w\d-]+)'
     IE_NAME = u'soundcloud'
+    _WORKING = False
 
     def __init__(self, downloader=None):
         InfoExtractor.__init__(self, downloader)
@@ -2817,16 +2819,18 @@ class SoundcloudIE(InfoExtractor):
             return
 
         # extract uploader (which is in the url)
-        uploader = mobj.group(1).decode('utf-8')
+        uploader = mobj.group(1)
         # extract simple title (uploader + slug of song title)
-        slug_title =  mobj.group(2).decode('utf-8')
+        slug_title =  mobj.group(2)
         simple_title = uploader + u'-' + slug_title
 
         self.report_webpage('%s/%s' % (uploader, slug_title))
 
-        request = compat_urllib_request.Request('http://soundcloud.com/%s/%s' % (uploader, slug_title))
+        url = 'https://soundcloud.com/%s/%s' % (uploader, slug_title)
+        request = compat_urllib_request.Request(url)
         try:
-            webpage = compat_urllib_request.urlopen(request).read()
+            urlo = compat_urllib_request.urlopen(request).read()
+            webpage = webpage_bytes.decode('utf-8')
         except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
             self._downloader.trouble(u'ERROR: unable to download video webpage: %s' % compat_str(err))
             return
@@ -2838,11 +2842,14 @@ class SoundcloudIE(InfoExtractor):
         if mobj:
             video_id = mobj.group(1)
             stream_token = mobj.group(2)
+        else:
+            self._downloader.trouble(u'ERROR: unable to find video ID in Soundcloud file')
+            return
 
         # extract unsimplified title
         mobj = re.search('"title":"(.*?)",', webpage)
         if mobj:
-            title = mobj.group(1).decode('utf-8')
+            title = mobj.group(1)
         else:
             title = simple_title
 
@@ -2869,13 +2876,13 @@ class SoundcloudIE(InfoExtractor):
         request = compat_urllib_request.Request('http://media.soundcloud.com/crossdomain.xml', std_headers)
 
         return [{
-            'id':       video_id.decode('utf-8'),
+            'id':       video_id,
             'url':      mediaURL,
-            'uploader': uploader.decode('utf-8'),
+            'uploader': uploader,
             'upload_date':  upload_date,
             'title':    title,
             'ext':      u'mp3',
-            'description': description.decode('utf-8')
+            'description': description
         }]