|
@@ -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(
|