[ard] Extract episode information
This commit is contained in:
parent
663779e2e8
commit
0f6bfb1325
@ -471,6 +471,34 @@ class ARDBetaMediathekIE(InfoExtractor):
|
|||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
def _extract_episode_info(self, title):
|
||||||
|
patterns = [
|
||||||
|
r'.*(?P<ep_info> \(S(?P<season_number>\d+)/E(?P<episode_number>\d+)\)).*',
|
||||||
|
r'.*(?P<ep_info> \((?:Folge |Teil )?(?P<episode_number>\d+)(?:/\d+)?\)).*',
|
||||||
|
r'.*(?P<ep_info>Folge (?P<episode_number>\d+)(?:\:| -|) )\"(?P<episode>.+)\".*',
|
||||||
|
r'.*(?P<ep_info>Folge (?P<episode_number>\d+)(?:\:| -|) ).*',
|
||||||
|
]
|
||||||
|
res = {}
|
||||||
|
|
||||||
|
for pattern in patterns:
|
||||||
|
m = re.match(pattern, title)
|
||||||
|
if m:
|
||||||
|
groupdict = m.groupdict()
|
||||||
|
for int_entry in ['season_number', 'episode_number']:
|
||||||
|
res[int_entry] = int_or_none(groupdict.get(int_entry))
|
||||||
|
|
||||||
|
for str_entry in ['episode']:
|
||||||
|
res[str_entry] = str_or_none(groupdict.get(str_entry))
|
||||||
|
|
||||||
|
if groupdict.get('ep_info') and not res['episode']:
|
||||||
|
res['episode'] = str_or_none(title.replace(groupdict.get('ep_info'), ''))
|
||||||
|
|
||||||
|
if res['episode']:
|
||||||
|
res['episode'] = res['episode'].strip()
|
||||||
|
|
||||||
|
break
|
||||||
|
|
||||||
|
return res
|
||||||
|
|
||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
mobj = re.match(self._VALID_URL, url)
|
mobj = re.match(self._VALID_URL, url)
|
||||||
@ -480,6 +508,8 @@ class ARDBetaMediathekIE(InfoExtractor):
|
|||||||
webpage = self._download_webpage(url, display_id)
|
webpage = self._download_webpage(url, display_id)
|
||||||
data_json = self._search_regex(r'window\.__APOLLO_STATE__\s*=\s*(\{.*);\n', webpage, 'json')
|
data_json = self._search_regex(r'window\.__APOLLO_STATE__\s*=\s*(\{.*);\n', webpage, 'json')
|
||||||
data = self._parse_json(data_json, display_id)
|
data = self._parse_json(data_json, display_id)
|
||||||
|
#import json
|
||||||
|
#print(json.dumps(data, indent=2))
|
||||||
|
|
||||||
res = {
|
res = {
|
||||||
'id': video_id,
|
'id': video_id,
|
||||||
@ -568,4 +598,6 @@ class ARDBetaMediathekIE(InfoExtractor):
|
|||||||
'formats': formats,
|
'formats': formats,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
res.update(self._extract_episode_info(res.get('title')))
|
||||||
|
|
||||||
return res
|
return res
|
||||||
|
Loading…
x
Reference in New Issue
Block a user