|
|
@ -17,7 +17,7 @@ from ..utils import ( |
|
|
|
class WDRIE(InfoExtractor): |
|
|
|
_CURRENT_MAUS_URL = r'https?://www.wdrmaus.de/aktuelle-sendung/(wdr|index).php5' |
|
|
|
_PAGE_REGEX = r'/mediathek/(?P<media_type>[^/]+)/(?P<type>[^/]+)/(?P<display_id>.+)\.html' |
|
|
|
_VALID_URL = r'(?P<page_url>https?://(?:www\d\.)?wdr\d?\.de)' + _PAGE_REGEX + "|" + _CURRENT_MAUS_URL |
|
|
|
_VALID_URL = r'(?P<page_url>https?://(?:www\d\.)?wdr\d?\.de)' + _PAGE_REGEX + '|' + _CURRENT_MAUS_URL |
|
|
|
|
|
|
|
_JS_URL_REGEX = r'(https?://deviceids-medp.wdr.de/ondemand/\d+/\d+\.js)' |
|
|
|
|
|
|
@ -116,23 +116,23 @@ class WDRIE(InfoExtractor): |
|
|
|
json_data = self._search_regex(r'\(({.*})\)', js_data, 'json') |
|
|
|
metadata = self._parse_json(json_data, display_id) |
|
|
|
|
|
|
|
metadata_tracker_data = metadata["trackerData"] |
|
|
|
metadata_media_resource = metadata["mediaResource"] |
|
|
|
metadata_tracker_data = metadata['trackerData'] |
|
|
|
metadata_media_resource = metadata['mediaResource'] |
|
|
|
|
|
|
|
formats = [] |
|
|
|
|
|
|
|
# check if the metadata contains a direct URL to a file |
|
|
|
metadata_media_alt = metadata_media_resource.get("alt") |
|
|
|
metadata_media_alt = metadata_media_resource.get('alt') |
|
|
|
if metadata_media_alt: |
|
|
|
for tag_name in ["videoURL", 'audioURL']: |
|
|
|
for tag_name in ['videoURL', 'audioURL']: |
|
|
|
if tag_name in metadata_media_alt: |
|
|
|
formats.append({ |
|
|
|
'url': metadata_media_alt[tag_name] |
|
|
|
}) |
|
|
|
|
|
|
|
# check if there are flash-streams for this video |
|
|
|
if "dflt" in metadata_media_resource and "videoURL" in metadata_media_resource["dflt"]: |
|
|
|
video_url = metadata_media_resource["dflt"]["videoURL"] |
|
|
|
if 'dflt' in metadata_media_resource and 'videoURL' in metadata_media_resource['dflt']: |
|
|
|
video_url = metadata_media_resource['dflt']['videoURL'] |
|
|
|
if video_url.endswith('.f4m'): |
|
|
|
full_video_url = video_url + '?hdcore=3.2.0&plugin=aasp-3.2.0.77.18' |
|
|
|
formats.extend(self._extract_f4m_formats(full_video_url, display_id, f4m_id='hds', fatal=False)) |
|
|
@ -140,13 +140,13 @@ class WDRIE(InfoExtractor): |
|
|
|
formats.extend(self._extract_smil_formats(video_url, 'stream', fatal=False)) |
|
|
|
|
|
|
|
subtitles = {} |
|
|
|
caption_url = metadata_media_resource.get("captionURL") |
|
|
|
caption_url = metadata_media_resource.get('captionURL') |
|
|
|
if caption_url: |
|
|
|
subtitles['de'] = [{ |
|
|
|
'url': caption_url |
|
|
|
}] |
|
|
|
|
|
|
|
title = metadata_tracker_data.get("trackerClipTitle") |
|
|
|
title = metadata_tracker_data.get('trackerClipTitle') |
|
|
|
is_live = url_type == 'live' |
|
|
|
|
|
|
|
if is_live: |
|
|
@ -163,13 +163,13 @@ class WDRIE(InfoExtractor): |
|
|
|
self._sort_formats(formats) |
|
|
|
|
|
|
|
return { |
|
|
|
'id': metadata_tracker_data.get("trackerClipId", display_id), |
|
|
|
'id': metadata_tracker_data.get('trackerClipId', display_id), |
|
|
|
'display_id': display_id, |
|
|
|
'title': title, |
|
|
|
'alt_title': metadata_tracker_data.get("trackerClipSubcategory"), |
|
|
|
'alt_title': metadata_tracker_data.get('trackerClipSubcategory'), |
|
|
|
'formats': formats, |
|
|
|
'upload_date': upload_date, |
|
|
|
'description': self._html_search_meta("Description", webpage), |
|
|
|
'description': self._html_search_meta('Description', webpage), |
|
|
|
'is_live': is_live, |
|
|
|
'subtitles': subtitles, |
|
|
|
} |
|
|
|