| 
									
										
										
										
											2014-06-10 19:37:38 +07:00
										 |  |  | from __future__ import unicode_literals | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-09 19:39:41 +01:00
										 |  |  | import re | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from .common import InfoExtractor | 
					
						
							| 
									
										
										
										
											2014-06-10 19:37:38 +07:00
										 |  |  | from ..utils import ( | 
					
						
							|  |  |  |     month_by_name, | 
					
						
							|  |  |  |     int_or_none, | 
					
						
							|  |  |  | ) | 
					
						
							| 
									
										
										
										
											2013-12-09 19:39:41 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class NDTVIE(InfoExtractor): | 
					
						
							|  |  |  |     _VALID_URL = r'^https?://(?:www\.)?ndtv\.com/video/player/[^/]*/[^/]*/(?P<id>[a-z0-9]+)' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     _TEST = { | 
					
						
							| 
									
										
										
										
											2014-06-10 19:37:38 +07:00
										 |  |  |         'url': 'http://www.ndtv.com/video/player/news/ndtv-exclusive-don-t-need-character-certificate-from-rahul-gandhi-says-arvind-kejriwal/300710', | 
					
						
							|  |  |  |         'md5': '39f992dbe5fb531c395d8bbedb1e5e88', | 
					
						
							|  |  |  |         'info_dict': { | 
					
						
							|  |  |  |             'id': '300710', | 
					
						
							|  |  |  |             'ext': 'mp4', | 
					
						
							|  |  |  |             'title': "NDTV exclusive: Don't need character certificate from Rahul Gandhi, says Arvind Kejriwal", | 
					
						
							|  |  |  |             'description': 'md5:ab2d4b4a6056c5cb4caa6d729deabf02', | 
					
						
							|  |  |  |             'upload_date': '20131208', | 
					
						
							|  |  |  |             'duration': 1327, | 
					
						
							|  |  |  |             'thumbnail': 'http://i.ndtvimg.com/video/images/vod/medium/2013-12/big_300710_1386518307.jpg', | 
					
						
							| 
									
										
										
										
											2013-12-09 19:39:41 +01:00
										 |  |  |         }, | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def _real_extract(self, url): | 
					
						
							| 
									
										
										
										
											2015-01-19 10:10:05 +01:00
										 |  |  |         video_id = self._match_id(url) | 
					
						
							| 
									
										
										
										
											2013-12-09 19:39:41 +01:00
										 |  |  |         webpage = self._download_webpage(url, video_id) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         filename = self._search_regex( | 
					
						
							| 
									
										
										
										
											2014-06-10 19:37:38 +07:00
										 |  |  |             r"__filename='([^']+)'", webpage, 'video filename') | 
					
						
							|  |  |  |         video_url = ('http://bitcast-b.bitgravity.com/ndtvod/23372/ndtv/%s' % | 
					
						
							| 
									
										
										
										
											2013-12-09 19:39:41 +01:00
										 |  |  |                      filename) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-10 19:37:38 +07:00
										 |  |  |         duration = int_or_none(self._search_regex( | 
					
						
							|  |  |  |             r"__duration='([^']+)'", webpage, 'duration', fatal=False)) | 
					
						
							| 
									
										
										
										
											2013-12-09 19:39:41 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |         date_m = re.search(r'''(?x)
 | 
					
						
							|  |  |  |             <p\s+class="vod_dateline">\s* | 
					
						
							|  |  |  |                 Published\s+On:\s* | 
					
						
							|  |  |  |                 (?P<monthname>[A-Za-z]+)\s+(?P<day>[0-9]+),\s*(?P<year>[0-9]+) | 
					
						
							|  |  |  |             ''', webpage)
 | 
					
						
							|  |  |  |         upload_date = None | 
					
						
							| 
									
										
										
										
											2014-06-10 19:37:38 +07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-09 19:39:41 +01:00
										 |  |  |         if date_m is not None: | 
					
						
							|  |  |  |             month = month_by_name(date_m.group('monthname')) | 
					
						
							|  |  |  |             if month is not None: | 
					
						
							|  |  |  |                 upload_date = '%s%02d%02d' % ( | 
					
						
							|  |  |  |                     date_m.group('year'), month, int(date_m.group('day'))) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         description = self._og_search_description(webpage) | 
					
						
							| 
									
										
										
										
											2014-06-10 19:37:38 +07:00
										 |  |  |         READ_MORE = ' (Read more)' | 
					
						
							| 
									
										
										
										
											2013-12-09 19:39:41 +01:00
										 |  |  |         if description.endswith(READ_MORE): | 
					
						
							|  |  |  |             description = description[:-len(READ_MORE)] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-10 19:37:38 +07:00
										 |  |  |         title = self._og_search_title(webpage) | 
					
						
							|  |  |  |         TITLE_SUFFIX = ' - NDTV' | 
					
						
							|  |  |  |         if title.endswith(TITLE_SUFFIX): | 
					
						
							|  |  |  |             title = title[:-len(TITLE_SUFFIX)] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-09 19:39:41 +01:00
										 |  |  |         return { | 
					
						
							|  |  |  |             'id': video_id, | 
					
						
							|  |  |  |             'url': video_url, | 
					
						
							| 
									
										
										
										
											2014-06-10 19:37:38 +07:00
										 |  |  |             'title': title, | 
					
						
							| 
									
										
										
										
											2013-12-09 19:39:41 +01:00
										 |  |  |             'description': description, | 
					
						
							|  |  |  |             'thumbnail': self._og_search_thumbnail(webpage), | 
					
						
							|  |  |  |             'duration': duration, | 
					
						
							|  |  |  |             'upload_date': upload_date, | 
					
						
							|  |  |  |         } |