|
|
|
@ -58,6 +58,10 @@ class UdemyIE(InfoExtractor):
|
|
|
|
|
# no url in outputs format entry
|
|
|
|
|
'url': 'https://www.udemy.com/learn-web-development-complete-step-by-step-guide-to-success/learn/v4/t/lecture/4125812',
|
|
|
|
|
'only_matching': True,
|
|
|
|
|
}, {
|
|
|
|
|
# only outputs rendition
|
|
|
|
|
'url': 'https://www.udemy.com/how-you-can-help-your-local-community-5-amazing-examples/learn/v4/t/lecture/3225750?start=0',
|
|
|
|
|
'only_matching': True,
|
|
|
|
|
}]
|
|
|
|
|
|
|
|
|
|
def _extract_course_info(self, webpage, video_id):
|
|
|
|
@ -357,6 +361,12 @@ class UdemyIE(InfoExtractor):
|
|
|
|
|
fatal=False)
|
|
|
|
|
extract_subtitles(text_tracks)
|
|
|
|
|
|
|
|
|
|
if not formats and outputs:
|
|
|
|
|
for format_id, output in outputs.items():
|
|
|
|
|
f = extract_output_format(output, format_id)
|
|
|
|
|
if f.get('url'):
|
|
|
|
|
formats.append(f)
|
|
|
|
|
|
|
|
|
|
self._sort_formats(formats, field_preference=('height', 'width', 'tbr', 'format_id'))
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|