aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl/extractor/npo.py
diff options
context:
space:
mode:
Diffstat (limited to 'youtube_dl/extractor/npo.py')
-rw-r--r--youtube_dl/extractor/npo.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/youtube_dl/extractor/npo.py b/youtube_dl/extractor/npo.py
index ff02d0309..66035a77c 100644
--- a/youtube_dl/extractor/npo.py
+++ b/youtube_dl/extractor/npo.py
@@ -5,6 +5,7 @@ import re
from .common import InfoExtractor
from ..utils import (
fix_xml_ampersands,
+ orderedSet,
parse_duration,
qualities,
strip_jsonp,
@@ -446,7 +447,7 @@ class NPOPlaylistBaseIE(NPOIE):
entries = [
self.url_result('npo:%s' % video_id if not video_id.startswith('http') else video_id)
- for video_id in re.findall(self._PLAYLIST_ENTRY_RE, webpage)
+ for video_id in orderedSet(re.findall(self._PLAYLIST_ENTRY_RE, webpage))
]
playlist_title = self._html_search_regex(
@@ -508,3 +509,18 @@ class WNLIE(NPOPlaylistBaseIE):
},
'playlist_count': 4,
}]
+
+
+class AndereTijdenIE(NPOPlaylistBaseIE):
+ _VALID_URL = r'https?://(?:www\.)?anderetijden\.nl/programma/(?:[^/]+/)+(?P<id>[^/?#&]+)'
+ _PLAYLIST_TITLE_RE = r'(?s)<h1[^>]+class=["\'].*?\bpage-title\b.*?["\'][^>]*>(.+?)</h1>'
+ _PLAYLIST_ENTRY_RE = r'<figure[^>]+class=["\']episode-container episode-page["\'][^>]+data-prid=["\'](.+?)["\']'
+
+ _TESTS = [{
+ 'url': 'http://anderetijden.nl/programma/1/Andere-Tijden/aflevering/676/Duitse-soldaten-over-de-Slag-bij-Arnhem',
+ 'info_dict': {
+ 'id': 'Duitse-soldaten-over-de-Slag-bij-Arnhem',
+ 'title': 'Duitse soldaten over de Slag bij Arnhem',
+ },
+ 'playlist_count': 3,
+ }]