39 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			39 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								import re
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								from .common import InfoExtractor
							 | 
						||
| 
								 | 
							
								from .ooyala import OoyalaIE
							 | 
						||
| 
								 | 
							
								from ..utils import ExtractorError
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class ViceIE(InfoExtractor):
							 | 
						||
| 
								 | 
							
								    _VALID_URL = r'http://www.vice.com/.*?/(?P<name>.+)'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    _TEST = {
							 | 
						||
| 
								 | 
							
								        u'url': u'http://www.vice.com/Fringes/cowboy-capitalists-part-1',
							 | 
						||
| 
								 | 
							
								        u'file': u'43cW1mYzpia9IlestBjVpd23Yu3afAfp.mp4',
							 | 
						||
| 
								 | 
							
								        u'info_dict': {
							 | 
						||
| 
								 | 
							
								            u'title': u'VICE_COWBOYCAPITALISTS_PART01_v1_VICE_WM_1080p.mov',
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        u'params': {
							 | 
						||
| 
								 | 
							
								            # Requires ffmpeg (m3u8 manifest)
							 | 
						||
| 
								 | 
							
								            u'skip_download': True,
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def _real_extract(self, url):
							 | 
						||
| 
								 | 
							
								        mobj = re.match(self._VALID_URL, url)
							 | 
						||
| 
								 | 
							
								        name = mobj.group('name')
							 | 
						||
| 
								 | 
							
								        webpage = self._download_webpage(url, name)
							 | 
						||
| 
								 | 
							
								        try:
							 | 
						||
| 
								 | 
							
								            ooyala_url = self._og_search_video_url(webpage)
							 | 
						||
| 
								 | 
							
								        except ExtractorError:
							 | 
						||
| 
								 | 
							
								            try:
							 | 
						||
| 
								 | 
							
								                embed_code = self._search_regex(
							 | 
						||
| 
								 | 
							
								                    r'OO.Player.create\(\'ooyalaplayer\', \'(.+?)\'', webpage,
							 | 
						||
| 
								 | 
							
								                    u'ooyala embed code')
							 | 
						||
| 
								 | 
							
								                ooyala_url = OoyalaIE._url_for_embed_code(embed_code)
							 | 
						||
| 
								 | 
							
								            except ExtractorError:
							 | 
						||
| 
								 | 
							
								                raise ExtractorError(u'The page doesn\'t contain a video', expected=True)
							 | 
						||
| 
								 | 
							
								        return self.url_result(ooyala_url, ie='Ooyala')
							 | 
						||
| 
								 | 
							
								
							 |