mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[discovery] Fix auth request (closes #15542)
This commit is contained in:
		| @@ -5,15 +5,16 @@ import re | ||||
| import string | ||||
|  | ||||
| from .discoverygo import DiscoveryGoBaseIE | ||||
| from ..compat import compat_str | ||||
| from ..utils import ( | ||||
|     ExtractorError, | ||||
|     update_url_query, | ||||
|     try_get, | ||||
| ) | ||||
| from ..compat import compat_HTTPError | ||||
|  | ||||
|  | ||||
| class DiscoveryIE(DiscoveryGoBaseIE): | ||||
|     _VALID_URL = r'''(?x)https?://(?:www\.)?(?: | ||||
|     _VALID_URL = r'''(?x)https?://(?:www\.)?(?P<site> | ||||
|             discovery| | ||||
|             investigationdiscovery| | ||||
|             discoverylife| | ||||
| @@ -44,7 +45,7 @@ class DiscoveryIE(DiscoveryGoBaseIE): | ||||
|     _GEO_BYPASS = False | ||||
|  | ||||
|     def _real_extract(self, url): | ||||
|         path, display_id = re.match(self._VALID_URL, url).groups() | ||||
|         site, path, display_id = re.match(self._VALID_URL, url).groups() | ||||
|         webpage = self._download_webpage(url, display_id) | ||||
|  | ||||
|         react_data = self._parse_json(self._search_regex( | ||||
| @@ -55,14 +56,13 @@ class DiscoveryIE(DiscoveryGoBaseIE): | ||||
|         video_id = video['id'] | ||||
|  | ||||
|         access_token = self._download_json( | ||||
|             'https://www.discovery.com/anonymous', display_id, query={ | ||||
|                 'authLink': update_url_query( | ||||
|                     'https://login.discovery.com/v1/oauth2/authorize', { | ||||
|                         'client_id': react_data['application']['apiClientId'], | ||||
|                         'redirect_uri': 'https://fusion.ddmcdn.com/app/mercury-sdk/180/redirectHandler.html', | ||||
|                         'response_type': 'anonymous', | ||||
|                         'state': 'nonce,' + ''.join([random.choice(string.ascii_letters) for _ in range(32)]), | ||||
|                     }) | ||||
|             'https://www.%s.com/anonymous' % site, display_id, query={ | ||||
|                 'authRel': 'authorization', | ||||
|                 'client_id': try_get( | ||||
|                     react_data, lambda x: x['application']['apiClientId'], | ||||
|                     compat_str) or '3020a40c2356a645b4b4', | ||||
|                 'nonce': ''.join([random.choice(string.ascii_letters) for _ in range(32)]), | ||||
|                 'redirectUri': 'https://fusion.ddmcdn.com/app/mercury-sdk/180/redirectHandler.html?https://www.%s.com' % site, | ||||
|             })['access_token'] | ||||
|  | ||||
|         try: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Sergey M․
					Sergey M․