mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2025-07-27 07:38:30 +00:00
Make extractor-designated impersonation override --impersonate
(#13792)
Fix 32809eb2da
Authored by: bashonly
This commit is contained in:
parent
2ac3eb9837
commit
3e49bc8a1b
@ -3232,15 +3232,6 @@ def dl(self, name, info, subtitle=False, test=False):
|
||||
else:
|
||||
params = self.params
|
||||
|
||||
impersonate = info.pop('impersonate', None)
|
||||
# Do not override --impersonate with extractor-specified impersonation
|
||||
if params.get('impersonate') is None:
|
||||
available_target, requested_targets = self._parse_impersonate_targets(impersonate)
|
||||
if available_target:
|
||||
info['impersonate'] = available_target
|
||||
elif requested_targets:
|
||||
self.report_warning(self._unavailable_targets_message(requested_targets), only_once=True)
|
||||
|
||||
fd = get_suitable_downloader(info, params, to_stdout=(name == '-'))(self, params)
|
||||
if not test:
|
||||
for ph in self._progress_hooks:
|
||||
|
@ -495,3 +495,14 @@ def _debug_cmd(self, args, exe=None):
|
||||
exe = os.path.basename(args[0])
|
||||
|
||||
self.write_debug(f'{exe} command line: {shell_quote(args)}')
|
||||
|
||||
def _get_impersonate_target(self, info_dict):
|
||||
impersonate = info_dict.get('impersonate')
|
||||
if impersonate is None:
|
||||
return None
|
||||
available_target, requested_targets = self.ydl._parse_impersonate_targets(impersonate)
|
||||
if available_target:
|
||||
return available_target
|
||||
elif requested_targets:
|
||||
self.report_warning(self.ydl._unavailable_targets_message(requested_targets))
|
||||
return None
|
||||
|
@ -28,8 +28,9 @@ def real_download(self, filename, info_dict):
|
||||
url = info_dict['url']
|
||||
request_data = info_dict.get('request_data', None)
|
||||
request_extensions = {}
|
||||
if info_dict.get('impersonate') is not None:
|
||||
request_extensions['impersonate'] = info_dict['impersonate']
|
||||
impersonate_target = self._get_impersonate_target(info_dict)
|
||||
if impersonate_target is not None:
|
||||
request_extensions['impersonate'] = impersonate_target
|
||||
|
||||
class DownloadContext(dict):
|
||||
__getattr__ = dict.get
|
||||
|
Loading…
Reference in New Issue
Block a user