diff options
| author | dequis <dx@dxzone.com.ar> | 2014-09-18 03:02:03 -0300 | 
|---|---|---|
| committer | dequis <dx@dxzone.com.ar> | 2014-09-18 03:02:03 -0300 | 
| commit | 9296738f20c1335498a78c99a86767e9bae4f6d2 (patch) | |
| tree | 675c0d4fdc7d902280eca28c5d9884825f5b43bd | |
| parent | 0e59b9fffb12255a16577dca7710b7738feca75c (diff) | |
[soundcloud] Support api urls with secret_token, Closes #3707
| -rw-r--r-- | youtube_dl/extractor/soundcloud.py | 20 | 
1 files changed, 19 insertions, 1 deletions
diff --git a/youtube_dl/extractor/soundcloud.py b/youtube_dl/extractor/soundcloud.py index b78aed7f0..129f587ec 100644 --- a/youtube_dl/extractor/soundcloud.py +++ b/youtube_dl/extractor/soundcloud.py @@ -31,7 +31,8 @@ class SoundcloudIE(InfoExtractor):                              (?!sets/|likes/?(?:$|[?#]))                              (?P<title>[\w\d-]+)/?                              (?P<token>[^?]+?)?(?:[?].*)?$) -                       |(?:api\.soundcloud\.com/tracks/(?P<track_id>\d+)) +                       |(?:api\.soundcloud\.com/tracks/(?P<track_id>\d+) +                          (?:/?\?secret_token=(?P<secret_token>[^&]+?))?$)                         |(?P<player>(?:w|player|p.)\.soundcloud\.com/player/?.*?url=.*)                      )                      ''' @@ -80,6 +81,20 @@ class SoundcloudIE(InfoExtractor):                  'duration': 9,              },          }, +        # private link (alt format) +        { +            'url': 'https://api.soundcloud.com/tracks/123998367?secret_token=s-8Pjrp', +            'md5': 'aa0dd32bfea9b0c5ef4f02aacd080604', +            'info_dict': { +                'id': '123998367', +                'ext': 'mp3', +                'title': 'Youtube - Dl Test Video \'\' Ä↭', +                'uploader': 'jaimeMF', +                'description': 'test chars:  \"\'/\\ä↭', +                'upload_date': '20131209', +                'duration': 9, +            }, +        },          # downloadable song          {              'url': 'https://soundcloud.com/oddsamples/bus-brakes', @@ -197,6 +212,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 +            token = mobj.group('secret_token') +            if token: +                info_json_url += "&secret_token=" + token          elif mobj.group('player'):              query = compat_urlparse.parse_qs(compat_urlparse.urlparse(url).query)              return self.url_result(query['url'][0])  | 
