|
|
@ -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,
|
|
|
|
}
|
|
|
|
}
|
|
|
|