[vgtv] Detect geo restricted videos (#10348)
authorSergey M․ <dstftw@gmail.com>
Sun, 14 Aug 2016 09:25:14 +0000 (16:25 +0700)
committerSergey M․ <dstftw@gmail.com>
Sun, 14 Aug 2016 09:25:14 +0000 (16:25 +0700)
youtube_dl/extractor/vgtv.py

index b11cd254c7da9c8c780dedd2b2db120f8025c74b..185756301c3a9b0afe440254d3d2051ca97730d7 100644 (file)
@@ -8,6 +8,7 @@ from .xstream import XstreamIE
 from ..utils import (
     ExtractorError,
     float_or_none,
+    try_get,
 )
 
 
@@ -129,6 +130,11 @@ class VGTVIE(XstreamIE):
             'url': 'http://ap.vgtv.no/webtv#!/video/111084/de-nye-bysyklene-lettere-bedre-gir-stoerre-hjul-og-feste-til-mobil',
             'only_matching': True,
         },
+        {
+            # geoblocked
+            'url': 'http://www.vgtv.no/#!/video/127205/inside-the-mind-of-favela-funk',
+            'only_matching': True,
+        },
     ]
 
     def _real_extract(self, url):
@@ -196,6 +202,12 @@ class VGTVIE(XstreamIE):
 
         info['formats'].extend(formats)
 
+        if not info['formats']:
+            properties = try_get(
+                data, lambda x: x['streamConfiguration']['properties'], list)
+            if properties and 'geoblocked' in properties:
+                raise self.raise_geo_restricted()
+
         self._sort_formats(info['formats'])
 
         info.update({