1
0
Fork 0
mirror of https://gitlab.com/dstftw/youtube-dl.git synced 2020-11-16 09:42:26 +00:00

[soundcloud:likes] Adapt to API changes (Closes #8166)

This commit is contained in:
Sergey M․ 2016-01-08 01:54:31 +06:00
parent 23f13e9754
commit 97afd99a18

View file

@ -384,27 +384,24 @@ class SoundcloudUserIE(SoundcloudIE):
resource = mobj.group('rsrc') or 'all' resource = mobj.group('rsrc') or 'all'
base_url = self._BASE_URL_MAP[resource] % user['id'] base_url = self._BASE_URL_MAP[resource] % user['id']
next_href = None COMMON_QUERY = {
entries = []
for i in itertools.count():
if not next_href:
data = compat_urllib_parse.urlencode({
'offset': i * 50,
'limit': 50, 'limit': 50,
'client_id': self._CLIENT_ID, 'client_id': self._CLIENT_ID,
'linked_partitioning': '1', 'linked_partitioning': '1',
'representation': 'speedy', }
})
next_href = base_url + '?' + data
query = COMMON_QUERY.copy()
query['offset'] = 0
next_href = base_url + '?' + compat_urllib_parse.urlencode(query)
entries = []
for i in itertools.count():
response = self._download_json( response = self._download_json(
next_href, uploader, 'Downloading track page %s' % (i + 1)) next_href, uploader, 'Downloading track page %s' % (i + 1))
collection = response['collection'] collection = response['collection']
if not collection: if not collection:
self.to_screen('%s: End page received' % uploader)
break break
def resolve_permalink_url(candidates): def resolve_permalink_url(candidates):
@ -419,12 +416,15 @@ class SoundcloudUserIE(SoundcloudIE):
if permalink_url: if permalink_url:
entries.append(self.url_result(permalink_url)) entries.append(self.url_result(permalink_url))
if 'next_href' in response: next_href = response.get('next_href')
next_href = response['next_href']
if not next_href: if not next_href:
break break
else:
next_href = None parsed_next_href = compat_urlparse.urlparse(response['next_href'])
qs = compat_urlparse.parse_qs(parsed_next_href.query)
qs.update(COMMON_QUERY)
next_href = compat_urlparse.urlunparse(
parsed_next_href._replace(query=compat_urllib_parse.urlencode(qs, True)))
return { return {
'_type': 'playlist', '_type': 'playlist',