aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Hagemeister <phihag@phihag.de>2013-01-12 16:49:13 +0100
committerPhilipp Hagemeister <phihag@phihag.de>2013-01-12 16:49:13 +0100
commit3446dfb7cb84025f67250be069e44020d3606b84 (patch)
treed7fc131820c623b23b9630d45e4c6df7906c0d64
parentdb16276b7cc0d106d62bc6b280787bfa4022f4e3 (diff)
downloadyoutube-dl-3446dfb7cb84025f67250be069e44020d3606b84.tar.xz
Proper support for changing User-Agents from IEs
-rw-r--r--youtube_dl/FileDownloader.py2
-rwxr-xr-xyoutube_dl/InfoExtractors.py8
-rw-r--r--youtube_dl/utils.py5
3 files changed, 11 insertions, 4 deletions
diff --git a/youtube_dl/FileDownloader.py b/youtube_dl/FileDownloader.py
index 51df4c175..04ecd1ac5 100644
--- a/youtube_dl/FileDownloader.py
+++ b/youtube_dl/FileDownloader.py
@@ -620,6 +620,8 @@ class FileDownloader(object):
# Do not include the Accept-Encoding header
headers = {'Youtubedl-no-compression': 'True'}
+ if 'user_agent' in info_dict:
+ headers['Youtubedl-user-agent'] = info_dict['user_agent']
basic_request = compat_urllib_request.Request(url, None, headers)
request = compat_urllib_request.Request(url, None, headers)
diff --git a/youtube_dl/InfoExtractors.py b/youtube_dl/InfoExtractors.py
index 57267ccec..971248022 100755
--- a/youtube_dl/InfoExtractors.py
+++ b/youtube_dl/InfoExtractors.py
@@ -2209,6 +2209,7 @@ class BlipTVIE(InfoExtractor):
cchar = '?'
json_url = url + cchar + 'skin=json&version=2&no_wrap=1'
request = compat_urllib_request.Request(json_url)
+ request.add_header('User-Agent', 'iTunes/10.6.1')
self.report_extraction(mobj.group(1))
info = None
try:
@@ -2229,8 +2230,7 @@ class BlipTVIE(InfoExtractor):
'urlhandle': urlh
}
except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
- self._downloader.trouble(u'ERROR: unable to download video info webpage: %s' % compat_str(err))
- return
+ raise ExtractorError(u'ERROR: unable to download video info webpage: %s' % compat_str(err))
if info is None: # Regular URL
try:
json_code_bytes = urlh.read()
@@ -2263,13 +2263,13 @@ class BlipTVIE(InfoExtractor):
'format': data['media']['mimeType'],
'thumbnail': data['thumbnailUrl'],
'description': data['description'],
- 'player_url': data['embedUrl']
+ 'player_url': data['embedUrl'],
+ 'user_agent': 'iTunes/10.6.1',
}
except (ValueError,KeyError) as err:
self._downloader.trouble(u'ERROR: unable to parse video information: %s' % repr(err))
return
- std_headers['User-Agent'] = 'iTunes/10.6.1'
return [info]
diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py
index 0e37390a2..08be9e637 100644
--- a/youtube_dl/utils.py
+++ b/youtube_dl/utils.py
@@ -524,6 +524,11 @@ class YoutubeDLHandler(compat_urllib_request.HTTPHandler):
if 'Accept-encoding' in req.headers:
del req.headers['Accept-encoding']
del req.headers['Youtubedl-no-compression']
+ if 'Youtubedl-user-agent' in req.headers:
+ if 'User-Agent' in req.headers:
+ del req.headers['User-Agent']
+ req.headers['User-Agent'] = req.headers['Youtubedl-user-agent']
+ del req.headers['Youtubedl-user-agent']
return req
def http_response(self, req, resp):