projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of github.com:rg3/youtube-dl into weibo
[youtube-dl]
/
youtube_dl
/
extractor
/
udemy.py
diff --git
a/youtube_dl/extractor/udemy.py
b/youtube_dl/extractor/udemy.py
index 207c4a6a7ee8131c3e2e5d5823aefb336ad47c47..195f5ce78d308126a1077cda11a4c00b437343fe 100644
(file)
--- a/
youtube_dl/extractor/udemy.py
+++ b/
youtube_dl/extractor/udemy.py
@@
-62,11
+62,11
@@
class UdemyIE(InfoExtractor):
def _extract_course_info(self, webpage, video_id):
course = self._parse_json(
unescapeHTML(self._search_regex(
def _extract_course_info(self, webpage, video_id):
course = self._parse_json(
unescapeHTML(self._search_regex(
- r'ng-init=["\'].*\bcourse=({.+?});', webpage, 'course', default='{}')),
+ r'ng-init=["\'].*\bcourse=({.+?})[;"\']',
+ webpage, 'course', default='{}')),
video_id, fatal=False) or {}
course_id = course.get('id') or self._search_regex(
video_id, fatal=False) or {}
course_id = course.get('id') or self._search_regex(
- (r'"id"\s*:\s*(\d+)', r'data-course-id=["\'](\d+)'),
- webpage, 'course id')
+ r'data-course-id=["\'](\d+)', webpage, 'course id')
return course_id, course.get('title')
def _enroll_course(self, base_url, webpage, course_id):
return course_id, course.get('title')
def _enroll_course(self, base_url, webpage, course_id):
@@
-164,7
+164,7
@@
class UdemyIE(InfoExtractor):
})
response = self._download_webpage(
})
response = self._download_webpage(
- self._LOGIN_URL, None, 'Logging in
as %s' % username
,
+ self._LOGIN_URL, None, 'Logging in
'
,
data=urlencode_postdata(login_form),
headers={
'Referer': self._ORIGIN_URL,
data=urlencode_postdata(login_form),
headers={
'Referer': self._ORIGIN_URL,
@@
-257,6
+257,11
@@
class UdemyIE(InfoExtractor):
video_url = source.get('file') or source.get('src')
if not video_url or not isinstance(video_url, compat_str):
continue
video_url = source.get('file') or source.get('src')
if not video_url or not isinstance(video_url, compat_str):
continue
+ if source.get('type') == 'application/x-mpegURL' or determine_ext(video_url) == 'm3u8':
+ formats.extend(self._extract_m3u8_formats(
+ video_url, video_id, 'mp4', entry_protocol='m3u8_native',
+ m3u8_id='hls', fatal=False))
+ continue
format_id = source.get('label')
f = {
'url': video_url,
format_id = source.get('label')
f = {
'url': video_url,