mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-21 20:46:36 -05:00
[pbs] Add support for video ratings
This commit is contained in:
parent
cb9722cb3f
commit
a1a530b067
3 changed files with 20 additions and 8 deletions
|
@ -3,6 +3,9 @@
|
||||||
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 @@ def _real_extract(self, url):
|
||||||
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 @@ def _real_extract(self, url):
|
||||||
'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 @@
|
||||||
ExtractorError,
|
ExtractorError,
|
||||||
unescapeHTML,
|
unescapeHTML,
|
||||||
unified_strdate,
|
unified_strdate,
|
||||||
|
US_RATINGS,
|
||||||
)
|
)
|
||||||
from .subtitles import SubtitlesInfoExtractor
|
from .subtitles import SubtitlesInfoExtractor
|
||||||
|
|
||||||
|
@ -48,14 +49,7 @@ def _real_extract(self, url):
|
||||||
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 @@ def compat_getpass(prompt, *args, **kwargs):
|
||||||
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 a new issue