aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>2013-08-21 17:06:37 +0200
committerJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>2013-08-21 17:06:37 +0200
commit668de34c6bbe48f574f23ad898fa904a7c1ad84b (patch)
treeb7578c7474fdd83e4ed7aa722ddf2f0693f238e9
parenta91b954bb4571b766f4bc01dfbe0be870a1b0a25 (diff)
downloadyoutube-dl-668de34c6bbe48f574f23ad898fa904a7c1ad84b.tar.xz
[soundcloud] Support widget urls (fixes #1252)
-rw-r--r--youtube_dl/extractor/soundcloud.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/youtube_dl/extractor/soundcloud.py b/youtube_dl/extractor/soundcloud.py
index 7c9f1c6b6..5f3a5540d 100644
--- a/youtube_dl/extractor/soundcloud.py
+++ b/youtube_dl/extractor/soundcloud.py
@@ -4,6 +4,7 @@ import re
from .common import InfoExtractor
from ..utils import (
compat_str,
+ compat_urlparse,
ExtractorError,
unified_strdate,
@@ -22,6 +23,7 @@ class SoundcloudIE(InfoExtractor):
_VALID_URL = r'''^(?:https?://)?
(?:(?:(?:www\.)?soundcloud\.com/([\w\d-]+)/([\w\d-]+)/?(?:[?].*)?$)
|(?:api\.soundcloud\.com/tracks/(?P<track_id>\d+))
+ |(?P<widget>w.soundcloud.com/player/?.*?url=.*)
)
'''
IE_NAME = u'soundcloud'
@@ -79,6 +81,9 @@ class SoundcloudIE(InfoExtractor):
if track_id is not None:
info_json_url = 'http://api.soundcloud.com/tracks/' + track_id + '.json?client_id=' + self._CLIENT_ID
full_title = track_id
+ elif mobj.group('widget'):
+ query = compat_urlparse.parse_qs(compat_urlparse.urlparse(url).query)
+ return self.url_result(query['url'][0], ie='Soundcloud')
else:
# extract uploader (which is in the url)
uploader = mobj.group(1)