| 
									
										
										
										
											2014-12-12 02:57:36 +01:00
										 |  |  | # coding: utf-8 | 
					
						
							|  |  |  | from __future__ import unicode_literals | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from .common import InfoExtractor | 
					
						
							|  |  |  | from ..utils import ( | 
					
						
							|  |  |  |     unified_strdate, | 
					
						
							|  |  |  |     xpath_text, | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CinchcastIE(InfoExtractor): | 
					
						
							|  |  |  |     _VALID_URL = r'https?://player\.cinchcast\.com/.*?assetId=(?P<id>[0-9]+)' | 
					
						
							|  |  |  |     _TEST = { | 
					
						
							|  |  |  |         # Actual test is run in generic, look for undergroundwellness | 
					
						
							|  |  |  |         'url': 'http://player.cinchcast.com/?platformId=1&assetType=single&assetId=7141703', | 
					
						
							|  |  |  |         'only_matching': True, | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def _real_extract(self, url): | 
					
						
							|  |  |  |         video_id = self._match_id(url) | 
					
						
							|  |  |  |         doc = self._download_xml( | 
					
						
							|  |  |  |             'http://www.blogtalkradio.com/playerasset/mrss?assetType=single&assetId=%s' % video_id, | 
					
						
							|  |  |  |             video_id) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         item = doc.find('.//item') | 
					
						
							|  |  |  |         title = xpath_text(item, './title', fatal=True) | 
					
						
							|  |  |  |         date_str = xpath_text( | 
					
						
							|  |  |  |             item, './{http://developer.longtailvideo.com/trac/}date') | 
					
						
							|  |  |  |         upload_date = unified_strdate(date_str, day_first=False) | 
					
						
							|  |  |  |         # duration is present but wrong | 
					
						
							| 
									
										
										
										
											2015-01-30 10:59:07 +01:00
										 |  |  |         formats = [{ | 
					
						
							|  |  |  |             'format_id': 'main', | 
					
						
							|  |  |  |             'url': item.find('./{http://search.yahoo.com/mrss/}content').attrib['url'], | 
					
						
							|  |  |  |         }] | 
					
						
							| 
									
										
										
										
											2014-12-12 02:57:36 +01:00
										 |  |  |         backup_url = xpath_text( | 
					
						
							|  |  |  |             item, './{http://developer.longtailvideo.com/trac/}backupContent') | 
					
						
							|  |  |  |         if backup_url: | 
					
						
							|  |  |  |             formats.append({ | 
					
						
							|  |  |  |                 'preference': 2,  # seems to be more reliable | 
					
						
							|  |  |  |                 'format_id': 'backup', | 
					
						
							|  |  |  |                 'url': backup_url, | 
					
						
							|  |  |  |             }) | 
					
						
							|  |  |  |         self._sort_formats(formats) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return { | 
					
						
							|  |  |  |             'id': video_id, | 
					
						
							|  |  |  |             'title': title, | 
					
						
							|  |  |  |             'upload_date': upload_date, | 
					
						
							|  |  |  |             'formats': formats, | 
					
						
							|  |  |  |         } |