mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 04:57:07 -05:00 
			
		
		
		
	[nbcnews] Support embed widgets
Used in some Vulture videos
This commit is contained in:
		@@ -266,6 +266,11 @@ class NBCNewsIE(ThePlatformIE):
 | 
			
		||||
            'url': 'http://www.nbcnews.com/watch/dateline/full-episode--deadly-betrayal-386250819952',
 | 
			
		||||
            'only_matching': True,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            # From http://www.vulture.com/2016/06/letterman-couldnt-care-less-about-late-night.html
 | 
			
		||||
            'url': 'http://www.nbcnews.com/widget/video-embed/701714499682',
 | 
			
		||||
            'only_matching': True,
 | 
			
		||||
        },
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    def _real_extract(self, url):
 | 
			
		||||
@@ -289,18 +294,17 @@ class NBCNewsIE(ThePlatformIE):
 | 
			
		||||
            webpage = self._download_webpage(url, display_id)
 | 
			
		||||
            info = None
 | 
			
		||||
            bootstrap_json = self._search_regex(
 | 
			
		||||
                r'(?m)var\s+(?:bootstrapJson|playlistData)\s*=\s*({.+});?\s*$',
 | 
			
		||||
                [r'(?m)(?:var\s+(?:bootstrapJson|playlistData)|NEWS\.videoObj)\s*=\s*({.+});?\s*$',
 | 
			
		||||
                 r'videoObj\s*:\s*({.+})', r'data-video="([^"]+)"'],
 | 
			
		||||
                webpage, 'bootstrap json', default=None)
 | 
			
		||||
            if bootstrap_json:
 | 
			
		||||
                bootstrap = self._parse_json(bootstrap_json, display_id)
 | 
			
		||||
            bootstrap = self._parse_json(
 | 
			
		||||
                bootstrap_json, display_id, transform_source=unescapeHTML)
 | 
			
		||||
            if 'results' in bootstrap:
 | 
			
		||||
                info = bootstrap['results'][0]['video']
 | 
			
		||||
            elif 'video' in bootstrap:
 | 
			
		||||
                info = bootstrap['video']
 | 
			
		||||
            else:
 | 
			
		||||
                player_instance_json = self._search_regex(
 | 
			
		||||
                    r'videoObj\s*:\s*({.+})', webpage, 'player instance', default=None)
 | 
			
		||||
                if not player_instance_json:
 | 
			
		||||
                    player_instance_json = self._html_search_regex(
 | 
			
		||||
                        r'data-video="([^"]+)"', webpage, 'video json')
 | 
			
		||||
                info = self._parse_json(player_instance_json, display_id)
 | 
			
		||||
                info = bootstrap
 | 
			
		||||
            video_id = info['mpxId']
 | 
			
		||||
            title = info['title']
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user