[pbs] fix extraction for geo restricted videos(#7095)
authorRemita Amine <remitamine@gmail.com>
Mon, 19 Dec 2016 15:27:12 +0000 (16:27 +0100)
committerRemita Amine <remitamine@gmail.com>
Mon, 19 Dec 2016 15:27:12 +0000 (16:27 +0100)
youtube_dl/extractor/pbs.py

index b490ef74c5fb768751d4598ff88e70a13d41c060..f1c0cd068dc12aed21023647fef5b8c83374567b 100644 (file)
@@ -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(