projects
/
youtube-dl
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
179ffab
)
[lynda:course] Modernize and make more robust
author
Sergey M․
<dstftw@gmail.com>
Fri, 6 Nov 2015 17:10:07 +0000
(23:10 +0600)
committer
Sergey M․
<dstftw@gmail.com>
Fri, 6 Nov 2015 17:10:07 +0000
(23:10 +0600)
youtube_dl/extractor/lynda.py
patch
|
blob
|
history
diff --git
a/youtube_dl/extractor/lynda.py
b/youtube_dl/extractor/lynda.py
index 67f2025de8b0f2aa01108456da9e2443aa03f637..98474ded904bf084e4a518899416925bfb0be66b 100644
(file)
--- a/
youtube_dl/extractor/lynda.py
+++ b/
youtube_dl/extractor/lynda.py
@@
-210,14
+210,13
@@
class LyndaCourseIE(LyndaBaseIE):
course_path = mobj.group('coursepath')
course_id = mobj.group('courseid')
course_path = mobj.group('coursepath')
course_id = mobj.group('courseid')
-
page = self._download_webpage
(
+
course = self._download_json
(
'http://www.lynda.com/ajax/player?courseId=%s&type=course' % course_id,
course_id, 'Downloading course JSON')
'http://www.lynda.com/ajax/player?courseId=%s&type=course' % course_id,
course_id, 'Downloading course JSON')
- course_json = json.loads(page)
self._logout()
self._logout()
- if
'Status' in course_json and course_json['Status']
== 'NotFound':
+ if
course.get('Status')
== 'NotFound':
raise ExtractorError(
'Course %s does not exist' % course_id, expected=True)
raise ExtractorError(
'Course %s does not exist' % course_id, expected=True)
@@
-227,12
+226,14
@@
class LyndaCourseIE(LyndaBaseIE):
# Might want to extract videos right here from video['Formats'] as it seems 'Formats' is not provided
# by single video API anymore
# Might want to extract videos right here from video['Formats'] as it seems 'Formats' is not provided
# by single video API anymore
- for chapter in course
_json
['Chapters']:
- for video in chapter
['Videos']
:
- if video
['HasAccess']
is False:
+ for chapter in course['Chapters']:
+ for video in chapter
.get('Videos', [])
:
+ if video
.get('HasAccess')
is False:
unaccessible_videos += 1
continue
unaccessible_videos += 1
continue
- videos.append(video['ID'])
+ video_id = video.get('ID')
+ if video_id:
+ videos.append(video_id)
if unaccessible_videos > 0:
self._downloader.report_warning(
if unaccessible_videos > 0:
self._downloader.report_warning(
@@
-245,6
+246,6
@@
class LyndaCourseIE(LyndaBaseIE):
'Lynda')
for video_id in videos]
'Lynda')
for video_id in videos]
- course_title = course
_json['Title']
+ course_title = course
.get('Title')
return self.playlist_result(entries, course_id, course_title)
return self.playlist_result(entries, course_id, course_title)