diff options
author | Rogério Brito <rbrito@ime.usp.br> | 2018-01-04 03:48:53 -0200 |
---|---|---|
committer | Rogério Brito <rbrito@ime.usp.br> | 2018-01-04 03:48:53 -0200 |
commit | 9113dfef91df19343cf76c6274dd0a85258c1004 (patch) | |
tree | 357bea65ff97d11085714837737d0428fbf40a54 /youtube_dl/extractor/udemy.py | |
parent | 80893415fd8cecb59cb8ffbea17a183d4202f02e (diff) | |
parent | b4a0c9f9de9d715538a1718922d6ab01a40f7ce3 (diff) | |
download | youtube-dl-9113dfef91df19343cf76c6274dd0a85258c1004.zip youtube-dl-9113dfef91df19343cf76c6274dd0a85258c1004.tar.gz youtube-dl-9113dfef91df19343cf76c6274dd0a85258c1004.tar.bz2 |
Update upstream source from tag 'upstream/2017.12.31'
Update to upstream version '2017.12.31'
with Debian dir 1882f6f128562a71691f1092c6b611d46798c5c4
Diffstat (limited to 'youtube_dl/extractor/udemy.py')
-rw-r--r-- | youtube_dl/extractor/udemy.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/youtube_dl/extractor/udemy.py b/youtube_dl/extractor/udemy.py index 207c4a6..195f5ce 100644 --- 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( - 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( - (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): @@ -164,7 +164,7 @@ class UdemyIE(InfoExtractor): }) 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, @@ -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 + 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, |