aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/test_all_urls.py3
-rw-r--r--youtube_dl/extractor/soundcloud.py3
2 files changed, 5 insertions, 1 deletions
diff --git a/test/test_all_urls.py b/test/test_all_urls.py
index 6b9764c67..e9458b2e3 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 0571b36ac..5c026c0b8 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<uploader>[\w\d-]+)/(?P<title>[\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=.*)