|
|
@ -1,6 +1,12 @@ |
|
|
|
from __future__ import unicode_literals |
|
|
|
|
|
|
|
import re |
|
|
|
|
|
|
|
from .common import InfoExtractor |
|
|
|
from ..compat import ( |
|
|
|
compat_urllib_request, |
|
|
|
compat_urllib_parse, |
|
|
|
) |
|
|
|
from ..utils import ( |
|
|
|
fix_xml_ampersands, |
|
|
|
parse_duration, |
|
|
@ -39,7 +45,16 @@ class NPOBaseIE(InfoExtractor): |
|
|
|
class NPOIE(NPOBaseIE): |
|
|
|
IE_NAME = 'npo' |
|
|
|
IE_DESC = 'npo.nl and ntr.nl' |
|
|
|
_VALID_URL = r'https?://(?:www\.)?(?:npo|ntr)\.nl/(?!live|radio)(?:[^/]+/){2,}(?P<id>[^/?#]+)' |
|
|
|
_VALID_URL = r'''(?x) |
|
|
|
https?:// |
|
|
|
(?:www\.)? |
|
|
|
(?: |
|
|
|
npo\.nl/(?!live|radio)(?:[^/]+/){2}| |
|
|
|
ntr\.nl/(?:[^/]+/){2,}| |
|
|
|
omroepwnl\.nl/video/fragment/[^/]+__ |
|
|
|
) |
|
|
|
(?P<id>[^/?#]+) |
|
|
|
''' |
|
|
|
|
|
|
|
_TESTS = [ |
|
|
|
{ |
|
|
@ -112,6 +127,18 @@ class NPOIE(NPOBaseIE): |
|
|
|
'upload_date': '20150508', |
|
|
|
'duration': 599, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
'url': 'http://www.omroepwnl.nl/video/fragment/vandaag-de-dag-verkiezingen__POMS_WNL_853698', |
|
|
|
'md5': 'd30cd8417b8b9bca1fdff27428860d08', |
|
|
|
'info_dict': { |
|
|
|
'id': 'POW_00996502', |
|
|
|
'ext': 'm4v', |
|
|
|
'title': '''"Dit is wel een 'landslide'..."''', |
|
|
|
'description': 'md5:f8d66d537dfb641380226e31ca57b8e8', |
|
|
|
'upload_date': '20150508', |
|
|
|
'duration': 462, |
|
|
|
}, |
|
|
|
} |
|
|
|
] |
|
|
|
|
|
|
@ -127,6 +154,11 @@ class NPOIE(NPOBaseIE): |
|
|
|
transform_source=strip_jsonp, |
|
|
|
) |
|
|
|
|
|
|
|
# For some videos actual video id (prid) is different (e.g. for |
|
|
|
# http://www.omroepwnl.nl/video/fragment/vandaag-de-dag-verkiezingen__POMS_WNL_853698 |
|
|
|
# video id is POMS_WNL_853698 but prid is POW_00996502) |
|
|
|
video_id = metadata.get('prid') or video_id |
|
|
|
|
|
|
|
token = self._get_token(video_id) |
|
|
|
|
|
|
|
formats = [] |
|
|
|