mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 00:37:06 -05:00 
			
		
		
		
	[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