[zdf] extract episode info if available
This commit is contained in:
parent
049c0486bb
commit
d6f100b960
@ -1,6 +1,7 @@
|
|||||||
# coding: utf-8
|
# coding: utf-8
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
import json
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from .common import InfoExtractor
|
from .common import InfoExtractor
|
||||||
@ -17,7 +18,7 @@ from ..utils import (
|
|||||||
update_url_query,
|
update_url_query,
|
||||||
url_or_none,
|
url_or_none,
|
||||||
urljoin,
|
urljoin,
|
||||||
)
|
JSON_LD_RE)
|
||||||
|
|
||||||
|
|
||||||
class ZDFBaseIE(InfoExtractor):
|
class ZDFBaseIE(InfoExtractor):
|
||||||
@ -37,6 +38,19 @@ class ZDFBaseIE(InfoExtractor):
|
|||||||
group='json'),
|
group='json'),
|
||||||
video_id)
|
video_id)
|
||||||
|
|
||||||
|
def _extract_episode_info(self, webpage):
|
||||||
|
season_number = self._search_regex(r"Staffel\ ([0-9]+)", webpage, "season", fatal=False)
|
||||||
|
episode_number = self._search_regex(r"Folge\ ([0-9]+)", webpage, "episode", fatal=False)
|
||||||
|
json_ld = json.loads(self._search_regex(JSON_LD_RE, webpage, 'JSON-LD', group='json_ld', fatal=False))
|
||||||
|
episode = json_ld.get("name")
|
||||||
|
series = json_ld.get("publisher", {}).get("name")
|
||||||
|
return dict(
|
||||||
|
season_number=int_or_none(season_number),
|
||||||
|
episode_number=int_or_none(episode_number),
|
||||||
|
episode=episode.strip(),
|
||||||
|
series=series.strip()
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class ZDFIE(ZDFBaseIE):
|
class ZDFIE(ZDFBaseIE):
|
||||||
_VALID_URL = r'https?://www\.zdf\.de/(?:[^/]+/)*(?P<id>[^/?]+)\.html'
|
_VALID_URL = r'https?://www\.zdf\.de/(?:[^/]+/)*(?P<id>[^/?]+)\.html'
|
||||||
@ -231,7 +245,10 @@ class ZDFIE(ZDFBaseIE):
|
|||||||
if webpage:
|
if webpage:
|
||||||
player = self._extract_player(webpage, url, fatal=False)
|
player = self._extract_player(webpage, url, fatal=False)
|
||||||
if player:
|
if player:
|
||||||
return self._extract_regular(url, player, video_id)
|
extracted = self._extract_regular(url, player, video_id)
|
||||||
|
episode_info = self._extract_episode_info(webpage)
|
||||||
|
extracted.update(episode_info)
|
||||||
|
return extracted
|
||||||
|
|
||||||
return self._extract_mobile(video_id)
|
return self._extract_mobile(video_id)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user