mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	[ie/kick] Support subscriber-only content (#13550)
Closes #13442 Authored by: helpimnotdrowning
This commit is contained in:
		 helpimnotdrowning
					helpimnotdrowning
				
			
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			 GitHub
						GitHub
					
				
			
						parent
						
							500761e41a
						
					
				
				
					commit
					b16722ede8
				
			| @@ -1,12 +1,12 @@ | ||||
| import functools | ||||
| import urllib.parse | ||||
| 
 | ||||
| from .common import InfoExtractor | ||||
| from ..networking import HEADRequest | ||||
| from ..utils import ( | ||||
|     UserNotLive, | ||||
|     determine_ext, | ||||
|     float_or_none, | ||||
|     int_or_none, | ||||
|     merge_dicts, | ||||
|     parse_iso8601, | ||||
|     str_or_none, | ||||
|     traverse_obj, | ||||
| @@ -16,21 +16,17 @@ from ..utils import ( | ||||
| 
 | ||||
| 
 | ||||
| class KickBaseIE(InfoExtractor): | ||||
|     def _real_initialize(self): | ||||
|         self._request_webpage( | ||||
|             HEADRequest('https://kick.com/'), None, 'Setting up session', fatal=False, impersonate=True) | ||||
|         xsrf_token = self._get_cookies('https://kick.com/').get('XSRF-TOKEN') | ||||
|         if not xsrf_token: | ||||
|             self.write_debug('kick.com did not set XSRF-TOKEN cookie') | ||||
|         KickBaseIE._API_HEADERS = { | ||||
|             'Authorization': f'Bearer {xsrf_token.value}', | ||||
|             'X-XSRF-TOKEN': xsrf_token.value, | ||||
|         } if xsrf_token else {} | ||||
|     @functools.cached_property | ||||
|     def _api_headers(self): | ||||
|         token = traverse_obj( | ||||
|             self._get_cookies('https://kick.com/'), | ||||
|             ('session_token', 'value', {urllib.parse.unquote})) | ||||
|         return {'Authorization': f'Bearer {token}'} if token else {} | ||||
| 
 | ||||
|     def _call_api(self, path, display_id, note='Downloading API JSON', headers={}, **kwargs): | ||||
|         return self._download_json( | ||||
|             f'https://kick.com/api/{path}', display_id, note=note, | ||||
|             headers=merge_dicts(headers, self._API_HEADERS), impersonate=True, **kwargs) | ||||
|             headers={**self._api_headers, **headers}, impersonate=True, **kwargs) | ||||
| 
 | ||||
| 
 | ||||
| class KickIE(KickBaseIE): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user