Merge remote-tracking branch 'naglis/turbo'
This commit is contained in:
		
						commit
						c15dd15388
					
				| @ -365,6 +365,7 @@ from .trutube import TruTubeIE | |||||||
| from .tube8 import Tube8IE | from .tube8 import Tube8IE | ||||||
| from .tudou import TudouIE | from .tudou import TudouIE | ||||||
| from .tumblr import TumblrIE | from .tumblr import TumblrIE | ||||||
|  | from .turbo import TurboIE | ||||||
| from .tutv import TutvIE | from .tutv import TutvIE | ||||||
| from .tvigle import TvigleIE | from .tvigle import TvigleIE | ||||||
| from .tvp import TvpIE | from .tvp import TvpIE | ||||||
|  | |||||||
							
								
								
									
										67
									
								
								youtube_dl/extractor/turbo.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								youtube_dl/extractor/turbo.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,67 @@ | |||||||
|  | # coding: utf-8 | ||||||
|  | from __future__ import unicode_literals | ||||||
|  | 
 | ||||||
|  | import re | ||||||
|  | 
 | ||||||
|  | from .common import InfoExtractor | ||||||
|  | from ..utils import ( | ||||||
|  |     ExtractorError, | ||||||
|  |     int_or_none, | ||||||
|  |     qualities, | ||||||
|  |     xpath_text, | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class TurboIE(InfoExtractor): | ||||||
|  |     _VALID_URL = r'https?://(?:www\.)?turbo\.fr/videos-voiture/(?P<id>[0-9]+)-' | ||||||
|  |     _API_URL = 'http://www.turbo.fr/api/tv/xml.php?player_generique=player_generique&id={0:}' | ||||||
|  |     _TEST = { | ||||||
|  |         'url': 'http://www.turbo.fr/videos-voiture/454443-turbo-du-07-09-2014-renault-twingo-3-bentley-continental-gt-speed-ces-guide-achat-dacia.html', | ||||||
|  |         'md5': '33f4b91099b36b5d5a91f84b5bcba600', | ||||||
|  |         'info_dict': { | ||||||
|  |             'id': '454443', | ||||||
|  |             'ext': 'mp4', | ||||||
|  |             'duration': 3715, | ||||||
|  |             'title': 'Turbo du 07/09/2014 : Renault Twingo 3, Bentley Continental GT Speed, CES, Guide Achat Dacia... ', | ||||||
|  |             'description': 'Retrouvez dans cette rubrique toutes les vidéos de l\'Turbo du 07/09/2014 : Renault Twingo 3, Bentley Continental GT Speed, CES, Guide Achat Dacia... ', | ||||||
|  |             'thumbnail': 're:^https?://.*\.jpg$', | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     def _real_extract(self, url): | ||||||
|  |         mobj = re.match(self._VALID_URL, url) | ||||||
|  |         video_id = mobj.group('id') | ||||||
|  | 
 | ||||||
|  |         webpage = self._download_webpage(url, video_id) | ||||||
|  | 
 | ||||||
|  |         playlist = self._download_xml(self._API_URL.format(video_id), video_id) | ||||||
|  |         item = playlist.find('./channel/item') | ||||||
|  |         if item is None: | ||||||
|  |             raise ExtractorError('Playlist item was not found', expected=True) | ||||||
|  | 
 | ||||||
|  |         title = xpath_text(item, './title', 'title') | ||||||
|  |         duration = int_or_none(xpath_text(item, './durate', 'duration')) | ||||||
|  |         thumbnail = xpath_text(item, './visuel_clip', 'thumbnail') | ||||||
|  |         description = self._og_search_description(webpage) | ||||||
|  | 
 | ||||||
|  |         formats = [] | ||||||
|  |         get_quality = qualities(['3g', 'sd', 'hq']) | ||||||
|  |         for child in item: | ||||||
|  |             m = re.search(r'url_video_(?P<quality>.+)', child.tag) | ||||||
|  |             if m: | ||||||
|  |                 quality = m.group('quality') | ||||||
|  |                 formats.append({ | ||||||
|  |                     'format_id': quality, | ||||||
|  |                     'url': child.text, | ||||||
|  |                     'quality': get_quality(quality), | ||||||
|  |                 }) | ||||||
|  |         self._sort_formats(formats) | ||||||
|  | 
 | ||||||
|  |         return { | ||||||
|  |             'id': video_id, | ||||||
|  |             'title': title, | ||||||
|  |             'duration': duration, | ||||||
|  |             'thumbnail': thumbnail, | ||||||
|  |             'description': description, | ||||||
|  |             'formats': formats, | ||||||
|  |         } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user