mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2026-06-21 18:24:47 +00:00
Compare commits
No commits in common. "ef103b2d115bd0e880f9cfd2f7dd705f48e4b40d" and "8820101aa3152e5f4811541c645f8b5de231ba8c" have entirely different histories.
ef103b2d11
...
8820101aa3
@ -3232,6 +3232,15 @@ class YoutubeDL:
|
|||||||
else:
|
else:
|
||||||
params = self.params
|
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)
|
fd = get_suitable_downloader(info, params, to_stdout=(name == '-'))(self, params)
|
||||||
if not test:
|
if not test:
|
||||||
for ph in self._progress_hooks:
|
for ph in self._progress_hooks:
|
||||||
@ -3707,8 +3716,6 @@ class YoutubeDL:
|
|||||||
return {k: filter_fn(v) for k, v in obj.items() if not reject(k, v)}
|
return {k: filter_fn(v) for k, v in obj.items() if not reject(k, v)}
|
||||||
elif isinstance(obj, (list, tuple, set, LazyList)):
|
elif isinstance(obj, (list, tuple, set, LazyList)):
|
||||||
return list(map(filter_fn, obj))
|
return list(map(filter_fn, obj))
|
||||||
elif isinstance(obj, ImpersonateTarget):
|
|
||||||
return str(obj)
|
|
||||||
elif obj is None or isinstance(obj, (str, int, float, bool)):
|
elif obj is None or isinstance(obj, (str, int, float, bool)):
|
||||||
return obj
|
return obj
|
||||||
else:
|
else:
|
||||||
|
|||||||
@ -495,14 +495,3 @@ class FileDownloader:
|
|||||||
exe = os.path.basename(args[0])
|
exe = os.path.basename(args[0])
|
||||||
|
|
||||||
self.write_debug(f'{exe} command line: {shell_quote(args)}')
|
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,9 +28,8 @@ class HttpFD(FileDownloader):
|
|||||||
url = info_dict['url']
|
url = info_dict['url']
|
||||||
request_data = info_dict.get('request_data', None)
|
request_data = info_dict.get('request_data', None)
|
||||||
request_extensions = {}
|
request_extensions = {}
|
||||||
impersonate_target = self._get_impersonate_target(info_dict)
|
if info_dict.get('impersonate') is not None:
|
||||||
if impersonate_target is not None:
|
request_extensions['impersonate'] = info_dict['impersonate']
|
||||||
request_extensions['impersonate'] = impersonate_target
|
|
||||||
|
|
||||||
class DownloadContext(dict):
|
class DownloadContext(dict):
|
||||||
__getattr__ = dict.get
|
__getattr__ = dict.get
|
||||||
|
|||||||
@ -42,7 +42,6 @@ class HotStarBaseIE(InfoExtractor):
|
|||||||
}
|
}
|
||||||
|
|
||||||
def _has_active_subscription(self, cookies, server_time):
|
def _has_active_subscription(self, cookies, server_time):
|
||||||
server_time = int_or_none(server_time) or int(time.time())
|
|
||||||
expiry = traverse_obj(cookies, (
|
expiry = traverse_obj(cookies, (
|
||||||
self._TOKEN_NAME, 'value', {jwt_decode_hs256}, 'sub', {json.loads},
|
self._TOKEN_NAME, 'value', {jwt_decode_hs256}, 'sub', {json.loads},
|
||||||
'subscriptions', 'in', ..., 'expiry', {parse_iso8601}, all, {max})) or 0
|
'subscriptions', 'in', ..., 'expiry', {parse_iso8601}, all, {max})) or 0
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user