mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[kuwo:mv] Fix the test and extraction of georestricted MVs
This commit is contained in:
		| @@ -23,7 +23,7 @@ class KuwoBaseIE(InfoExtractor): | ||||
|         {'format': 'aac', 'ext': 'aac', 'abr': 48, 'preference': 10} | ||||
|     ] | ||||
|  | ||||
|     def _get_formats(self, song_id): | ||||
|     def _get_formats(self, song_id, tolerate_ip_deny=False): | ||||
|         formats = [] | ||||
|         for file_format in self._FORMATS: | ||||
|             song_url = self._download_webpage( | ||||
| @@ -32,7 +32,7 @@ class KuwoBaseIE(InfoExtractor): | ||||
|                 song_id, note='Download %s url info' % file_format['format'], | ||||
|             ) | ||||
|  | ||||
|             if song_url == 'IPDeny': | ||||
|             if song_url == 'IPDeny' and not tolerate_ip_deny: | ||||
|                 raise ExtractorError('This song is blocked in this region', expected=True) | ||||
|  | ||||
|             if song_url.startswith('http://') or song_url.startswith('https://'): | ||||
| @@ -43,7 +43,12 @@ class KuwoBaseIE(InfoExtractor): | ||||
|                     'preference': file_format['preference'], | ||||
|                     'abr': file_format.get('abr'), | ||||
|                 }) | ||||
|         self._sort_formats(formats) | ||||
|  | ||||
|         # XXX _sort_formats fails if there are not formats, while it's not the | ||||
|         # desired behavior if 'IPDeny' is ignored | ||||
|         # This check can be removed if https://github.com/rg3/youtube-dl/pull/8051 is merged | ||||
|         if not tolerate_ip_deny: | ||||
|             self._sort_formats(formats) | ||||
|         return formats | ||||
|  | ||||
|  | ||||
| @@ -288,10 +293,16 @@ class KuwoMvIE(KuwoBaseIE): | ||||
|         'url': 'http://www.kuwo.cn/mv/6480076/', | ||||
|         'info_dict': { | ||||
|             'id': '6480076', | ||||
|             'ext': 'mkv', | ||||
|             'title': '我们家MV', | ||||
|             'ext': 'mp4', | ||||
|             'title': 'My HouseMV', | ||||
|             'creator': '2PM', | ||||
|         }, | ||||
|         # In this video, music URLs (anti.s) are blocked outside China and | ||||
|         # USA, while the MV URL (mvurl) is available globally, so force the MV | ||||
|         # URL for consistent results in different countries | ||||
|         'params': { | ||||
|             'format': 'mv', | ||||
|         }, | ||||
|     } | ||||
|     _FORMATS = KuwoBaseIE._FORMATS + [ | ||||
|         {'format': 'mkv', 'ext': 'mkv', 'preference': 250}, | ||||
| @@ -313,7 +324,17 @@ class KuwoMvIE(KuwoBaseIE): | ||||
|         else: | ||||
|             raise ExtractorError('Unable to find song or singer names') | ||||
|  | ||||
|         formats = self._get_formats(song_id) | ||||
|         formats = self._get_formats(song_id, tolerate_ip_deny=True) | ||||
|  | ||||
|         mv_url = self._download_webpage( | ||||
|             'http://www.kuwo.cn/yy/st/mvurl?rid=MUSIC_%s' % song_id, | ||||
|             song_id, note='Download %s MV URL' % song_id) | ||||
|         formats.append({ | ||||
|             'url': mv_url, | ||||
|             'format_id': 'mv', | ||||
|         }) | ||||
|  | ||||
|         self._sort_formats(formats) | ||||
|  | ||||
|         return { | ||||
|             'id': song_id, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Yen Chi Hsuan
					Yen Chi Hsuan