42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								# coding: utf-8
							 | 
						|||
| 
								 | 
							
								from __future__ import unicode_literals
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								from .common import InfoExtractor
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								class FootyRoomIE(InfoExtractor):
							 | 
						|||
| 
								 | 
							
								    _VALID_URL = r'http://footyroom\.com/(?P<id>[^/]+)'
							 | 
						|||
| 
								 | 
							
								    _TEST = {
							 | 
						|||
| 
								 | 
							
								        'url': 'http://footyroom.com/schalke-04-0-2-real-madrid-2015-02/',
							 | 
						|||
| 
								 | 
							
								        'info_dict': {
							 | 
						|||
| 
								 | 
							
								            'id': 'schalke-04-0-2-real-madrid-2015-02',
							 | 
						|||
| 
								 | 
							
								            'title': 'Schalke 04 0 – 2 Real Madrid',
							 | 
						|||
| 
								 | 
							
								        },
							 | 
						|||
| 
								 | 
							
								        'playlist_count': 3,
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    def _real_extract(self, url):
							 | 
						|||
| 
								 | 
							
								        playlist_id = self._match_id(url)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        webpage = self._download_webpage(url, playlist_id)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        playlist = self._parse_json(
							 | 
						|||
| 
								 | 
							
								            self._search_regex(
							 | 
						|||
| 
								 | 
							
								                r'VideoSelector\.load\((\[.+?\])\);', webpage, 'video selector'),
							 | 
						|||
| 
								 | 
							
								            playlist_id)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        playlist_title = self._og_search_title(webpage)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        entries = []
							 | 
						|||
| 
								 | 
							
								        for video in playlist:
							 | 
						|||
| 
								 | 
							
								            payload = video.get('payload')
							 | 
						|||
| 
								 | 
							
								            if not payload:
							 | 
						|||
| 
								 | 
							
								                continue
							 | 
						|||
| 
								 | 
							
								            playwire_url = self._search_regex(
							 | 
						|||
| 
								 | 
							
								                r'data-config="([^"]+)"', payload,
							 | 
						|||
| 
								 | 
							
								                'playwire url', default=None)
							 | 
						|||
| 
								 | 
							
								            if playwire_url:
							 | 
						|||
| 
								 | 
							
								                entries.append(self.url_result(playwire_url, 'Playwire'))
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        return self.playlist_result(entries, playlist_id, playlist_title)
							 |