mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 22:55:18 +00:00 
			
		
		
		
	[linkedin] Don't login multiple times
This commit is contained in:
		| @@ -19,6 +19,7 @@ from ..utils import ( | |||||||
| class LinkedInLearningBaseIE(InfoExtractor): | class LinkedInLearningBaseIE(InfoExtractor): | ||||||
|     _NETRC_MACHINE = 'linkedin' |     _NETRC_MACHINE = 'linkedin' | ||||||
|     _LOGIN_URL = 'https://www.linkedin.com/uas/login?trk=learning' |     _LOGIN_URL = 'https://www.linkedin.com/uas/login?trk=learning' | ||||||
|  |     _logged_in = False | ||||||
|  |  | ||||||
|     def _call_api(self, course_slug, fields, video_slug=None, resolution=None): |     def _call_api(self, course_slug, fields, video_slug=None, resolution=None): | ||||||
|         query = { |         query = { | ||||||
| @@ -34,6 +35,8 @@ class LinkedInLearningBaseIE(InfoExtractor): | |||||||
|             }) |             }) | ||||||
|             sub = ' %dp' % resolution |             sub = ' %dp' % resolution | ||||||
|         api_url = 'https://www.linkedin.com/learning-api/detailedCourses' |         api_url = 'https://www.linkedin.com/learning-api/detailedCourses' | ||||||
|  |         if not self._get_cookies(api_url).get('JSESSIONID'): | ||||||
|  |             self.raise_login_required() | ||||||
|         return self._download_json( |         return self._download_json( | ||||||
|             api_url, video_slug, 'Downloading%s JSON metadata' % sub, headers={ |             api_url, video_slug, 'Downloading%s JSON metadata' % sub, headers={ | ||||||
|                 'Csrf-Token': self._get_cookies(api_url)['JSESSIONID'].value, |                 'Csrf-Token': self._get_cookies(api_url)['JSESSIONID'].value, | ||||||
| @@ -50,6 +53,8 @@ class LinkedInLearningBaseIE(InfoExtractor): | |||||||
|         return self._get_urn_id(video_data) or '%s/%s' % (course_slug, video_slug) |         return self._get_urn_id(video_data) or '%s/%s' % (course_slug, video_slug) | ||||||
|  |  | ||||||
|     def _real_initialize(self): |     def _real_initialize(self): | ||||||
|  |         if self._logged_in: | ||||||
|  |             return | ||||||
|         email, password = self._get_login_info() |         email, password = self._get_login_info() | ||||||
|         if email is None: |         if email is None: | ||||||
|             return |             return | ||||||
| @@ -72,6 +77,7 @@ class LinkedInLearningBaseIE(InfoExtractor): | |||||||
|             login_submit_page, 'error', default=None) |             login_submit_page, 'error', default=None) | ||||||
|         if error: |         if error: | ||||||
|             raise ExtractorError(error, expected=True) |             raise ExtractorError(error, expected=True) | ||||||
|  |         LinkedInLearningBaseIE._logged_in = True | ||||||
|  |  | ||||||
|  |  | ||||||
| class LinkedInLearningIE(LinkedInLearningBaseIE): | class LinkedInLearningIE(LinkedInLearningBaseIE): | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 pukkandan
					pukkandan