mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-03 22:37:07 -05:00 
			
		
		
		
	[pbs] check all http formats and remove unnecessary request
- some of the quality that not reported in the documentation are available(4500k, 6500k) - the videoInfo request doesn't work for a long time
This commit is contained in:
		@@ -448,17 +448,6 @@ class PBSIE(InfoExtractor):
 | 
			
		||||
                    redirects.append(redirect)
 | 
			
		||||
                    redirect_urls.add(redirect_url)
 | 
			
		||||
 | 
			
		||||
        try:
 | 
			
		||||
            video_info = self._download_json(
 | 
			
		||||
                'http://player.pbs.org/videoInfo/%s?format=json&type=partner' % video_id,
 | 
			
		||||
                display_id, 'Downloading video info JSON')
 | 
			
		||||
            extract_redirect_urls(video_info)
 | 
			
		||||
            info = video_info
 | 
			
		||||
        except ExtractorError as e:
 | 
			
		||||
            # videoInfo API may not work for some videos
 | 
			
		||||
            if not isinstance(e.cause, compat_HTTPError) or e.cause.code != 404:
 | 
			
		||||
                raise
 | 
			
		||||
 | 
			
		||||
        # Player pages may also serve different qualities
 | 
			
		||||
        for page in ('widget/partnerplayer', 'portalplayer'):
 | 
			
		||||
            player = self._download_webpage(
 | 
			
		||||
@@ -511,12 +500,12 @@ class PBSIE(InfoExtractor):
 | 
			
		||||
            formats))
 | 
			
		||||
        if http_url:
 | 
			
		||||
            for m3u8_format in m3u8_formats:
 | 
			
		||||
                bitrate = self._search_regex(r'(\d+k)', m3u8_format['url'], 'bitrate', default=None)
 | 
			
		||||
                bitrate = self._search_regex(r'(\d+)k', m3u8_format['url'], 'bitrate', default=None)
 | 
			
		||||
                # extract only the formats that we know that they will be available as http format.
 | 
			
		||||
                # https://projects.pbs.org/confluence/display/coveapi/COVE+Video+Specifications
 | 
			
		||||
                if not bitrate or bitrate not in ('400k', '800k', '1200k', '2500k'):
 | 
			
		||||
                if not bitrate or int(bitrate) < 400:
 | 
			
		||||
                    continue
 | 
			
		||||
                f_url = re.sub(r'\d+k|baseline', bitrate, http_url)
 | 
			
		||||
                f_url = re.sub(r'\d+k|baseline', bitrate + 'k', http_url)
 | 
			
		||||
                # This may produce invalid links sometimes (e.g.
 | 
			
		||||
                # http://www.pbs.org/wgbh/frontline/film/suicide-plan)
 | 
			
		||||
                if not self._is_valid_url(f_url, display_id, 'http-%s video' % bitrate):
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user