[vpro] Fix extraction and add support for vpro playlists
This commit is contained in:
		@@ -389,7 +389,7 @@ from .npo import (
 | 
				
			|||||||
    NPOLiveIE,
 | 
					    NPOLiveIE,
 | 
				
			||||||
    NPORadioIE,
 | 
					    NPORadioIE,
 | 
				
			||||||
    NPORadioFragmentIE,
 | 
					    NPORadioFragmentIE,
 | 
				
			||||||
    TegenlichtVproIE,
 | 
					    VPROIE,
 | 
				
			||||||
    WNLIE
 | 
					    WNLIE
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
from .nrk import (
 | 
					from .nrk import (
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -404,9 +404,8 @@ class NPORadioFragmentIE(InfoExtractor):
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class TegenlichtVproIE(NPOIE):
 | 
					class VPROIE(NPOIE):
 | 
				
			||||||
    IE_NAME = 'tegenlicht.vpro.nl'
 | 
					    _VALID_URL = r'https?://(?:www\.)?(?:tegenlicht\.)?vpro\.nl/(?:[^/]+/){2,}(?P<id>[^/]+)\.html'
 | 
				
			||||||
    _VALID_URL = r'https?://tegenlicht\.vpro\.nl/afleveringen/.*?'
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    _TESTS = [
 | 
					    _TESTS = [
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
@@ -416,19 +415,35 @@ class TegenlichtVproIE(NPOIE):
 | 
				
			|||||||
                'id': 'VPWON_1169289',
 | 
					                'id': 'VPWON_1169289',
 | 
				
			||||||
                'ext': 'm4v',
 | 
					                'ext': 'm4v',
 | 
				
			||||||
                'title': 'Tegenlicht',
 | 
					                'title': 'Tegenlicht',
 | 
				
			||||||
                'description': 'md5:d6476bceb17a8c103c76c3b708f05dd1',
 | 
					                'description': 'md5:52cf4eefbc96fffcbdc06d024147abea',
 | 
				
			||||||
                'upload_date': '20130225',
 | 
					                '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):
 | 
					    def _real_extract(self, url):
 | 
				
			||||||
        name = url_basename(url)
 | 
					        playlist_id = self._match_id(url)
 | 
				
			||||||
        webpage = self._download_webpage(url, name)
 | 
					
 | 
				
			||||||
        urn = self._html_search_meta('mediaurn', webpage)
 | 
					        webpage = self._download_webpage(url, playlist_id)
 | 
				
			||||||
        info_page = self._download_json(
 | 
					
 | 
				
			||||||
            'http://rs.vpro.nl/v2/api/media/%s.json' % urn, name)
 | 
					        entries = [
 | 
				
			||||||
        return self._get_info(info_page['mid'])
 | 
					            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):
 | 
					class WNLIE(InfoExtractor):
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user