[soundcloud] Support api urls with secret_token, Closes #3707
parent
0e59b9fffb
commit
9296738f20
|
@ -31,7 +31,8 @@ class SoundcloudIE(InfoExtractor):
|
||||||
(?!sets/|likes/?(?:$|[?#]))
|
(?!sets/|likes/?(?:$|[?#]))
|
||||||
(?P<title>[\w\d-]+)/?
|
(?P<title>[\w\d-]+)/?
|
||||||
(?P<token>[^?]+?)?(?:[?].*)?$)
|
(?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=.*)
|
|(?P<player>(?:w|player|p.)\.soundcloud\.com/player/?.*?url=.*)
|
||||||
)
|
)
|
||||||
'''
|
'''
|
||||||
|
@ -80,6 +81,20 @@ class SoundcloudIE(InfoExtractor):
|
||||||
'duration': 9,
|
'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
|
# downloadable song
|
||||||
{
|
{
|
||||||
'url': 'https://soundcloud.com/oddsamples/bus-brakes',
|
'url': 'https://soundcloud.com/oddsamples/bus-brakes',
|
||||||
|
@ -197,6 +212,9 @@ class SoundcloudIE(InfoExtractor):
|
||||||
if track_id is not None:
|
if track_id is not None:
|
||||||
info_json_url = 'http://api.soundcloud.com/tracks/' + track_id + '.json?client_id=' + self._CLIENT_ID
|
info_json_url = 'http://api.soundcloud.com/tracks/' + track_id + '.json?client_id=' + self._CLIENT_ID
|
||||||
full_title = track_id
|
full_title = track_id
|
||||||
|
token = mobj.group('secret_token')
|
||||||
|
if token:
|
||||||
|
info_json_url += "&secret_token=" + token
|
||||||
elif mobj.group('player'):
|
elif mobj.group('player'):
|
||||||
query = compat_urlparse.parse_qs(compat_urlparse.urlparse(url).query)
|
query = compat_urlparse.parse_qs(compat_urlparse.urlparse(url).query)
|
||||||
return self.url_result(query['url'][0])
|
return self.url_result(query['url'][0])
|
||||||
|
|
Loading…
Reference in New Issue