diff options
| -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): | 
