diff options
Diffstat (limited to 'youtube_dl/downloader/http.py')
| -rw-r--r-- | youtube_dl/downloader/http.py | 15 | 
1 files changed, 12 insertions, 3 deletions
diff --git a/youtube_dl/downloader/http.py b/youtube_dl/downloader/http.py index f79e6a995..6caf7451e 100644 --- a/youtube_dl/downloader/http.py +++ b/youtube_dl/downloader/http.py @@ -27,8 +27,16 @@ class HttpFD(FileDownloader):              headers['Youtubedl-user-agent'] = info_dict['user_agent']          if 'http_referer' in info_dict:              headers['Referer'] = info_dict['http_referer'] -        basic_request = compat_urllib_request.Request(url, None, headers) -        request = compat_urllib_request.Request(url, None, headers) +        add_headers = info_dict.get('http_headers') +        if add_headers: +            headers.update(add_headers) +        data = info_dict.get('http_post_data') +        http_method = info_dict.get('http_method') +        basic_request = compat_urllib_request.Request(url, data, headers) +        request = compat_urllib_request.Request(url, data, headers) +        if http_method is not None: +            basic_request.get_method = lambda: http_method +            request.get_method = lambda: http_method          is_test = self.params.get('test', False) @@ -185,7 +193,8 @@ class HttpFD(FileDownloader):              self.to_stderr(u"\n")              self.report_error(u'Did not get any data blocks')              return False -        stream.close() +        if tmpfilename != u'-': +            stream.close()          self.report_finish(data_len_str, (time.time() - start))          if data_len is not None and byte_counter != data_len:              raise ContentTooShortError(byte_counter, int(data_len))  | 
