[generic] Detect ooyala videos (fixes #2013)
This commit is contained in:
parent
7c86a5b864
commit
c0d0b01f0e
3 changed files with 26 additions and 3 deletions
|
@ -263,7 +263,8 @@ class InfoExtractor(object):
|
||||||
self.to_screen(u'Logging in')
|
self.to_screen(u'Logging in')
|
||||||
|
|
||||||
#Methods for following #608
|
#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"""
|
"""Returns a url that points to a page that should be processed"""
|
||||||
#TODO: ie should be the class used for getting the info
|
#TODO: ie should be the class used for getting the info
|
||||||
video_info = {'_type': 'url',
|
video_info = {'_type': 'url',
|
||||||
|
@ -272,7 +273,8 @@ class InfoExtractor(object):
|
||||||
if video_id is not None:
|
if video_id is not None:
|
||||||
video_info['id'] = video_id
|
video_info['id'] = video_id
|
||||||
return video_info
|
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"""
|
"""Returns a playlist"""
|
||||||
video_info = {'_type': 'playlist',
|
video_info = {'_type': 'playlist',
|
||||||
'entries': entries}
|
'entries': entries}
|
||||||
|
|
|
@ -17,6 +17,7 @@ from ..utils import (
|
||||||
url_basename,
|
url_basename,
|
||||||
)
|
)
|
||||||
from .brightcove import BrightcoveIE
|
from .brightcove import BrightcoveIE
|
||||||
|
from .ooyala import OoyalaIE
|
||||||
|
|
||||||
|
|
||||||
class GenericIE(InfoExtractor):
|
class GenericIE(InfoExtractor):
|
||||||
|
@ -83,7 +84,17 @@ class GenericIE(InfoExtractor):
|
||||||
u'title': u'trailer',
|
u'title': u'trailer',
|
||||||
u'upload_date': u'20100513',
|
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):
|
def report_download_webpage(self, video_id):
|
||||||
|
@ -277,6 +288,11 @@ class GenericIE(InfoExtractor):
|
||||||
if mobj is not None:
|
if mobj is not None:
|
||||||
return self.url_result(mobj.group('url'))
|
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
|
# Start with something easy: JW Player in SWFObject
|
||||||
mobj = re.search(r'flashvars: [\'"](?:.*&)?file=(http[^\'"&]*)', webpage)
|
mobj = re.search(r'flashvars: [\'"](?:.*&)?file=(http[^\'"&]*)', webpage)
|
||||||
if mobj is None:
|
if mobj is None:
|
||||||
|
|
|
@ -22,6 +22,11 @@ class OoyalaIE(InfoExtractor):
|
||||||
def _url_for_embed_code(embed_code):
|
def _url_for_embed_code(embed_code):
|
||||||
return 'http://player.ooyala.com/player.js?embedCode=%s' % 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):
|
def _extract_result(self, info, more_info):
|
||||||
return {'id': info['embedCode'],
|
return {'id': info['embedCode'],
|
||||||
'ext': 'mp4',
|
'ext': 'mp4',
|
||||||
|
|
Loading…
Reference in a new issue