[atresplayer] Add authentication support (Closes #4700)
This commit is contained in:
		
							parent
							
								
									4cfaf85c65
								
							
						
					
					
						commit
						c8dfe360eb
					
				| @ -4,9 +4,12 @@ import time | |||||||
| import hmac | import hmac | ||||||
| 
 | 
 | ||||||
| from .common import InfoExtractor | from .common import InfoExtractor | ||||||
| from ..utils import ( | from ..compat import ( | ||||||
|     compat_str, |     compat_str, | ||||||
|  |     compat_urllib_parse, | ||||||
|     compat_urllib_request, |     compat_urllib_request, | ||||||
|  | ) | ||||||
|  | from ..utils import ( | ||||||
|     int_or_none, |     int_or_none, | ||||||
|     float_or_none, |     float_or_none, | ||||||
|     xpath_text, |     xpath_text, | ||||||
| @ -44,6 +47,33 @@ class AtresPlayerIE(InfoExtractor): | |||||||
|     _PLAYER_URL_TEMPLATE = 'https://servicios.atresplayer.com/episode/getplayer.json?episodePk=%s' |     _PLAYER_URL_TEMPLATE = 'https://servicios.atresplayer.com/episode/getplayer.json?episodePk=%s' | ||||||
|     _EPISODE_URL_TEMPLATE = 'http://www.atresplayer.com/episodexml/%s' |     _EPISODE_URL_TEMPLATE = 'http://www.atresplayer.com/episodexml/%s' | ||||||
| 
 | 
 | ||||||
|  |     _LOGIN_URL = 'https://servicios.atresplayer.com/j_spring_security_check' | ||||||
|  | 
 | ||||||
|  |     def _real_initialize(self): | ||||||
|  |         self._login() | ||||||
|  | 
 | ||||||
|  |     def _login(self): | ||||||
|  |         (username, password) = self._get_login_info() | ||||||
|  |         if username is None: | ||||||
|  |             return | ||||||
|  | 
 | ||||||
|  |         login_form = { | ||||||
|  |             'j_username': username, | ||||||
|  |             'j_password': password, | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         request = compat_urllib_request.Request( | ||||||
|  |             self._LOGIN_URL, compat_urllib_parse.urlencode(login_form).encode('utf-8')) | ||||||
|  |         request.add_header('Content-Type', 'application/x-www-form-urlencoded') | ||||||
|  |         response = self._download_webpage( | ||||||
|  |             request, None, 'Logging in as %s' % username) | ||||||
|  | 
 | ||||||
|  |         error = self._html_search_regex( | ||||||
|  |             r'(?s)<ul class="list_error">(.+?)</ul>', response, 'error', default=None) | ||||||
|  |         if error: | ||||||
|  |             raise ExtractorError( | ||||||
|  |                 'Unable to login: %s' % error, expected=True) | ||||||
|  | 
 | ||||||
|     def _real_extract(self, url): |     def _real_extract(self, url): | ||||||
|         video_id = self._match_id(url) |         video_id = self._match_id(url) | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user