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,
|
'sleep_interval': opts.sleep_interval,
|
||||||
'max_sleep_interval': opts.max_sleep_interval,
|
'max_sleep_interval': opts.max_sleep_interval,
|
||||||
'sleep_interval_subtitles': opts.sleep_interval_subtitles,
|
'sleep_interval_subtitles': opts.sleep_interval_subtitles,
|
||||||
|
'jsi_preference': opts.jsi_preference,
|
||||||
'external_downloader': opts.external_downloader,
|
'external_downloader': opts.external_downloader,
|
||||||
'download_ranges': opts.download_ranges,
|
'download_ranges': opts.download_ranges,
|
||||||
'force_keyframes_at_cuts': opts.force_keyframes_at_cuts,
|
'force_keyframes_at_cuts': opts.force_keyframes_at_cuts,
|
||||||
|
|
|
@ -107,6 +107,11 @@ def __init__(
|
||||||
if unsupported_features := self._features - _ALL_FEATURES:
|
if unsupported_features := self._features - _ALL_FEATURES:
|
||||||
raise ExtractorError(f'Unsupported features: {unsupported_features}, allowed 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)]
|
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}')
|
self.write_debug(f'Allowed JSI keys: {jsi_keys}')
|
||||||
handler_classes = [_JSI_HANDLERS[key] for key in 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,
|
self._downloader, url=self._url, timeout=timeout, features=self._features,
|
||||||
user_agent=user_agent, **jsi_params.get(cls.JSI_KEY, {}),
|
user_agent=user_agent, **jsi_params.get(cls.JSI_KEY, {}),
|
||||||
) for cls in handler_classes}
|
) 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._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)
|
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',
|
'--jsi-preference',
|
||||||
metavar='JSI', dest='jsi_preference', default=[], type='str', action='callback',
|
metavar='JSI', dest='jsi_preference', default=[], type='str', action='callback',
|
||||||
callback=_list_from_options_callback,
|
callback=_list_from_options_callback,
|
||||||
help=(
|
help='Preferred JS interpreters to use during extraction. Can be given as comma-separated values.')
|
||||||
'Preferred JS interpreters to use during extraction. Can be given as comma-separated values.')
|
|
||||||
)
|
|
||||||
|
|
||||||
verbosity = optparse.OptionGroup(parser, 'Verbosity and Simulation Options')
|
verbosity = optparse.OptionGroup(parser, 'Verbosity and Simulation Options')
|
||||||
verbosity.add_option(
|
verbosity.add_option(
|
||||||
|
|
Loading…
Reference in a new issue