diff options
author | Philipp Hagemeister <phihag@phihag.de> | 2013-01-12 16:49:13 +0100 |
---|---|---|
committer | Philipp Hagemeister <phihag@phihag.de> | 2013-01-12 16:49:13 +0100 |
commit | 3446dfb7cb84025f67250be069e44020d3606b84 (patch) | |
tree | d7fc131820c623b23b9630d45e4c6df7906c0d64 /youtube_dl | |
parent | db16276b7cc0d106d62bc6b280787bfa4022f4e3 (diff) |
Proper support for changing User-Agents from IEs
Diffstat (limited to 'youtube_dl')
-rw-r--r-- | youtube_dl/FileDownloader.py | 2 | ||||
-rwxr-xr-x | youtube_dl/InfoExtractors.py | 8 | ||||
-rw-r--r-- | youtube_dl/utils.py | 5 |
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): |