|
@ -4,11 +4,10 @@ import re |
|
|
|
|
|
|
|
|
from .common import InfoExtractor |
|
|
from .common import InfoExtractor |
|
|
from ..compat import ( |
|
|
from ..compat import ( |
|
|
compat_HTTPError, |
|
|
|
|
|
compat_urlparse, |
|
|
compat_urlparse, |
|
|
|
|
|
compat_str, |
|
|
) |
|
|
) |
|
|
from ..utils import ( |
|
|
from ..utils import ( |
|
|
ExtractorError, |
|
|
|
|
|
parse_duration, |
|
|
parse_duration, |
|
|
js_to_json, |
|
|
js_to_json, |
|
|
parse_iso8601, |
|
|
parse_iso8601, |
|
@ -97,9 +96,9 @@ class ViideaIE(InfoExtractor): |
|
|
|
|
|
|
|
|
webpage = self._download_webpage(url, lecture_slug) |
|
|
webpage = self._download_webpage(url, lecture_slug) |
|
|
|
|
|
|
|
|
cfg = self._parse_json(self._search_regex(r'cfg\s*:\s*({[^}]+})', webpage, 'cfg'), lecture_slug, js_to_json) |
|
|
|
|
|
|
|
|
cfg = self._parse_json(self._search_regex([r'cfg\s*:\s*({.+?}),[\da-zA-Z_]:\(?function', r'cfg\s*:\s*({[^}]+})'], webpage, 'cfg'), lecture_slug, js_to_json) |
|
|
|
|
|
|
|
|
lecture_id = str(cfg['obj_id']) |
|
|
|
|
|
|
|
|
lecture_id = compat_str(cfg['obj_id']) |
|
|
|
|
|
|
|
|
base_url = self._proto_relative_url(cfg['livepipe'], 'http:') |
|
|
base_url = self._proto_relative_url(cfg['livepipe'], 'http:') |
|
|
|
|
|
|
|
@ -118,7 +117,7 @@ class ViideaIE(InfoExtractor): |
|
|
parts = cfg.get('videos') |
|
|
parts = cfg.get('videos') |
|
|
if parts: |
|
|
if parts: |
|
|
if len(parts) == 1: |
|
|
if len(parts) == 1: |
|
|
part = str(parts[0]) |
|
|
|
|
|
|
|
|
part = compat_str(parts[0]) |
|
|
if part: |
|
|
if part: |
|
|
smil_url = '%s/%s/video/%s/smil.xml' % (base_url, lecture_slug, part) |
|
|
smil_url = '%s/%s/video/%s/smil.xml' % (base_url, lecture_slug, part) |
|
|
smil = self._download_smil(smil_url, lecture_id) |
|
|
smil = self._download_smil(smil_url, lecture_id) |
|
@ -132,7 +131,7 @@ class ViideaIE(InfoExtractor): |
|
|
for part in parts: |
|
|
for part in parts: |
|
|
entries.append(self.url_result('%s/%s/video/%s' % (base_url, lecture_slug, part), 'Viidea')) |
|
|
entries.append(self.url_result('%s/%s/video/%s' % (base_url, lecture_slug, part), 'Viidea')) |
|
|
lecture_info['_type'] = 'multi_video' |
|
|
lecture_info['_type'] = 'multi_video' |
|
|
else: |
|
|
|
|
|
|
|
|
if not parts or lecture_data.get('type') == 'evt': |
|
|
# Probably a playlist |
|
|
# Probably a playlist |
|
|
playlist_webpage = self._download_webpage('%s/site/ajax/drilldown/?id=%s' % (base_url, lecture_id), lecture_id) |
|
|
playlist_webpage = self._download_webpage('%s/site/ajax/drilldown/?id=%s' % (base_url, lecture_id), lecture_id) |
|
|
entries = [ |
|
|
entries = [ |
|
|