mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 01:27:07 -05:00 
			
		
		
		
	[mixcloud] Try to get the m4a url if the mp3 url fails to download (fixes #1939)
This commit is contained in:
		@@ -37,6 +37,9 @@ class MixcloudIE(InfoExtractor):
 | 
			
		||||
 | 
			
		||||
        return None
 | 
			
		||||
 | 
			
		||||
    def _get_url(self, template_url):
 | 
			
		||||
        return self.check_urls(template_url % i for i in range(30))
 | 
			
		||||
 | 
			
		||||
    def _real_extract(self, url):
 | 
			
		||||
        mobj = re.match(self._VALID_URL, url)
 | 
			
		||||
 | 
			
		||||
@@ -52,13 +55,18 @@ class MixcloudIE(InfoExtractor):
 | 
			
		||||
        preview_url = self._search_regex(r'data-preview-url="(.+?)"', webpage, u'preview url')
 | 
			
		||||
        song_url = preview_url.replace('/previews/', '/cloudcasts/originals/')
 | 
			
		||||
        template_url = re.sub(r'(stream\d*)', 'stream%d', song_url)
 | 
			
		||||
        final_song_url = self.check_urls(template_url % i for i in range(30))
 | 
			
		||||
        final_song_url = self._get_url(template_url)
 | 
			
		||||
        if final_song_url is None:
 | 
			
		||||
            self.to_screen('Trying with m4a extension')
 | 
			
		||||
            template_url = template_url.replace('.mp3', '.m4a').replace('originals/', 'm4a/64/')
 | 
			
		||||
            final_song_url = self._get_url(template_url)
 | 
			
		||||
        if final_song_url is None:
 | 
			
		||||
            raise ExtractorError(u'Unable to extract track url')
 | 
			
		||||
 | 
			
		||||
        return {
 | 
			
		||||
            'id': track_id,
 | 
			
		||||
            'title': info['name'],
 | 
			
		||||
            'url': final_song_url,
 | 
			
		||||
            'ext': 'mp3',
 | 
			
		||||
            'description': info.get('description'),
 | 
			
		||||
            'thumbnail': info['pictures'].get('extra_large'),
 | 
			
		||||
            'uploader': info['user']['name'],
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user