[soundcloud] Fix download URL with private tracks
This commit is contained in:
		 Tatsuyuki Ishi
					Tatsuyuki Ishi
				
			
				
					committed by
					
						 Sergey M․
						Sergey M․
					
				
			
			
				
	
			
			
			 Sergey M․
						Sergey M․
					
				
			
						parent
						
							23b2df82c7
						
					
				
				
					commit
					73602bcd0c
				
			| @@ -1,8 +1,8 @@ | ||||
| # coding: utf-8 | ||||
| from __future__ import unicode_literals | ||||
|  | ||||
| import re | ||||
| import itertools | ||||
| import re | ||||
|  | ||||
| from .common import ( | ||||
|     InfoExtractor, | ||||
| @@ -17,7 +17,7 @@ from ..utils import ( | ||||
|     ExtractorError, | ||||
|     int_or_none, | ||||
|     unified_strdate, | ||||
| ) | ||||
|     update_url_query) | ||||
|  | ||||
|  | ||||
| class SoundcloudIE(InfoExtractor): | ||||
| @@ -160,11 +160,13 @@ class SoundcloudIE(InfoExtractor): | ||||
|             'license': info.get('license'), | ||||
|         } | ||||
|         formats = [] | ||||
|         query = {'client_id': self._CLIENT_ID} | ||||
|         if secret_token is not None: | ||||
|             query['secret_token'] = secret_token | ||||
|         if info.get('downloadable', False): | ||||
|             # We can build a direct link to the song | ||||
|             format_url = ( | ||||
|                 'https://api.soundcloud.com/tracks/{0}/download?client_id={1}'.format( | ||||
|                     track_id, self._CLIENT_ID)) | ||||
|             format_url = update_url_query( | ||||
|                 'https://api.soundcloud.com/tracks/{0}/download'.format(track_id), query) | ||||
|             formats.append({ | ||||
|                 'format_id': 'download', | ||||
|                 'ext': info.get('original_format', 'mp3'), | ||||
| @@ -176,10 +178,7 @@ class SoundcloudIE(InfoExtractor): | ||||
|         # We have to retrieve the url | ||||
|         format_dict = self._download_json( | ||||
|             'https://api.soundcloud.com/i1/tracks/%s/streams' % track_id, | ||||
|             track_id, 'Downloading track url', query={ | ||||
|                 'client_id': self._CLIENT_ID, | ||||
|                 'secret_token': secret_token, | ||||
|             }) | ||||
|             track_id, 'Downloading track url', query=query) | ||||
|  | ||||
|         for key, stream_url in format_dict.items(): | ||||
|             abr = int_or_none(self._search_regex( | ||||
| @@ -216,7 +215,7 @@ class SoundcloudIE(InfoExtractor): | ||||
|             # cannot be always used, sometimes it can give an HTTP 404 error | ||||
|             formats.append({ | ||||
|                 'format_id': 'fallback', | ||||
|                 'url': info['stream_url'] + '?client_id=' + self._CLIENT_ID, | ||||
|                 'url': update_url_query(info['stream_url'], query), | ||||
|                 'ext': ext, | ||||
|             }) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user