about summary refs log tree commit diff
path: root/youtube_dl/extractor/viki.py
diff options
context:
space:
mode:
Diffstat (limited to 'youtube_dl/extractor/viki.py')
-rw-r--r--youtube_dl/extractor/viki.py22
1 files changed, 15 insertions, 7 deletions
diff --git a/youtube_dl/extractor/viki.py b/youtube_dl/extractor/viki.py
index 78d03c079..cd986a749 100644
--- a/youtube_dl/extractor/viki.py
+++ b/youtube_dl/extractor/viki.py
@@ -1,6 +1,7 @@
 import re
 
 from ..utils import (
+    ExtractorError,
     unified_strdate,
 )
 from .subtitles import SubtitlesInfoExtractor
@@ -20,7 +21,8 @@ class VikiIE(SubtitlesInfoExtractor):
             u'description': u'md5:c4b17b9626dd4b143dcc4d855ba3474e',
             u'upload_date': u'20131121',
             u'age_limit': 13,
-        }
+        },
+        u'skip': u'Blocked in the US',
     }
 
     def _real_extract(self, url):
@@ -32,11 +34,12 @@ class VikiIE(SubtitlesInfoExtractor):
         description = self._og_search_description(webpage)
         thumbnail = self._og_search_thumbnail(webpage)
 
-        uploader = self._html_search_regex(
-            r'<strong>Broadcast Network: </strong>\s*([^<]*)<', webpage,
-            u'uploader')
-        if uploader is not None:
-            uploader = uploader.strip()
+        uploader_m = re.search(
+            r'<strong>Broadcast Network: </strong>\s*([^<]*)<', webpage)
+        if uploader_m is None:
+            uploader = None
+        else:
+            uploader = uploader.group(1).strip()
 
         rating_str = self._html_search_regex(
             r'<strong>Rating: </strong>\s*([^<]*)<', webpage,
@@ -51,7 +54,12 @@ class VikiIE(SubtitlesInfoExtractor):
         age_limit = RATINGS.get(rating_str)
 
         info_url = 'http://www.viki.com/player5_fragment/%s?action=show&controller=videos' % video_id
-        info_webpage = self._download_webpage(info_url, video_id)
+        info_webpage = self._download_webpage(
+            info_url, video_id, note=u'Downloading info page')
+        if re.match(r'\s*<div\s+class="video-error', info_webpage):
+            raise ExtractorError(
+                u'Video %s is blocked from your location.' % video_id,
+                expected=True)
         video_url = self._html_search_regex(
             r'<source[^>]+src="([^"]+)"', info_webpage, u'video URL')