mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 00:57:07 -05:00 
			
		
		
		
	[pbs] Add support for video ratings
This commit is contained in:
		@@ -3,6 +3,9 @@ from __future__ import unicode_literals
 | 
			
		||||
import re
 | 
			
		||||
 | 
			
		||||
from .common import InfoExtractor
 | 
			
		||||
from ..utils import (
 | 
			
		||||
    US_RATINGS,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class PBSIE(InfoExtractor):
 | 
			
		||||
@@ -57,6 +60,11 @@ class PBSIE(InfoExtractor):
 | 
			
		||||
        info_url = 'http://video.pbs.org/videoInfo/%s?format=json' % video_id
 | 
			
		||||
        info = self._download_json(info_url, display_id)
 | 
			
		||||
 | 
			
		||||
        rating_str = info.get('rating')
 | 
			
		||||
        if rating_str is not None:
 | 
			
		||||
            rating_str = rating_str.rpartition('-')[2]
 | 
			
		||||
        age_limit = US_RATINGS.get(rating_str)
 | 
			
		||||
 | 
			
		||||
        return {
 | 
			
		||||
            'id': video_id,
 | 
			
		||||
            'title': info['title'],
 | 
			
		||||
@@ -65,4 +73,5 @@ class PBSIE(InfoExtractor):
 | 
			
		||||
            'description': info['program'].get('description'),
 | 
			
		||||
            'thumbnail': info.get('image_url'),
 | 
			
		||||
            'duration': info.get('duration'),
 | 
			
		||||
            'age_limit': age_limit,
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,7 @@ from ..utils import (
 | 
			
		||||
    ExtractorError,
 | 
			
		||||
    unescapeHTML,
 | 
			
		||||
    unified_strdate,
 | 
			
		||||
    US_RATINGS,
 | 
			
		||||
)
 | 
			
		||||
from .subtitles import SubtitlesInfoExtractor
 | 
			
		||||
 | 
			
		||||
@@ -48,14 +49,7 @@ class VikiIE(SubtitlesInfoExtractor):
 | 
			
		||||
        rating_str = self._html_search_regex(
 | 
			
		||||
            r'<strong>Rating: </strong>\s*([^<]*)<', webpage,
 | 
			
		||||
            'rating information', default='').strip()
 | 
			
		||||
        RATINGS = {
 | 
			
		||||
            'G': 0,
 | 
			
		||||
            'PG': 10,
 | 
			
		||||
            'PG-13': 13,
 | 
			
		||||
            'R': 16,
 | 
			
		||||
            'NC': 18,
 | 
			
		||||
        }
 | 
			
		||||
        age_limit = RATINGS.get(rating_str)
 | 
			
		||||
        age_limit = US_RATINGS.get(rating_str)
 | 
			
		||||
 | 
			
		||||
        info_url = 'http://www.viki.com/player5_fragment/%s?action=show&controller=videos' % video_id
 | 
			
		||||
        info_webpage = self._download_webpage(
 | 
			
		||||
 
 | 
			
		||||
@@ -1289,3 +1289,12 @@ if sys.version_info < (3, 0) and sys.platform == 'win32':
 | 
			
		||||
        return getpass.getpass(prompt, *args, **kwargs)
 | 
			
		||||
else:
 | 
			
		||||
    compat_getpass = getpass.getpass
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
US_RATINGS = {
 | 
			
		||||
    'G': 0,
 | 
			
		||||
    'PG': 10,
 | 
			
		||||
    'PG-13': 13,
 | 
			
		||||
    'R': 16,
 | 
			
		||||
    'NC': 18,
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user