mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2025-03-09 12:50:23 -05:00
jsi pref
This commit is contained in:
parent
8e78e77d22
commit
af4f71c44a
3 changed files with 11 additions and 4 deletions
|
@ -941,6 +941,7 @@ def parse_options(argv=None):
|
|||
'sleep_interval': opts.sleep_interval,
|
||||
'max_sleep_interval': opts.max_sleep_interval,
|
||||
'sleep_interval_subtitles': opts.sleep_interval_subtitles,
|
||||
'jsi_preference': opts.jsi_preference,
|
||||
'external_downloader': opts.external_downloader,
|
||||
'download_ranges': opts.download_ranges,
|
||||
'force_keyframes_at_cuts': opts.force_keyframes_at_cuts,
|
||||
|
|
|
@ -107,6 +107,11 @@ def __init__(
|
|||
if unsupported_features := self._features - _ALL_FEATURES:
|
||||
raise ExtractorError(f'Unsupported features: {unsupported_features}, allowed features: {_ALL_FEATURES}')
|
||||
|
||||
user_prefs = self._downloader.params.get('jsi_preference', [])
|
||||
for invalid_key in [jsi_key for jsi_key in user_prefs if jsi_key not in _JSI_HANDLERS]:
|
||||
self.report_warning(f'`{invalid_key}` is not a valid JSI, ignoring preference setting')
|
||||
user_prefs.remove(invalid_key)
|
||||
|
||||
jsi_keys = [key for key in get_jsi_keys(only_include or _JSI_HANDLERS) if key not in get_jsi_keys(exclude)]
|
||||
self.write_debug(f'Allowed JSI keys: {jsi_keys}')
|
||||
handler_classes = [_JSI_HANDLERS[key] for key in jsi_keys
|
||||
|
@ -120,7 +125,10 @@ def __init__(
|
|||
self._downloader, url=self._url, timeout=timeout, features=self._features,
|
||||
user_agent=user_agent, **jsi_params.get(cls.JSI_KEY, {}),
|
||||
) for cls in handler_classes}
|
||||
self.preferences: set[JSIPreference] = {order_to_pref(preferred_order, 100)} | _JSI_PREFERENCES
|
||||
|
||||
self.preferences: set[JSIPreference] = {
|
||||
order_to_pref(user_prefs, 10000), order_to_pref(preferred_order, 100)} | _JSI_PREFERENCES
|
||||
|
||||
self._fallback_jsi = get_jsi_keys(handler_classes) if fallback_jsi == 'all' else get_jsi_keys(fallback_jsi)
|
||||
self._is_test = self._downloader.params.get('test', False)
|
||||
|
||||
|
|
|
@ -1142,9 +1142,7 @@ def _alias_callback(option, opt_str, value, parser, opts, nargs):
|
|||
'--jsi-preference',
|
||||
metavar='JSI', dest='jsi_preference', default=[], type='str', action='callback',
|
||||
callback=_list_from_options_callback,
|
||||
help=(
|
||||
'Preferred JS interpreters to use during extraction. Can be given as comma-separated values.')
|
||||
)
|
||||
help='Preferred JS interpreters to use during extraction. Can be given as comma-separated values.')
|
||||
|
||||
verbosity = optparse.OptionGroup(parser, 'Verbosity and Simulation Options')
|
||||
verbosity.add_option(
|
||||
|
|
Loading…
Reference in a new issue