From 1538eff6d8ee73f2ae4ac1dd832a9ef978c63074 Mon Sep 17 00:00:00 2001
From: Philipp Hagemeister <phihag@phihag.de>
Date: Mon, 23 Dec 2013 15:48:00 +0100
Subject: [PATCH] [bliptv] Remove support for direct downloads

This is now handled by the generic IE
---
 youtube_dl/YoutubeDL.py        |  5 ++---
 youtube_dl/downloader/http.py  |  2 --
 youtube_dl/extractor/bliptv.py | 19 +------------------
 youtube_dl/extractor/common.py |  2 --
 4 files changed, 3 insertions(+), 25 deletions(-)

diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py
index ac4627c4e..41a9114ad 100644
--- a/youtube_dl/YoutubeDL.py
+++ b/youtube_dl/YoutubeDL.py
@@ -542,7 +542,7 @@ class YoutubeDL(object):
             def make_result(embedded_info):
                 new_result = ie_result.copy()
                 for f in ('_type', 'url', 'ext', 'player_url', 'formats',
-                          'entries', 'urlhandle', 'ie_key', 'duration',
+                          'entries', 'ie_key', 'duration',
                           'subtitles', 'annotations', 'format',
                           'thumbnail', 'thumbnails'):
                     if f in new_result:
@@ -856,8 +856,7 @@ class YoutubeDL(object):
             else:
                 self.to_screen(u'[info] Writing video description metadata as JSON to: ' + infofn)
                 try:
-                    json_info_dict = dict((k, v) for k, v in info_dict.items() if not k in ['urlhandle'])
-                    write_json_file(json_info_dict, encodeFilename(infofn))
+                    write_json_file(info_dict, encodeFilename(infofn))
                 except (OSError, IOError):
                     self.report_error(u'Cannot write metadata to JSON file ' + infofn)
                     return
diff --git a/youtube_dl/downloader/http.py b/youtube_dl/downloader/http.py
index 54dc7616b..dbc5af3ca 100644
--- a/youtube_dl/downloader/http.py
+++ b/youtube_dl/downloader/http.py
@@ -52,8 +52,6 @@ class HttpFD(FileDownloader):
         while count <= retries:
             # Establish connection
             try:
-                if count == 0 and 'urlhandle' in info_dict:
-                    data = info_dict['urlhandle']
                 data = compat_urllib_request.urlopen(request)
                 break
             except (compat_urllib_error.HTTPError, ) as err:
diff --git a/youtube_dl/extractor/bliptv.py b/youtube_dl/extractor/bliptv.py
index 0e63208df..a32891c17 100644
--- a/youtube_dl/extractor/bliptv.py
+++ b/youtube_dl/extractor/bliptv.py
@@ -21,7 +21,7 @@ from ..utils import (
 class BlipTVIE(InfoExtractor):
     """Information extractor for blip.tv"""
 
-    _VALID_URL = r'^(?:https?://)?(?:\w+\.)?blip\.tv/((.+/)|(play/)|(api\.swf#))(.+)$'
+    _VALID_URL = r'^(?:https?://)?(?:www\.)?blip\.tv/((.+/)|(play/)|(api\.swf#))(.+)$'
     _URL_EXT = r'^.*\.([a-z0-9]+)$'
     IE_NAME = u'blip.tv'
     _TEST = {
@@ -58,7 +58,6 @@ class BlipTVIE(InfoExtractor):
             url = 'http://blip.tv/a/a-' + file_id
             return self._real_extract(url)
 
-
         if '?' in url:
             cchar = '&'
         else:
@@ -71,22 +70,6 @@ class BlipTVIE(InfoExtractor):
         urlh = self._request_webpage(request, None, False,
             u'unable to download video info webpage')
 
-        if urlh.headers.get('Content-Type', '').startswith('video/'): # Direct download
-            basename = url.split('/')[-1]
-            title,ext = os.path.splitext(basename)
-            title = title.decode('UTF-8')
-            ext = ext.replace('.', '')
-            self.report_direct_download(title)
-            return {
-                'id': title,
-                'url': url,
-                'uploader': None,
-                'upload_date': None,
-                'title': title,
-                'ext': ext,
-                'urlhandle': urlh
-            }
-
         try:
             json_code_bytes = urlh.read()
             json_code = json_code_bytes.decode('utf-8')
diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py
index ba46a7bc7..9d39c632a 100644
--- a/youtube_dl/extractor/common.py
+++ b/youtube_dl/extractor/common.py
@@ -63,8 +63,6 @@ class InfoExtractor(object):
     ext:            Video filename extension.
     format:         The video format, defaults to ext (used for --get-format)
     player_url:     SWF Player URL (used for rtmpdump).
-    urlhandle:      [internal] The urlHandle to be used to download the file,
-                    like returned by urllib.request.urlopen
 
     The following fields are optional: