|
|
@ -20,6 +20,7 @@ from ..utils import (
|
|
|
|
parse_duration,
|
|
|
|
parse_duration,
|
|
|
|
parse_iso8601,
|
|
|
|
parse_iso8601,
|
|
|
|
parse_age_limit,
|
|
|
|
parse_age_limit,
|
|
|
|
|
|
|
|
strip_or_none,
|
|
|
|
int_or_none,
|
|
|
|
int_or_none,
|
|
|
|
ExtractorError,
|
|
|
|
ExtractorError,
|
|
|
|
)
|
|
|
|
)
|
|
|
@ -129,6 +130,9 @@ class CBCIE(InfoExtractor):
|
|
|
|
def _real_extract(self, url):
|
|
|
|
def _real_extract(self, url):
|
|
|
|
display_id = self._match_id(url)
|
|
|
|
display_id = self._match_id(url)
|
|
|
|
webpage = self._download_webpage(url, display_id)
|
|
|
|
webpage = self._download_webpage(url, display_id)
|
|
|
|
|
|
|
|
title = self._og_search_title(webpage, default=None) or self._html_search_meta(
|
|
|
|
|
|
|
|
'twitter:title', webpage, 'title', default=None) or self._html_search_regex(
|
|
|
|
|
|
|
|
r'<title>([^<]+)</title>', webpage, 'title', fatal=False)
|
|
|
|
entries = [
|
|
|
|
entries = [
|
|
|
|
self._extract_player_init(player_init, display_id)
|
|
|
|
self._extract_player_init(player_init, display_id)
|
|
|
|
for player_init in re.findall(r'CBC\.APP\.Caffeine\.initInstance\(({.+?})\);', webpage)]
|
|
|
|
for player_init in re.findall(r'CBC\.APP\.Caffeine\.initInstance\(({.+?})\);', webpage)]
|
|
|
@ -136,8 +140,7 @@ class CBCIE(InfoExtractor):
|
|
|
|
self.url_result('cbcplayer:%s' % media_id, 'CBCPlayer', media_id)
|
|
|
|
self.url_result('cbcplayer:%s' % media_id, 'CBCPlayer', media_id)
|
|
|
|
for media_id in re.findall(r'<iframe[^>]+src="[^"]+?mediaId=(\d+)"', webpage)])
|
|
|
|
for media_id in re.findall(r'<iframe[^>]+src="[^"]+?mediaId=(\d+)"', webpage)])
|
|
|
|
return self.playlist_result(
|
|
|
|
return self.playlist_result(
|
|
|
|
entries, display_id,
|
|
|
|
entries, display_id, strip_or_none(title),
|
|
|
|
self._og_search_title(webpage, fatal=False),
|
|
|
|
|
|
|
|
self._og_search_description(webpage))
|
|
|
|
self._og_search_description(webpage))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|