[yandexmusic] Improve captcha detection
This commit is contained in:
		
							parent
							
								
									abbb2938fa
								
							
						
					
					
						commit
						197a5da1d0
					
				| @ -20,18 +20,24 @@ class YandexMusicBaseIE(InfoExtractor): | |||||||
|             error = response.get('error') |             error = response.get('error') | ||||||
|             if error: |             if error: | ||||||
|                 raise ExtractorError(error, expected=True) |                 raise ExtractorError(error, expected=True) | ||||||
|  |             if response.get('type') == 'captcha' or 'captcha' in response: | ||||||
|  |                 YandexMusicBaseIE._raise_captcha() | ||||||
|  | 
 | ||||||
|  |     @staticmethod | ||||||
|  |     def _raise_captcha(): | ||||||
|  |         raise ExtractorError( | ||||||
|  |             'YandexMusic has considered youtube-dl requests automated and ' | ||||||
|  |             'asks you to solve a CAPTCHA. You can either wait for some ' | ||||||
|  |             'time until unblocked and optionally use --sleep-interval ' | ||||||
|  |             'in future or alternatively you can go to https://music.yandex.ru/ ' | ||||||
|  |             'solve CAPTCHA, then export cookies and pass cookie file to ' | ||||||
|  |             'youtube-dl with --cookies', | ||||||
|  |             expected=True) | ||||||
| 
 | 
 | ||||||
|     def _download_webpage(self, *args, **kwargs): |     def _download_webpage(self, *args, **kwargs): | ||||||
|         webpage = super(YandexMusicBaseIE, self)._download_webpage(*args, **kwargs) |         webpage = super(YandexMusicBaseIE, self)._download_webpage(*args, **kwargs) | ||||||
|         if 'Нам очень жаль, но запросы, поступившие с вашего IP-адреса, похожи на автоматические.' in webpage: |         if 'Нам очень жаль, но запросы, поступившие с вашего IP-адреса, похожи на автоматические.' in webpage: | ||||||
|             raise ExtractorError( |             self._raise_captcha() | ||||||
|                 'YandexMusic has considered youtube-dl requests automated and ' |  | ||||||
|                 'asks you to solve a CAPTCHA. You can either wait for some ' |  | ||||||
|                 'time until unblocked and optionally use --sleep-interval ' |  | ||||||
|                 'in future or alternatively you can go to https://music.yandex.ru/ ' |  | ||||||
|                 'solve CAPTCHA, then export cookies and pass cookie file to ' |  | ||||||
|                 'youtube-dl with --cookies', |  | ||||||
|                 expected=True) |  | ||||||
|         return webpage |         return webpage | ||||||
| 
 | 
 | ||||||
|     def _download_json(self, *args, **kwargs): |     def _download_json(self, *args, **kwargs): | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user