| 
														
															@@ -1,8 +1,7 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 from __future__ import unicode_literals 
														 | 
														
														 | 
														
															 from __future__ import unicode_literals 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import re 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 from .common import InfoExtractor 
														 | 
														
														 | 
														
															 from .common import InfoExtractor 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+from ..utils import parse_iso8601 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 class HowcastIE(InfoExtractor): 
														 | 
														
														 | 
														
															 class HowcastIE(InfoExtractor): 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -13,29 +12,31 @@ class HowcastIE(InfoExtractor): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         'info_dict': { 
														 | 
														
														 | 
														
															         'info_dict': { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             'id': '390161', 
														 | 
														
														 | 
														
															             'id': '390161', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             'ext': 'mp4', 
														 | 
														
														 | 
														
															             'ext': 'mp4', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            'description': 'The square knot, also known as the reef knot, is one of the oldest, most basic knots to tie, and can be used in many different ways. Here\'s the proper way to tie a square knot.', 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             'title': 'How to Tie a Square Knot Properly', 
														 | 
														
														 | 
														
															             'title': 'How to Tie a Square Knot Properly', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            'description': 'md5:dbe792e5f6f1489027027bf2eba188a3', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            'timestamp': 1276081287, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            'upload_date': '20100609', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        }, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        'params': { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            # m3u8 download 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            'skip_download': True, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        }, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     def _real_extract(self, url): 
														 | 
														
														 | 
														
															     def _real_extract(self, url): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        mobj = re.match(self._VALID_URL, url) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        video_id = self._match_id(url) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        video_id = mobj.group('id') 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         webpage = self._download_webpage(url, video_id) 
														 | 
														
														 | 
														
															         webpage = self._download_webpage(url, video_id) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        self.report_extraction(video_id) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        video_url = self._search_regex(r'\'?file\'?: "(http://mobile-media\.howcast\.com/[0-9]+\.mp4)', 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                       webpage, 'video URL') 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        video_description = self._html_search_regex(r'<meta content=(?:"([^"]+)"|\'([^\']+)\') name=\'description\'', 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                                    webpage, 'description', fatal=False) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        embed_code = self._search_regex( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            r'<iframe[^>]+src="[^"]+\bembed_code=([^\b]+)\b', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            webpage, 'ooyala embed code') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return { 
														 | 
														
														 | 
														
															         return { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            '_type': 'url_transparent', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            'ie_key': 'Ooyala', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            'url': 'ooyala:%s' % embed_code, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             'id': video_id, 
														 | 
														
														 | 
														
															             'id': video_id, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            'url': video_url, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            'title': self._og_search_title(webpage), 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            'description': video_description, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            'thumbnail': self._og_search_thumbnail(webpage), 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            'timestamp': parse_iso8601(self._html_search_meta( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                'article:published_time', webpage, 'timestamp')), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 |