summary refs log tree commit diff
diff options
context:
space:
mode:
authorPhilipp Hagemeister <phihag@phihag.de>2014-04-03 06:07:35 +0200
committerPhilipp Hagemeister <phihag@phihag.de>2014-04-03 06:09:38 +0200
commit2410c43d834c4a81c134d2efff269dd7ad66fbd6 (patch)
treea85639cd621f75231b5ccd3fe8ae2253d4bc7882
parentaea6e7fc3cc2500d7a2341e57b0983f7731a86cd (diff)
downloadyoutube-dl-2410c43d834c4a81c134d2efff269dd7ad66fbd6.tar.gz
youtube-dl-2410c43d834c4a81c134d2efff269dd7ad66fbd6.tar.xz
youtube-dl-2410c43d834c4a81c134d2efff269dd7ad66fbd6.zip
Detect Websense censorship (Fixes #2670)
-rw-r--r--youtube_dl/extractor/common.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py
index 78f238f84..fe09817f9 100644
--- a/youtube_dl/extractor/common.py
+++ b/youtube_dl/extractor/common.py
@@ -252,6 +252,17 @@ class InfoExtractor(object):
                 outf.write(webpage_bytes)
 
         content = webpage_bytes.decode(encoding, 'replace')
+
+        if (u'<title>Access to this site is blocked</title>' in content and
+                u'Websense' in content[:512]):
+            msg = u'Access to URL %s has been blocked by Websense filtering software in your network.' % urlh.geturl()
+            blocked_iframe = self._html_search_regex(
+                r'<iframe src="([^"]+)"', content,
+                u'Websense information URL', default=None)
+            if blocked_iframe:
+                msg += u' Visit %s for more details' % blocked_iframe
+            raise ExtractorError(msg, expected=True)
+
         return (content, urlh)
 
     def _download_webpage(self, url_or_request, video_id, note=None, errnote=None, fatal=True):