mirror of
https://github.com/ytdl-org/youtube-dl.git
synced 2024-01-07 17:16:08 +00:00
[lynda:course] Add webpage extraction fallback (closes #12238)
This commit is contained in:
parent
0f57447de7
commit
f2980fddeb
|
@ -260,9 +260,24 @@ class LyndaCourseIE(LyndaBaseIE):
|
||||||
course_path = mobj.group('coursepath')
|
course_path = mobj.group('coursepath')
|
||||||
course_id = mobj.group('courseid')
|
course_id = mobj.group('courseid')
|
||||||
|
|
||||||
|
item_template = 'https://www.lynda.com/%s/%%s-4.html' % course_path
|
||||||
|
|
||||||
course = self._download_json(
|
course = self._download_json(
|
||||||
'https://www.lynda.com/ajax/player?courseId=%s&type=course' % course_id,
|
'https://www.lynda.com/ajax/player?courseId=%s&type=course' % course_id,
|
||||||
course_id, 'Downloading course JSON')
|
course_id, 'Downloading course JSON', fatal=False)
|
||||||
|
|
||||||
|
if not course:
|
||||||
|
webpage = self._download_webpage(url, course_id)
|
||||||
|
entries = [
|
||||||
|
self.url_result(
|
||||||
|
item_template % video_id, ie=LyndaIE.ie_key(),
|
||||||
|
video_id=video_id)
|
||||||
|
for video_id in re.findall(
|
||||||
|
r'data-video-id=["\'](\d+)', webpage)]
|
||||||
|
return self.playlist_result(
|
||||||
|
entries, course_id,
|
||||||
|
self._og_search_title(webpage, fatal=False),
|
||||||
|
self._og_search_description(webpage))
|
||||||
|
|
||||||
if course.get('Status') == 'NotFound':
|
if course.get('Status') == 'NotFound':
|
||||||
raise ExtractorError(
|
raise ExtractorError(
|
||||||
|
@ -283,7 +298,7 @@ class LyndaCourseIE(LyndaBaseIE):
|
||||||
if video_id:
|
if video_id:
|
||||||
entries.append({
|
entries.append({
|
||||||
'_type': 'url_transparent',
|
'_type': 'url_transparent',
|
||||||
'url': 'https://www.lynda.com/%s/%s-4.html' % (course_path, video_id),
|
'url': item_template % video_id,
|
||||||
'ie_key': LyndaIE.ie_key(),
|
'ie_key': LyndaIE.ie_key(),
|
||||||
'chapter': chapter.get('Title'),
|
'chapter': chapter.get('Title'),
|
||||||
'chapter_number': int_or_none(chapter.get('ChapterIndex')),
|
'chapter_number': int_or_none(chapter.get('ChapterIndex')),
|
||||||
|
|
Loading…
Reference in a new issue