mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	[linkedin:learning] extract chapter_number and chapter_id(closes #19162)
This commit is contained in:
		| @@ -34,12 +34,15 @@ class LinkedInLearningBaseIE(InfoExtractor): | ||||
|                 'Csrf-Token': self._get_cookies(api_url)['JSESSIONID'].value, | ||||
|             }, query=query)['elements'][0] | ||||
|  | ||||
|     def _get_video_id(self, urn, course_slug, video_slug): | ||||
|     def _get_urn_id(self, video_data): | ||||
|         urn = video_data.get('urn') | ||||
|         if urn: | ||||
|             mobj = re.search(r'urn:li:lyndaCourse:\d+,(\d+)', urn) | ||||
|             if mobj: | ||||
|                 return mobj.group(1) | ||||
|         return '%s/%s' % (course_slug, video_slug) | ||||
|  | ||||
|     def _get_video_id(self, video_data, course_slug, video_slug): | ||||
|         return self._get_urn_id(video_data) or '%s/%s' % (course_slug, video_slug) | ||||
|  | ||||
|     def _real_initialize(self): | ||||
|         email, password = self._get_login_info() | ||||
| @@ -123,7 +126,7 @@ class LinkedInLearningIE(LinkedInLearningBaseIE): | ||||
|         self._sort_formats(formats, ('width', 'height', 'source_preference', 'tbr', 'abr')) | ||||
|  | ||||
|         return { | ||||
|             'id': self._get_video_id(video_data.get('urn'), course_slug, video_slug), | ||||
|             'id': self._get_video_id(video_data, course_slug, video_slug), | ||||
|             'title': title, | ||||
|             'formats': formats, | ||||
|             'thumbnail': video_data.get('defaultThumbnail'), | ||||
| @@ -154,18 +157,21 @@ class LinkedInLearningCourseIE(LinkedInLearningBaseIE): | ||||
|         course_data = self._call_api(course_slug, 'chapters,description,title') | ||||
|  | ||||
|         entries = [] | ||||
|         for chapter in course_data.get('chapters', []): | ||||
|         for chapter_number, chapter in enumerate(course_data.get('chapters', []), 1): | ||||
|             chapter_title = chapter.get('title') | ||||
|             chapter_id = self._get_urn_id(chapter) | ||||
|             for video in chapter.get('videos', []): | ||||
|                 video_slug = video.get('slug') | ||||
|                 if not video_slug: | ||||
|                     continue | ||||
|                 entries.append({ | ||||
|                     '_type': 'url_transparent', | ||||
|                     'id': self._get_video_id(video.get('urn'), course_slug, video_slug), | ||||
|                     'id': self._get_video_id(video, course_slug, video_slug), | ||||
|                     'title': video.get('title'), | ||||
|                     'url': 'https://www.linkedin.com/learning/%s/%s' % (course_slug, video_slug), | ||||
|                     'chapter': chapter_title, | ||||
|                     'chapter_number': chapter_number, | ||||
|                     'chapter_id': chapter_id, | ||||
|                     'ie_key': LinkedInLearningIE.ie_key(), | ||||
|                 }) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Remita Amine
					Remita Amine