From 4ff50ef84607ee60ff813f7d7f3d35c8b497bf07 Mon Sep 17 00:00:00 2001 From: Philipp Hagemeister Date: Mon, 9 Dec 2013 19:57:00 +0100 Subject: [PATCH] [soundcloud] Do not match sets (Fixes #1930) --- test/test_all_urls.py | 3 +++ youtube_dl/extractor/soundcloud.py | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/test/test_all_urls.py b/test/test_all_urls.py index 6b9764c67e..e9458b2e33 100644 --- a/test/test_all_urls.py +++ b/test/test_all_urls.py @@ -110,6 +110,9 @@ class TestAllURLsMatching(unittest.TestCase): self.assertMatch('http://vimeo.com/channels/tributes', ['vimeo:channel']) self.assertMatch('http://vimeo.com/user7108434', ['vimeo:user']) + # https://github.com/rg3/youtube-dl/issues/1930 + def test_soundcloud_not_matching_sets(self): + self.assertMatch('http://soundcloud.com/floex/sets/gone-ep', ['soundcloud:set']) if __name__ == '__main__': unittest.main() diff --git a/youtube_dl/extractor/soundcloud.py b/youtube_dl/extractor/soundcloud.py index 0571b36ac2..5c026c0b8f 100644 --- a/youtube_dl/extractor/soundcloud.py +++ b/youtube_dl/extractor/soundcloud.py @@ -25,7 +25,8 @@ class SoundcloudIE(InfoExtractor): _VALID_URL = r'''^(?:https?://)? (?:(?:(?:www\.)?soundcloud\.com/ - (?P[\w\d-]+)/(?P[\w\d-]+)/? + (?P<uploader>[\w\d-]+)/ + (?!sets/)(?P<title>[\w\d-]+)/? (?P<token>[^?]+?)?(?:[?].*)?$) |(?:api\.soundcloud\.com/tracks/(?P<track_id>\d+)) |(?P<widget>w\.soundcloud\.com/player/?.*?url=.*)