[extractor/generic] Extract all soundcloud embeds (Closes #10179)
authorSergey M․ <dstftw@gmail.com>
Thu, 28 Jul 2016 15:15:15 +0000 (22:15 +0700)
committerSergey M․ <dstftw@gmail.com>
Thu, 28 Jul 2016 15:15:15 +0000 (22:15 +0700)
youtube_dl/extractor/generic.py

index 98dd6a7e3e7d58cc2e892a21d8973ee3ae5deeeb..6c4af64243c86d49de81e9c9c333637cc1cbe40d 100644 (file)
@@ -71,6 +71,7 @@ from .vessel import VesselIE
 from .kaltura import KalturaIE
 from .eagleplatform import EaglePlatformIE
 from .facebook import FacebookIE
+from .soundcloud import SoundcloudIE
 
 
 class GenericIE(InfoExtractor):
@@ -1999,12 +2000,9 @@ class GenericIE(InfoExtractor):
             return self.url_result(myvi_url)
 
         # Look for embedded soundcloud player
-        mobj = re.search(
-            r'<iframe\s+(?:[a-zA-Z0-9_-]+="[^"]+"\s+)*src="(?P<url>https?://(?:w\.)?soundcloud\.com/player[^"]+)"',
-            webpage)
-        if mobj is not None:
-            url = unescapeHTML(mobj.group('url'))
-            return self.url_result(url)
+        soundcloud_urls = SoundcloudIE._extract_urls(webpage)
+        if soundcloud_urls:
+            return _playlist_from_matches(soundcloud_urls, getter=unescapeHTML, ie=SoundcloudIE.ie_key())
 
         # Look for embedded mtvservices player
         mtvservices_url = MTVServicesEmbeddedIE._extract_url(webpage)