diff options
author | Remita Amine <remitamine@gmail.com> | 2016-12-19 16:27:12 +0100 |
---|---|---|
committer | Remita Amine <remitamine@gmail.com> | 2016-12-19 16:27:12 +0100 |
commit | 5aaf012a4eacc50bb5b131f6c26027e391fc379a (patch) | |
tree | 55aec4343d4ab4768b5e16e23c2b4079161a1203 /youtube_dl/extractor | |
parent | 954529c10fd847d58374dda2a3661f0df2c1d5f6 (diff) |
[pbs] fix extraction for geo restricted videos(#7095)
Diffstat (limited to 'youtube_dl/extractor')
-rw-r--r-- | youtube_dl/extractor/pbs.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/youtube_dl/extractor/pbs.py b/youtube_dl/extractor/pbs.py index b490ef74c..f1c0cd068 100644 --- a/youtube_dl/extractor/pbs.py +++ b/youtube_dl/extractor/pbs.py @@ -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( |