[generic] Detect ooyala videos (fixes #2013)
This commit is contained in:
		| @@ -263,7 +263,8 @@ class InfoExtractor(object): | ||||
|         self.to_screen(u'Logging in') | ||||
|  | ||||
|     #Methods for following #608 | ||||
|     def url_result(self, url, ie=None, video_id=None): | ||||
|     @staticmethod | ||||
|     def url_result(url, ie=None, video_id=None): | ||||
|         """Returns a url that points to a page that should be processed""" | ||||
|         #TODO: ie should be the class used for getting the info | ||||
|         video_info = {'_type': 'url', | ||||
| @@ -272,7 +273,8 @@ class InfoExtractor(object): | ||||
|         if video_id is not None: | ||||
|             video_info['id'] = video_id | ||||
|         return video_info | ||||
|     def playlist_result(self, entries, playlist_id=None, playlist_title=None): | ||||
|     @staticmethod | ||||
|     def playlist_result(entries, playlist_id=None, playlist_title=None): | ||||
|         """Returns a playlist""" | ||||
|         video_info = {'_type': 'playlist', | ||||
|                       'entries': entries} | ||||
|   | ||||
| @@ -17,6 +17,7 @@ from ..utils import ( | ||||
|     url_basename, | ||||
| ) | ||||
| from .brightcove import BrightcoveIE | ||||
| from .ooyala import OoyalaIE | ||||
|  | ||||
|  | ||||
| class GenericIE(InfoExtractor): | ||||
| @@ -83,7 +84,17 @@ class GenericIE(InfoExtractor): | ||||
|                 u'title': u'trailer', | ||||
|                 u'upload_date': u'20100513', | ||||
|             } | ||||
|         } | ||||
|         }, | ||||
|         # ooyala video | ||||
|         { | ||||
|             u'url': u'http://www.rollingstone.com/music/videos/norwegian-dj-cashmere-cat-goes-spartan-on-with-me-premiere-20131219', | ||||
|             u'md5': u'5644c6ca5d5782c1d0d350dad9bd840c', | ||||
|             u'info_dict': { | ||||
|                 u'id': u'BwY2RxaTrTkslxOfcan0UCf0YqyvWysJ', | ||||
|                 u'ext': u'mp4', | ||||
|                 u'title': u'2cc213299525360.mov', #that's what we get | ||||
|             }, | ||||
|         }, | ||||
|     ] | ||||
|  | ||||
|     def report_download_webpage(self, video_id): | ||||
| @@ -277,6 +288,11 @@ class GenericIE(InfoExtractor): | ||||
|         if mobj is not None: | ||||
|             return self.url_result(mobj.group('url')) | ||||
|  | ||||
|         # Look for Ooyala videos | ||||
|         mobj = re.search(r'player.ooyala.com/[^"?]+\?[^"]*?(?:embedCode|ec)=([^"&]+)', webpage) | ||||
|         if mobj is not None: | ||||
|             return OoyalaIE._build_url_result(mobj.group(1)) | ||||
|  | ||||
|         # Start with something easy: JW Player in SWFObject | ||||
|         mobj = re.search(r'flashvars: [\'"](?:.*&)?file=(http[^\'"&]*)', webpage) | ||||
|         if mobj is None: | ||||
|   | ||||
| @@ -22,6 +22,11 @@ class OoyalaIE(InfoExtractor): | ||||
|     def _url_for_embed_code(embed_code): | ||||
|         return 'http://player.ooyala.com/player.js?embedCode=%s' % embed_code | ||||
|  | ||||
|     @classmethod | ||||
|     def _build_url_result(cls, embed_code): | ||||
|         return cls.url_result(cls._url_for_embed_code(embed_code), | ||||
|             ie=cls.ie_key()) | ||||
|  | ||||
|     def _extract_result(self, info, more_info): | ||||
|         return {'id': info['embedCode'], | ||||
|                 'ext': 'mp4', | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Jaime Marquínez Ferrándiz
					Jaime Marquínez Ferrándiz