yt-dlp's EJS reports any Node.js < 22.0.0 as "(unsupported)" and disables
the node JS challenge provider (jsc/_builtin/node.py:
MIN_SUPPORTED_VERSION = (22, 0, 0)). The previously bundled node was v20,
so the YouTube nsig/signature solver silently degraded ("No supported
JavaScript runtime could be found"), and some videos/formats failed.
Download an official Node 22 LTS binary in linux.sh instead of the v20
asset from ffmpeg-builds. Verified: yt-dlp now reports
"JS runtimes: node-22.22.3" with the node challenge provider available.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The bundled Linux ffmpeg is dynamically linked with its shared libraries
in a sibling lib/ directory, but its RPATH is broken ("-Wl:../lib"), so it
cannot locate them. yt-dlp spawns ffmpeg as a child process, which then
fails to start and yt-dlp reports "ffprobe and ffmpeg not found", surfacing
in the UI as "Some error has occurred" on any download needing
post-processing (e.g. audio extraction to mp3).
Fix by exposing the bundled ffmpeg lib/ directory via LD_LIBRARY_PATH at
startup (inherited by the yt-dlp/ffmpeg child processes) on Linux.
Also add a "yt-dlp source" preference (Linux/Windows):
- "nightly" (default): app-managed standalone binary kept on the nightly
channel via `--update-to nightly`, so YouTube fixes arrive fastest.
- "system": use the yt-dlp found in PATH (apt/pip/brew); self-update via
`-U` is skipped since the system package manager owns it.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Gruvbox theme options added to ytDownload
* just some fix on the format of gruvbox options
* gruvbox theme css value added in the options
* Gruvbox theme added into the css files
* some fix for the PR
* Some other fixes