[mtv] Prepare for #980
This commit is contained in:
		
							parent
							
								
									2f5865cc6d
								
							
						
					
					
						commit
						f13d09332d
					
				| @ -54,23 +54,26 @@ class MTVIE(InfoExtractor): | |||||||
|     def _get_thumbnail_url(self, uri, itemdoc): |     def _get_thumbnail_url(self, uri, itemdoc): | ||||||
|         return 'http://mtv.mtvnimages.com/uri/' + uri |         return 'http://mtv.mtvnimages.com/uri/' + uri | ||||||
| 
 | 
 | ||||||
|     def _extract_video_url(self, metadataXml): |     def _extract_video_formats(self, metadataXml): | ||||||
|         if '/error_country_block.swf' in metadataXml: |         if '/error_country_block.swf' in metadataXml: | ||||||
|             raise ExtractorError(u'This video is not available from your country.', expected=True) |             raise ExtractorError(u'This video is not available from your country.', expected=True) | ||||||
|         mdoc = xml.etree.ElementTree.fromstring(metadataXml.encode('utf-8')) |         mdoc = xml.etree.ElementTree.fromstring(metadataXml.encode('utf-8')) | ||||||
|         renditions = mdoc.findall('.//rendition') |         renditions = mdoc.findall('.//rendition') | ||||||
| 
 | 
 | ||||||
|         # For now, always pick the highest quality. |         formats = [] | ||||||
|         rendition = renditions[-1] |         for rendition in mdoc.findall('.//rendition'): | ||||||
| 
 |             try: | ||||||
|         try: |                 _, _, ext = rendition.attrib['type'].partition('/') | ||||||
|             _,_,ext = rendition.attrib['type'].partition('/') |                 rtmp_video_url = rendition.find('./src').text | ||||||
|             format = ext + '-' + rendition.attrib['width'] + 'x' + rendition.attrib['height'] + '_' + rendition.attrib['bitrate'] |                 formats.append({'ext': ext, | ||||||
|             rtmp_video_url = rendition.find('./src').text |                                 'url': self._transform_rtmp_url(rtmp_video_url), | ||||||
|         except KeyError: |                                 'format_id': rendition.get('bitrate'), | ||||||
|             raise ExtractorError('Invalid rendition field.') |                                 'width': int(rendition.get('width')), | ||||||
|         video_url = self._transform_rtmp_url(rtmp_video_url) |                                 'height': int(rendition.get('height')), | ||||||
|         return {'ext': ext, 'url': video_url, 'format': format} |                                 }) | ||||||
|  |             except (KeyError, TypeError): | ||||||
|  |                 raise ExtractorError('Invalid rendition field.') | ||||||
|  |         return formats | ||||||
| 
 | 
 | ||||||
|     def _get_video_info(self, itemdoc): |     def _get_video_info(self, itemdoc): | ||||||
|         uri = itemdoc.find('guid').text |         uri = itemdoc.find('guid').text | ||||||
| @ -81,19 +84,25 @@ class MTVIE(InfoExtractor): | |||||||
|             mediagen_url += '&acceptMethods=fms' |             mediagen_url += '&acceptMethods=fms' | ||||||
|         mediagen_page = self._download_webpage(mediagen_url, video_id, |         mediagen_page = self._download_webpage(mediagen_url, video_id, | ||||||
|                                                u'Downloading video urls') |                                                u'Downloading video urls') | ||||||
|         video_info = self._extract_video_url(mediagen_page) |  | ||||||
| 
 | 
 | ||||||
|         description_node = itemdoc.find('description') |         description_node = itemdoc.find('description') | ||||||
|         if description_node is not None: |         if description_node is not None: | ||||||
|             description = description_node.text |             description = description_node.text | ||||||
|         else: |         else: | ||||||
|             description = None |             description = None | ||||||
|         video_info.update({'title': itemdoc.find('title').text, | 
 | ||||||
|                            'id': video_id, |         info = { | ||||||
|                            'thumbnail': self._get_thumbnail_url(uri, itemdoc), |             'title': itemdoc.find('title').text, | ||||||
|                            'description': description, |             'formats': self._extract_video_formats(mediagen_page), | ||||||
|                            }) |             'id': video_id, | ||||||
|         return video_info |             'thumbnail': self._get_thumbnail_url(uri, itemdoc), | ||||||
|  |             'description': description, | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         # TODO: Remove when #980 has been merged | ||||||
|  |         info.update(info['formats'][-1]) | ||||||
|  | 
 | ||||||
|  |         return info | ||||||
| 
 | 
 | ||||||
|     def _get_videos_info(self, uri): |     def _get_videos_info(self, uri): | ||||||
|         video_id = self._id_from_uri(uri) |         video_id = self._id_from_uri(uri) | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user