mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[udemy:course] Skip non-video lectures
This commit is contained in:
		| @@ -193,12 +193,12 @@ class UdemyIE(InfoExtractor): | |||||||
|  |  | ||||||
|         asset = lecture['asset'] |         asset = lecture['asset'] | ||||||
|  |  | ||||||
|         asset_type = asset.get('assetType') or asset.get('asset_type') |         asset_type = asset.get('asset_type') or asset.get('assetType') | ||||||
|         if asset_type != 'Video': |         if asset_type != 'Video': | ||||||
|             raise ExtractorError( |             raise ExtractorError( | ||||||
|                 'Lecture %s is not a video' % lecture_id, expected=True) |                 'Lecture %s is not a video' % lecture_id, expected=True) | ||||||
|  |  | ||||||
|         stream_url = asset.get('streamUrl') or asset.get('stream_url') |         stream_url = asset.get('stream_url') or asset.get('streamUrl') | ||||||
|         if stream_url: |         if stream_url: | ||||||
|             youtube_url = self._search_regex( |             youtube_url = self._search_regex( | ||||||
|                 r'(https?://www\.youtube\.com/watch\?v=.*)', stream_url, 'youtube URL', default=None) |                 r'(https?://www\.youtube\.com/watch\?v=.*)', stream_url, 'youtube URL', default=None) | ||||||
| @@ -206,7 +206,7 @@ class UdemyIE(InfoExtractor): | |||||||
|                 return self.url_result(youtube_url, 'Youtube') |                 return self.url_result(youtube_url, 'Youtube') | ||||||
|  |  | ||||||
|         video_id = asset['id'] |         video_id = asset['id'] | ||||||
|         thumbnail = asset.get('thumbnailUrl') or asset.get('thumbnail_url') |         thumbnail = asset.get('thumbnail_url') or asset.get('thumbnailUrl') | ||||||
|         duration = float_or_none(asset.get('data', {}).get('duration')) |         duration = float_or_none(asset.get('data', {}).get('duration')) | ||||||
|  |  | ||||||
|         formats = [] |         formats = [] | ||||||
| @@ -325,7 +325,7 @@ class UdemyCourseIE(UdemyIE): | |||||||
|             'https://www.udemy.com/api-2.0/courses/%s/cached-subscriber-curriculum-items' % course_id, |             'https://www.udemy.com/api-2.0/courses/%s/cached-subscriber-curriculum-items' % course_id, | ||||||
|             course_id, 'Downloading course curriculum', query={ |             course_id, 'Downloading course curriculum', query={ | ||||||
|                 'fields[chapter]': 'title,object_index', |                 'fields[chapter]': 'title,object_index', | ||||||
|                 'fields[lecture]': 'title', |                 'fields[lecture]': 'title,asset', | ||||||
|                 'page_size': '1000', |                 'page_size': '1000', | ||||||
|             }) |             }) | ||||||
|  |  | ||||||
| @@ -334,6 +334,11 @@ class UdemyCourseIE(UdemyIE): | |||||||
|         for entry in response['results']: |         for entry in response['results']: | ||||||
|             clazz = entry.get('_class') |             clazz = entry.get('_class') | ||||||
|             if clazz == 'lecture': |             if clazz == 'lecture': | ||||||
|  |                 asset = entry.get('asset') | ||||||
|  |                 if isinstance(asset, dict): | ||||||
|  |                     asset_type = asset.get('asset_type') or asset.get('assetType') | ||||||
|  |                     if asset_type != 'Video': | ||||||
|  |                         continue | ||||||
|                 lecture_id = entry.get('id') |                 lecture_id = entry.get('id') | ||||||
|                 if lecture_id: |                 if lecture_id: | ||||||
|                     entry = { |                     entry = { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Sergey M․
					Sergey M․