| 
									
										
										
										
											2014-01-25 11:31:30 +01:00
										 |  |  | from __future__ import unicode_literals | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import re | 
					
						
							|  |  |  | import json | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from .common import InfoExtractor | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class FreespeechIE(InfoExtractor): | 
					
						
							|  |  |  |     IE_NAME = 'freespeech.org' | 
					
						
							| 
									
										
										
										
											2016-09-08 18:29:05 +07:00
										 |  |  |     _VALID_URL = r'https?://(?:www\.)?freespeech\.org/video/(?P<title>.+)' | 
					
						
							| 
									
										
										
										
											2014-01-25 11:31:30 +01:00
										 |  |  |     _TEST = { | 
					
						
							|  |  |  |         'add_ie': ['Youtube'], | 
					
						
							|  |  |  |         'url': 'https://www.freespeech.org/video/obama-romney-campaign-colorado-ahead-debate-0', | 
					
						
							|  |  |  |         'info_dict': { | 
					
						
							|  |  |  |             'id': 'poKsVCZ64uU', | 
					
						
							| 
									
										
										
										
											2016-03-05 21:52:24 +01:00
										 |  |  |             'ext': 'webm', | 
					
						
							| 
									
										
										
										
											2014-01-25 11:31:30 +01:00
										 |  |  |             'title': 'Obama, Romney Campaign in Colorado Ahead of Debate', | 
					
						
							|  |  |  |             'description': 'Obama, Romney Campaign in Colorado Ahead of Debate', | 
					
						
							|  |  |  |             'uploader': 'freespeechtv', | 
					
						
							|  |  |  |             'uploader_id': 'freespeechtv', | 
					
						
							|  |  |  |             'upload_date': '20121002', | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def _real_extract(self, url): | 
					
						
							|  |  |  |         mobj = re.match(self._VALID_URL, url) | 
					
						
							|  |  |  |         title = mobj.group('title') | 
					
						
							|  |  |  |         webpage = self._download_webpage(url, title) | 
					
						
							| 
									
										
										
										
											2017-10-09 23:50:53 +07:00
										 |  |  |         info_json = self._search_regex(r'jQuery\.extend\(Drupal\.settings, ({.*?})\);', webpage, 'info') | 
					
						
							| 
									
										
										
										
											2014-01-25 11:31:30 +01:00
										 |  |  |         info = json.loads(info_json) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return { | 
					
						
							|  |  |  |             '_type': 'url', | 
					
						
							|  |  |  |             'url': info['jw_player']['basic_video_node_player']['file'], | 
					
						
							|  |  |  |             'ie_key': 'Youtube', | 
					
						
							|  |  |  |         } |