[chilloutzone] Bug fix, runs against tests
Fixes a bug with python3.3 and made the extractor run successfully against tox
This commit is contained in:
		
							parent
							
								
									46a073bfac
								
							
						
					
					
						commit
						cd8662de22
					
				| @ -9,92 +9,85 @@ video_container = ('.mp4', '.mkv', '.flv') | |||||||
| 
 | 
 | ||||||
| class ChilloutzoneIE(InfoExtractor): | class ChilloutzoneIE(InfoExtractor): | ||||||
|     _VALID_URL = r'(?:https?://)?(?:www\.)?chilloutzone\.net/video/(?P<id>[\w|-]+).html' |     _VALID_URL = r'(?:https?://)?(?:www\.)?chilloutzone\.net/video/(?P<id>[\w|-]+).html' | ||||||
| 
 |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|     	u'url': u'http://www.chilloutzone.net/video/enemene-meck-alle-katzen-weg.html', |         'url': 'http://www.chilloutzone.net/video/enemene-meck-alle-katzen-weg.html', | ||||||
|     	u'file': u'18088-enemene-meck-alle-katzen-weg.mp4', |         'md5': 'a76f3457e813ea0037e5244f509e66d1', | ||||||
|     	u'md5': u'a76f3457e813ea0037e5244f509e66d1', |         'info_dict': { | ||||||
|     	u'info_dict': { |             'id': 'enemene-meck-alle-katzen-weg', | ||||||
|         	u"id": u"18088", |             'ext': 'mp4', | ||||||
|         	u"ext": u"mp4", |             'title': 'Enemene Meck - Alle Katzen weg', | ||||||
|         	u"title": u"Enemene Meck - Alle Katzen weg" |         }, | ||||||
|     	} |     } | ||||||
| 	} |  | ||||||
| 
 | 
 | ||||||
|     def _real_extract(self, url): |     def _real_extract(self, url): | ||||||
|         mobj = re.match(self._VALID_URL, url) |         mobj = re.match(self._VALID_URL, url) | ||||||
|     	video_id = mobj.group('id') |         video_id = mobj.group('id') | ||||||
| 
 | 
 | ||||||
|     	webpage_url = 'http://www.chilloutzone.net/video/' + video_id + '.html' |         webpage_url = 'http://www.chilloutzone.net/video/' + video_id + '.html' | ||||||
| 
 | 
 | ||||||
|     	# Log that we are starting to download the page |         # Log that we are starting to download the page | ||||||
|     	self.report_download_webpage(webpage_url) |         self.report_download_webpage(webpage_url) | ||||||
|     	webpage = self._download_webpage(webpage_url, video_id) |         webpage = self._download_webpage(webpage_url, video_id) | ||||||
| 	 |      | ||||||
|  |         # Log that we are starting to parse the page | ||||||
|  |         self.report_extraction(video_id)         | ||||||
|  |         # Find base64 decoded file info | ||||||
|  |         base64_video_info = self._html_search_regex(r'var cozVidData = "(.+?)";', webpage, u'video Data') | ||||||
|  |         # decode string and find video file | ||||||
|  |         decoded_video_info = base64.b64decode(base64_video_info).decode("utf-8") | ||||||
|  |         video_info_dict = json.loads(decoded_video_info) | ||||||
|  |         # get video information from dict | ||||||
|  |         media_url = video_info_dict['mediaUrl'] | ||||||
|  |         description = video_info_dict['description'] | ||||||
|  |         title = video_info_dict['title'] | ||||||
|  |         native_platform = video_info_dict['nativePlatform'] | ||||||
|  |         native_video_id = video_info_dict['nativeVideoId'] | ||||||
|  |         source_priority = video_info_dict['sourcePriority'] | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     	# Log that we are starting to parse the page |         # Start video extraction | ||||||
|     	self.report_extraction(video_id)    	 |         video_url = '' | ||||||
|     	# Find base64 decoded file info |         # If nativePlatform is None a fallback mechanism is used (i.e. youtube embed) | ||||||
|     	base64_video_info = self._html_search_regex(r'var cozVidData = "(.+?)";', webpage, u'video Data') |         if native_platform == None: | ||||||
|     	# decode string and find video file |             # Look for other video urls | ||||||
|     	decoded_video_info = base64.b64decode(base64_video_info) |             video_url = self._html_search_regex(r'<iframe.* src="(.+?)".*', webpage, u'fallback Video URL') | ||||||
|     	video_info_dict = json.loads(decoded_video_info) |             if 'youtube' in video_url: | ||||||
|     	# get video information from dict |                 self.to_screen(u'Youtube video detected:') | ||||||
|     	media_url = video_info_dict['mediaUrl'] |                 return self.url_result(video_url, ie='Youtube') | ||||||
|     	description = video_info_dict['description'] |  | ||||||
|     	title = video_info_dict['title'] |  | ||||||
|     	native_platform = video_info_dict['nativePlatform'] |  | ||||||
|     	native_video_id = video_info_dict['nativeVideoId'] |  | ||||||
|     	source_priority = video_info_dict['sourcePriority'] |  | ||||||
| 
 | 
 | ||||||
|  |         # For debugging purposes | ||||||
|  |         #print video_info_dict | ||||||
|  |         #print native_platform | ||||||
|  |         #print native_video_id | ||||||
|  |         #print source_priority | ||||||
|  |         #print media_url | ||||||
| 
 | 
 | ||||||
|     	# Start video extraction |         # Non Fallback: Decide to use native source (e.g. youtube or vimeo) or | ||||||
|     	video_url = '' |         # the own CDN | ||||||
|     	# If nativePlatform is None a fallback mechanism is used (i.e. youtube embed) |         if source_priority == 'native': | ||||||
|     	if native_platform == None: |             if native_platform == 'youtube': | ||||||
|     		# Look for other video urls |  | ||||||
|     		video_url = self._html_search_regex(r'<iframe.* src="(.+?)".*', webpage, u'fallback Video URL') |  | ||||||
|     		if 'youtube' in video_url: |  | ||||||
|     			self.to_screen(u'Youtube video detected:') |  | ||||||
|     			print video_url |  | ||||||
|     			return self.url_result(video_url, ie='Youtube') |  | ||||||
| 
 |  | ||||||
|     	# For debugging purposes |  | ||||||
|     	#print video_info_dict |  | ||||||
|     	#print native_platform |  | ||||||
|     	#print native_video_id |  | ||||||
|     	#print source_priority |  | ||||||
|     	#print media_url |  | ||||||
| 
 |  | ||||||
|     	# Non Fallback: Decide to use native source (e.g. youtube or vimeo) or |  | ||||||
|     	# the own CDN |  | ||||||
|     	if source_priority == 'native': |  | ||||||
|     	    if native_platform == 'youtube': |  | ||||||
|                 self.to_screen(u'Youtube video detected:') |                 self.to_screen(u'Youtube video detected:') | ||||||
|                 video_url = 'https://www.youtube.com/watch?v=' + native_video_id |                 video_url = 'https://www.youtube.com/watch?v=' + native_video_id | ||||||
|                 print video_url |  | ||||||
|                 return self.url_result(video_url, ie='Youtube')  |                 return self.url_result(video_url, ie='Youtube')  | ||||||
|             if native_platform == 'vimeo': |             if native_platform == 'vimeo': | ||||||
|     	        self.to_screen(u'Vimeo video detected:') |                 self.to_screen(u'Vimeo video detected:') | ||||||
|                 video_url = 'http://vimeo.com/' + native_video_id |                 video_url = 'http://vimeo.com/' + native_video_id | ||||||
|                 print video_url |  | ||||||
|                 return self.url_result(video_url, ie='Vimeo') |                 return self.url_result(video_url, ie='Vimeo') | ||||||
| 
 | 
 | ||||||
|         # No redirect, use coz media url |         # No redirect, use coz media url | ||||||
|         video_url = media_url |         video_url = media_url | ||||||
|         if video_url.endswith('.mp4') == False: |         if video_url.endswith('.mp4') == False: | ||||||
| 			self.report_warning(u'Url does not contain a video container') |             self.report_warning(u'Url does not contain a video container') | ||||||
| 			return [] |             return [] | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|         return [{ |         return [{ | ||||||
|     		'id':        video_id, |             'id':        video_id, | ||||||
|     		'url':       video_url, |             'url':       video_url, | ||||||
|     		'ext':       'mp4', |             'ext':       'mp4', | ||||||
|     		'title':     title, |             'title':     title, | ||||||
|     		'description': description |             'description': description, | ||||||
| 		}] |         }] | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user