Proper support for changing User-Agents from IEs

This commit is contained in:
Philipp Hagemeister 2013-01-12 16:49:13 +01:00
parent db16276b7c
commit 3446dfb7cb
3 changed files with 11 additions and 4 deletions

View file

@ -620,6 +620,8 @@ class FileDownloader(object):
# Do not include the Accept-Encoding header # Do not include the Accept-Encoding header
headers = {'Youtubedl-no-compression': 'True'} 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) basic_request = compat_urllib_request.Request(url, None, headers)
request = compat_urllib_request.Request(url, None, headers) request = compat_urllib_request.Request(url, None, headers)

View file

@ -2209,6 +2209,7 @@ class BlipTVIE(InfoExtractor):
cchar = '?' cchar = '?'
json_url = url + cchar + 'skin=json&version=2&no_wrap=1' json_url = url + cchar + 'skin=json&version=2&no_wrap=1'
request = compat_urllib_request.Request(json_url) request = compat_urllib_request.Request(json_url)
request.add_header('User-Agent', 'iTunes/10.6.1')
self.report_extraction(mobj.group(1)) self.report_extraction(mobj.group(1))
info = None info = None
try: try:
@ -2229,8 +2230,7 @@ class BlipTVIE(InfoExtractor):
'urlhandle': urlh 'urlhandle': urlh
} }
except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err: 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)) raise ExtractorError(u'ERROR: unable to download video info webpage: %s' % compat_str(err))
return
if info is None: # Regular URL if info is None: # Regular URL
try: try:
json_code_bytes = urlh.read() json_code_bytes = urlh.read()
@ -2263,13 +2263,13 @@ class BlipTVIE(InfoExtractor):
'format': data['media']['mimeType'], 'format': data['media']['mimeType'],
'thumbnail': data['thumbnailUrl'], 'thumbnail': data['thumbnailUrl'],
'description': data['description'], 'description': data['description'],
'player_url': data['embedUrl'] 'player_url': data['embedUrl'],
'user_agent': 'iTunes/10.6.1',
} }
except (ValueError,KeyError) as err: except (ValueError,KeyError) as err:
self._downloader.trouble(u'ERROR: unable to parse video information: %s' % repr(err)) self._downloader.trouble(u'ERROR: unable to parse video information: %s' % repr(err))
return return
std_headers['User-Agent'] = 'iTunes/10.6.1'
return [info] return [info]

View file

@ -524,6 +524,11 @@ class YoutubeDLHandler(compat_urllib_request.HTTPHandler):
if 'Accept-encoding' in req.headers: if 'Accept-encoding' in req.headers:
del req.headers['Accept-encoding'] del req.headers['Accept-encoding']
del req.headers['Youtubedl-no-compression'] 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 return req
def http_response(self, req, resp): def http_response(self, req, resp):