mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[pbs] Add support for video ratings
This commit is contained in:
		| @@ -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, | ||||||
|  | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
					Philipp Hagemeister