[pbs] Add support for video ratings
parent
cb9722cb3f
commit
a1a530b067
|
@ -3,6 +3,9 @@ from __future__ import unicode_literals
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from .common import InfoExtractor
|
from .common import InfoExtractor
|
||||||
|
from ..utils import (
|
||||||
|
US_RATINGS,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class PBSIE(InfoExtractor):
|
class PBSIE(InfoExtractor):
|
||||||
|
@ -57,6 +60,11 @@ class PBSIE(InfoExtractor):
|
||||||
info_url = 'http://video.pbs.org/videoInfo/%s?format=json' % video_id
|
info_url = 'http://video.pbs.org/videoInfo/%s?format=json' % video_id
|
||||||
info = self._download_json(info_url, display_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 {
|
return {
|
||||||
'id': video_id,
|
'id': video_id,
|
||||||
'title': info['title'],
|
'title': info['title'],
|
||||||
|
@ -65,4 +73,5 @@ class PBSIE(InfoExtractor):
|
||||||
'description': info['program'].get('description'),
|
'description': info['program'].get('description'),
|
||||||
'thumbnail': info.get('image_url'),
|
'thumbnail': info.get('image_url'),
|
||||||
'duration': info.get('duration'),
|
'duration': info.get('duration'),
|
||||||
|
'age_limit': age_limit,
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ from ..utils import (
|
||||||
ExtractorError,
|
ExtractorError,
|
||||||
unescapeHTML,
|
unescapeHTML,
|
||||||
unified_strdate,
|
unified_strdate,
|
||||||
|
US_RATINGS,
|
||||||
)
|
)
|
||||||
from .subtitles import SubtitlesInfoExtractor
|
from .subtitles import SubtitlesInfoExtractor
|
||||||
|
|
||||||
|
@ -48,14 +49,7 @@ class VikiIE(SubtitlesInfoExtractor):
|
||||||
rating_str = self._html_search_regex(
|
rating_str = self._html_search_regex(
|
||||||
r'<strong>Rating: </strong>\s*([^<]*)<', webpage,
|
r'<strong>Rating: </strong>\s*([^<]*)<', webpage,
|
||||||
'rating information', default='').strip()
|
'rating information', default='').strip()
|
||||||
RATINGS = {
|
age_limit = US_RATINGS.get(rating_str)
|
||||||
'G': 0,
|
|
||||||
'PG': 10,
|
|
||||||
'PG-13': 13,
|
|
||||||
'R': 16,
|
|
||||||
'NC': 18,
|
|
||||||
}
|
|
||||||
age_limit = RATINGS.get(rating_str)
|
|
||||||
|
|
||||||
info_url = 'http://www.viki.com/player5_fragment/%s?action=show&controller=videos' % video_id
|
info_url = 'http://www.viki.com/player5_fragment/%s?action=show&controller=videos' % video_id
|
||||||
info_webpage = self._download_webpage(
|
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)
|
return getpass.getpass(prompt, *args, **kwargs)
|
||||||
else:
|
else:
|
||||||
compat_getpass = getpass.getpass
|
compat_getpass = getpass.getpass
|
||||||
|
|
||||||
|
|
||||||
|
US_RATINGS = {
|
||||||
|
'G': 0,
|
||||||
|
'PG': 10,
|
||||||
|
'PG-13': 13,
|
||||||
|
'R': 16,
|
||||||
|
'NC': 18,
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue