From ee98be4ad767b77e4d8dd9bfd3c7d10f2e8397ff Mon Sep 17 00:00:00 2001 From: sepro Date: Sat, 1 Nov 2025 08:23:35 +0100 Subject: [PATCH] [ie/youtube] Disable deno/bun caching (#14849) Fix 6224a3898821965a7d6a2cb9cc2de40a0fd6e6bc Closes #14847 Authored by: seproDev, coletdjnz Co-authored-by: coletdjnz --- yt_dlp/extractor/youtube/jsc/_builtin/bun.py | 4 ++++ yt_dlp/extractor/youtube/jsc/_builtin/deno.py | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/yt_dlp/extractor/youtube/jsc/_builtin/bun.py b/yt_dlp/extractor/youtube/jsc/_builtin/bun.py index 0a247ba971..8b0a6e5510 100644 --- a/yt_dlp/extractor/youtube/jsc/_builtin/bun.py +++ b/yt_dlp/extractor/youtube/jsc/_builtin/bun.py @@ -36,6 +36,7 @@ from yt_dlp.utils.networking import HTTPHeaderDict, clean_proxies # `--no-install` appears to disable the cache. # - npm auto-install may fail with an integrity error when using HTTP proxies # - npm auto-install HTTP proxy support may be limited on older Bun versions +# - Cannot disable the transpiler / specify lang for stdin @register_provider @@ -100,6 +101,9 @@ class BunJCP(EJSBaseJCP, BuiltinIEContentProvider): if self.ie.get_param('nocheckcertificate'): options['NODE_TLS_REJECT_UNAUTHORIZED'] = '0' + # Disable Bun transpiler cache + options['BUN_RUNTIME_TRANSPILER_CACHE_PATH'] = '0' + # Prevent segfault: options.pop('JSC_useJIT', None) if self.ejs_setting('jitless', ['false']) != ['false']: diff --git a/yt_dlp/extractor/youtube/jsc/_builtin/deno.py b/yt_dlp/extractor/youtube/jsc/_builtin/deno.py index 0c718db6d3..55d8fc5ea4 100644 --- a/yt_dlp/extractor/youtube/jsc/_builtin/deno.py +++ b/yt_dlp/extractor/youtube/jsc/_builtin/deno.py @@ -25,13 +25,19 @@ from yt_dlp.extractor.youtube.pot.provider import provider_bug_report_message from yt_dlp.utils import Popen, remove_terminal_sequences from yt_dlp.utils.networking import HTTPHeaderDict, clean_proxies +# KNOWN ISSUES: +# - Can't avoid analysis cache: https://github.com/yt-dlp/yt-dlp/pull/14849#issuecomment-3475840821 + @register_provider class DenoJCP(EJSBaseJCP, BuiltinIEContentProvider): PROVIDER_NAME = 'deno' JS_RUNTIME_NAME = 'deno' - _DENO_BASE_OPTIONS = ['--no-prompt', '--no-remote', '--no-lock', '--node-modules-dir=none', '--no-config'] + _DENO_BASE_OPTIONS = [ + '--ext=js', '--no-code-cache', '--no-prompt', '--no-remote', + '--no-lock', '--node-modules-dir=none', '--no-config', + ] DENO_NPM_LIB_FILENAME = 'yt.solver.deno.lib.js' _NPM_PACKAGES_CACHED = False