diff options
| author | Sergey M․ <dstftw@gmail.com> | 2017-02-24 05:01:31 +0700 | 
|---|---|---|
| committer | Sergey M․ <dstftw@gmail.com> | 2017-02-24 05:01:31 +0700 | 
| commit | f2980fddeb587f113afe15cc3ecf4bfc3911ca67 (patch) | |
| tree | 038e0c539d3af5346b719b23791c10a921380c1f | |
| parent | 0f57447de790fb2434cdd80d819876859ac4fcc0 (diff) | |
[lynda:course] Add webpage extraction fallback (closes #12238)
| -rw-r--r-- | youtube_dl/extractor/lynda.py | 19 | 
1 files changed, 17 insertions, 2 deletions
| diff --git a/youtube_dl/extractor/lynda.py b/youtube_dl/extractor/lynda.py index da94eab56..d2f75296a 100644 --- a/youtube_dl/extractor/lynda.py +++ b/youtube_dl/extractor/lynda.py @@ -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')), | 
