summary refs log tree commit diff
diff options
context:
space:
mode:
authorPhilipp Hagemeister <phihag@phihag.de>2013-01-01 20:43:43 +0100
committerPhilipp Hagemeister <phihag@phihag.de>2013-01-01 20:43:43 +0100
commitd830b7c297b947348ae6f16f978a076d62ce93c1 (patch)
tree69a1a4c7a8d94cdce6f45f10e9a90384723180ee
parent1c256f7047051bf351ed5aedb95d8e705685a06b (diff)
downloadyoutube-dl-d830b7c297b947348ae6f16f978a076d62ce93c1.tar.gz
youtube-dl-d830b7c297b947348ae6f16f978a076d62ce93c1.tar.xz
youtube-dl-d830b7c297b947348ae6f16f978a076d62ce93c1.zip
_download_webpage helper function
-rwxr-xr-xyoutube_dl/InfoExtractors.py21
1 files changed, 15 insertions, 6 deletions
diff --git a/youtube_dl/InfoExtractors.py b/youtube_dl/InfoExtractors.py
index 0c101e704..f141e5bc6 100755
--- a/youtube_dl/InfoExtractors.py
+++ b/youtube_dl/InfoExtractors.py
@@ -105,6 +105,20 @@ class InfoExtractor(object):
     def IE_NAME(self):
         return type(self).__name__[:-2]
 
+    def _download_webpage(self, url, video_id, note=None, errnote=None):
+        if note is None:
+            note = u'Downloading video webpage'
+        self._downloader.to_screen(u'[%s] %s: %s' % (self.IE_NAME, video_id, note))
+        try:
+            urlh = compat_urllib_request.urlopen(url)
+            webpage_bytes = urlh.read()
+            return webpage_bytes.decode('utf-8', 'replace')
+        except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
+            if errnote is None:
+                errnote = u'Unable to download webpage'
+            raise ExtractorError(u'%s: %s' % (errnote, compat_str(err)))
+
+
 class YoutubeIE(InfoExtractor):
     """Information extractor for youtube.com."""
 
@@ -3803,12 +3817,7 @@ class UstreamIE(InfoExtractor):
         m = re.match(self._VALID_URL, url)
         video_id = m.group('videoID')
         video_url = u'http://tcdn.ustream.tv/video/%s' % video_id
-        try:
-            urlh = compat_urllib_request.urlopen(url)
-            webpage_bytes = urlh.read()
-            webpage = webpage_bytes.decode('utf-8', 'ignore')
-        except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
-            raise ExtractorError(u'unable to download webpage: %s' % compat_str(err))
+        webpage = self._download_webpage(url, video_id)
         m = re.search(r'data-title="(?P<title>.+)"',webpage)
         title = m.group('title')
         m = re.search(r'<a class="state" data-content-type="channel" data-content-id="(?P<uploader>\d+)"',webpage)