aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2015-07-16 23:54:43 +0600
committerSergey M․ <dstftw@gmail.com>2015-07-16 23:54:43 +0600
commit525daedd5a092b0f5329952eee99a7dac5537433 (patch)
tree2ceb775d04dce39171b9813071e6554884a446c6
parente118031ef827e851e537daa5b439cf5c249ca88d (diff)
[npo] Add support for omroepwnl fragments
-rw-r--r--youtube_dl/extractor/npo.py34
1 files changed, 33 insertions, 1 deletions
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 @@ 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 = []