From 525daedd5a092b0f5329952eee99a7dac5537433 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergey=20M=E2=80=A4?= Date: Thu, 16 Jul 2015 23:54:43 +0600 Subject: [PATCH] [npo] Add support for omroepwnl fragments --- youtube_dl/extractor/npo.py | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/youtube_dl/extractor/npo.py b/youtube_dl/extractor/npo.py index 1c823ec7f..a5162c0c6 100644 --- a/youtube_dl/extractor/npo.py +++ b/youtube_dl/extractor/npo.py @@ -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 @@ def _get_token(self, video_id): 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[^/?#]+)' + _VALID_URL = r'''(?x) + https?:// + (?:www\.)? + (?: + npo\.nl/(?!live|radio)(?:[^/]+/){2}| + ntr\.nl/(?:[^/]+/){2,}| + omroepwnl\.nl/video/fragment/[^/]+__ + ) + (?P[^/?#]+) + ''' _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 @@ def _get_info(self, video_id): 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 = []