|
|
|
@ -7,19 +7,21 @@ from .common import InfoExtractor
|
|
|
|
|
from .gigya import GigyaBaseIE
|
|
|
|
|
from ..compat import compat_HTTPError
|
|
|
|
|
from ..utils import (
|
|
|
|
|
extract_attributes,
|
|
|
|
|
ExtractorError,
|
|
|
|
|
strip_or_none,
|
|
|
|
|
clean_html,
|
|
|
|
|
extract_attributes,
|
|
|
|
|
float_or_none,
|
|
|
|
|
get_element_by_class,
|
|
|
|
|
int_or_none,
|
|
|
|
|
merge_dicts,
|
|
|
|
|
str_or_none,
|
|
|
|
|
strip_or_none,
|
|
|
|
|
url_or_none,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CanvasIE(InfoExtractor):
|
|
|
|
|
_VALID_URL = r'https?://mediazone\.vrt\.be/api/v1/(?P<site_id>canvas|een|ketnet|vrt(?:video|nieuws)|sporza)/assets/(?P<id>[^/?#&]+)'
|
|
|
|
|
_VALID_URL = r'https?://mediazone\.vrt\.be/api/v1/(?P<site_id>canvas|een|ketnet|vrt(?:video|nieuws)|sporza|dako)/assets/(?P<id>[^/?#&]+)'
|
|
|
|
|
_TESTS = [{
|
|
|
|
|
'url': 'https://mediazone.vrt.be/api/v1/ketnet/assets/md-ast-4ac54990-ce66-4d00-a8ca-9eac86f4c475',
|
|
|
|
|
'md5': '68993eda72ef62386a15ea2cf3c93107',
|
|
|
|
@ -332,3 +334,51 @@ class VrtNUIE(GigyaBaseIE):
|
|
|
|
|
'display_id': display_id,
|
|
|
|
|
'season_number': int_or_none(page.get('episode_season')),
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class DagelijkseKostIE(InfoExtractor):
|
|
|
|
|
IE_DESC = 'dagelijksekost.een.be'
|
|
|
|
|
_VALID_URL = r'https?://dagelijksekost\.een\.be/gerechten/(?P<id>[^/?#&]+)'
|
|
|
|
|
_TEST = {
|
|
|
|
|
'url': 'https://dagelijksekost.een.be/gerechten/hachis-parmentier-met-witloof',
|
|
|
|
|
'md5': '30bfffc323009a3e5f689bef6efa2365',
|
|
|
|
|
'info_dict': {
|
|
|
|
|
'id': 'md-ast-27a4d1ff-7d7b-425e-b84f-a4d227f592fa',
|
|
|
|
|
'display_id': 'hachis-parmentier-met-witloof',
|
|
|
|
|
'ext': 'mp4',
|
|
|
|
|
'title': 'Hachis parmentier met witloof',
|
|
|
|
|
'description': 'md5:9960478392d87f63567b5b117688cdc5',
|
|
|
|
|
'thumbnail': r're:^https?://.*\.jpg$',
|
|
|
|
|
'duration': 283.02,
|
|
|
|
|
},
|
|
|
|
|
'expected_warnings': ['is not a supported codec'],
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
def _real_extract(self, url):
|
|
|
|
|
display_id = self._match_id(url)
|
|
|
|
|
webpage = self._download_webpage(url, display_id)
|
|
|
|
|
|
|
|
|
|
title = strip_or_none(get_element_by_class(
|
|
|
|
|
'dish-metadata__title', webpage
|
|
|
|
|
) or self._html_search_meta(
|
|
|
|
|
'twitter:title', webpage))
|
|
|
|
|
|
|
|
|
|
description = clean_html(get_element_by_class(
|
|
|
|
|
'dish-description', webpage)
|
|
|
|
|
) or self._html_search_meta(
|
|
|
|
|
('description', 'twitter:description', 'og:description'),
|
|
|
|
|
webpage)
|
|
|
|
|
|
|
|
|
|
video_id = self._html_search_regex(
|
|
|
|
|
r'data-url=(["\'])(?P<id>(?:(?!\1).)+)\1', webpage, 'video id',
|
|
|
|
|
group='id')
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
'_type': 'url_transparent',
|
|
|
|
|
'url': 'https://mediazone.vrt.be/api/v1/dako/assets/%s' % video_id,
|
|
|
|
|
'ie_key': CanvasIE.ie_key(),
|
|
|
|
|
'id': video_id,
|
|
|
|
|
'display_id': display_id,
|
|
|
|
|
'title': title,
|
|
|
|
|
'description': description,
|
|
|
|
|
}
|
|
|
|
|