|
@@ -404,9 +404,8 @@ class NPORadioFragmentIE(InfoExtractor):
|
|
|
}
|
|
|
|
|
|
|
|
|
-class TegenlichtVproIE(NPOIE):
|
|
|
- IE_NAME = 'tegenlicht.vpro.nl'
|
|
|
- _VALID_URL = r'https?://tegenlicht\.vpro\.nl/afleveringen/.*?'
|
|
|
+class VPROIE(NPOIE):
|
|
|
+ _VALID_URL = r'https?://(?:www\.)?(?:tegenlicht\.)?vpro\.nl/(?:[^/]+/){2,}(?P<id>[^/]+)\.html'
|
|
|
|
|
|
_TESTS = [
|
|
|
{
|
|
@@ -416,19 +415,35 @@ class TegenlichtVproIE(NPOIE):
|
|
|
'id': 'VPWON_1169289',
|
|
|
'ext': 'm4v',
|
|
|
'title': 'Tegenlicht',
|
|
|
- 'description': 'md5:d6476bceb17a8c103c76c3b708f05dd1',
|
|
|
+ 'description': 'md5:52cf4eefbc96fffcbdc06d024147abea',
|
|
|
'upload_date': '20130225',
|
|
|
},
|
|
|
},
|
|
|
+ {
|
|
|
+ 'url': 'http://www.vpro.nl/programmas/2doc/2015/sergio-herman.html',
|
|
|
+ 'info_dict': {
|
|
|
+ 'id': 'sergio-herman',
|
|
|
+ 'title': 'Sergio Herman: Fucking perfect',
|
|
|
+ },
|
|
|
+ 'playlist_count': 2,
|
|
|
+ }
|
|
|
]
|
|
|
|
|
|
def _real_extract(self, url):
|
|
|
- name = url_basename(url)
|
|
|
- webpage = self._download_webpage(url, name)
|
|
|
- urn = self._html_search_meta('mediaurn', webpage)
|
|
|
- info_page = self._download_json(
|
|
|
- 'http://rs.vpro.nl/v2/api/media/%s.json' % urn, name)
|
|
|
- return self._get_info(info_page['mid'])
|
|
|
+ playlist_id = self._match_id(url)
|
|
|
+
|
|
|
+ webpage = self._download_webpage(url, playlist_id)
|
|
|
+
|
|
|
+ entries = [
|
|
|
+ self.url_result('npo:%s' % video_id, 'NPO')
|
|
|
+ for video_id in re.findall(r'data-media-id="([^"]+)"', webpage)
|
|
|
+ ]
|
|
|
+
|
|
|
+ playlist_title = self._search_regex(
|
|
|
+ r'<title>\s*([^>]+?)\s*-\s*Teledoc\s*-\s*VPRO\s*</title>',
|
|
|
+ webpage, 'playlist title', default=None) or self._og_search_title(webpage)
|
|
|
+
|
|
|
+ return self.playlist_result(entries, playlist_id, playlist_title)
|
|
|
|
|
|
|
|
|
class WNLIE(InfoExtractor):
|