|
|
|
@ -260,9 +260,24 @@ class LyndaCourseIE(LyndaBaseIE):
|
|
|
|
|
course_path = mobj.group('coursepath')
|
|
|
|
|
course_id = mobj.group('courseid')
|
|
|
|
|
|
|
|
|
|
item_template = 'https://www.lynda.com/%s/%%s-4.html' % course_path
|
|
|
|
|
|
|
|
|
|
course = self._download_json(
|
|
|
|
|
'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':
|
|
|
|
|
raise ExtractorError(
|
|
|
|
@ -283,7 +298,7 @@ class LyndaCourseIE(LyndaBaseIE):
|
|
|
|
|
if video_id:
|
|
|
|
|
entries.append({
|
|
|
|
|
'_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(),
|
|
|
|
|
'chapter': chapter.get('Title'),
|
|
|
|
|
'chapter_number': int_or_none(chapter.get('ChapterIndex')),
|
|
|
|
|