youtube-dl

Another place where youtube-dl lives on
git clone git://git.oshgnacknak.de/youtube-dl.git
Log | Files | Refs | README | LICENSE

commit 3446dfb7cb84025f67250be069e44020d3606b84
parent db16276b7cc0d106d62bc6b280787bfa4022f4e3
Author: Philipp Hagemeister <phihag@phihag.de>
Date:   Sat, 12 Jan 2013 16:49:13 +0100

Proper support for changing User-Agents from IEs

Diffstat:
Myoutube_dl/FileDownloader.py | 2++
Myoutube_dl/InfoExtractors.py | 8++++----
Myoutube_dl/utils.py | 5+++++
3 files changed, 11 insertions(+), 4 deletions(-)

diff --git 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 @@ -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 @@ -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):