mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-11-04 08:35:12 +00:00 
			
		
		
		
	Merge pull request #2696 from anovicecodemonkey/support-ustream-embeds
[UstreamIE] [generic] Added support for Ustream embed URLs (Fixes #2694)
This commit is contained in:
		@@ -184,6 +184,17 @@ class GenericIE(InfoExtractor):
 | 
			
		||||
                'description': 'md5:ddb2a40ecd6b6a147e400e535874947b',
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        # Embeded Ustream video
 | 
			
		||||
        {
 | 
			
		||||
            'url': 'http://www.american.edu/spa/pti/nsa-privacy-janus-2014.cfm',
 | 
			
		||||
            'md5': '27b99cdb639c9b12a79bca876a073417',
 | 
			
		||||
            'info_dict': {
 | 
			
		||||
                'id': '45734260',
 | 
			
		||||
                'ext': 'flv',
 | 
			
		||||
                'uploader': 'AU SPA:  The NSA and Privacy',
 | 
			
		||||
                'title': 'NSA and Privacy Forum Debate featuring General Hayden and Barton Gellman'
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        # nowvideo embed hidden behind percent encoding
 | 
			
		||||
        {
 | 
			
		||||
            'url': 'http://www.waoanime.tv/the-super-dimension-fortress-macross-episode-1/',
 | 
			
		||||
@@ -556,6 +567,12 @@ class GenericIE(InfoExtractor):
 | 
			
		||||
        if mobj is not None:
 | 
			
		||||
            return self.url_result(mobj.group('url'), 'TED')
 | 
			
		||||
 | 
			
		||||
        # Look for embedded Ustream videos
 | 
			
		||||
        mobj = re.search(
 | 
			
		||||
            r'<iframe[^>]+?src=(["\'])(?P<url>http://www\.ustream\.tv/embed/.+?)\1', webpage)
 | 
			
		||||
        if mobj is not None:
 | 
			
		||||
            return self.url_result(mobj.group('url'), 'Ustream')
 | 
			
		||||
 | 
			
		||||
        # Look for embedded arte.tv player
 | 
			
		||||
        mobj = re.search(
 | 
			
		||||
            r'<script [^>]*?src="(?P<url>http://www\.arte\.tv/playerv2/embed[^"]+)"',
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ from ..utils import (
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class UstreamIE(InfoExtractor):
 | 
			
		||||
    _VALID_URL = r'https?://www\.ustream\.tv/recorded/(?P<videoID>\d+)'
 | 
			
		||||
    _VALID_URL = r'https?://www\.ustream\.tv/(?P<type>recorded|embed)/(?P<videoID>\d+)'
 | 
			
		||||
    IE_NAME = 'ustream'
 | 
			
		||||
    _TEST = {
 | 
			
		||||
        'url': 'http://www.ustream.tv/recorded/20274954',
 | 
			
		||||
@@ -25,6 +25,13 @@ class UstreamIE(InfoExtractor):
 | 
			
		||||
 | 
			
		||||
    def _real_extract(self, url):
 | 
			
		||||
        m = re.match(self._VALID_URL, url)
 | 
			
		||||
        if m.group('type') == 'embed':
 | 
			
		||||
            video_id = m.group('videoID')
 | 
			
		||||
            webpage = self._download_webpage(url, video_id)
 | 
			
		||||
            desktop_video_id = self._html_search_regex(r'ContentVideoIds=\["([^"]*?)"\]', webpage, 'desktop_video_id')
 | 
			
		||||
            desktop_url = 'http://www.ustream.tv/recorded/' + desktop_video_id
 | 
			
		||||
            return self.url_result(desktop_url, 'Ustream')
 | 
			
		||||
 | 
			
		||||
        video_id = m.group('videoID')
 | 
			
		||||
 | 
			
		||||
        video_url = 'http://tcdn.ustream.tv/video/%s' % video_id
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user