|
|
|
@ -350,6 +350,15 @@ class PBSIE(InfoExtractor):
|
|
|
|
|
410: 'This video has expired and is no longer available for online streaming.',
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
def _real_initialize(self):
|
|
|
|
|
cookie = (self._download_json(
|
|
|
|
|
'http://localization.services.pbs.org/localize/auto/cookie/',
|
|
|
|
|
None, headers=self.geo_verification_headers(), fatal=False) or {}).get('cookie')
|
|
|
|
|
if cookie:
|
|
|
|
|
station = self._search_regex(r'#?s=\["([^"]+)"', cookie, 'station')
|
|
|
|
|
if station:
|
|
|
|
|
self._set_cookie('.pbs.org', 'pbsol.station', station)
|
|
|
|
|
|
|
|
|
|
def _extract_webpage(self, url):
|
|
|
|
|
mobj = re.match(self._VALID_URL, url)
|
|
|
|
|
|
|
|
|
@ -476,7 +485,8 @@ class PBSIE(InfoExtractor):
|
|
|
|
|
|
|
|
|
|
redirect_info = self._download_json(
|
|
|
|
|
'%s?format=json' % redirect['url'], display_id,
|
|
|
|
|
'Downloading %s video url info' % (redirect_id or num))
|
|
|
|
|
'Downloading %s video url info' % (redirect_id or num),
|
|
|
|
|
headers=self.geo_verification_headers())
|
|
|
|
|
|
|
|
|
|
if redirect_info['status'] == 'error':
|
|
|
|
|
raise ExtractorError(
|
|
|
|
|