Add Deno JavaScript runtime support for yt-dlp YouTube extraction#168
Merged
firsttris merged 1 commit intofirsttris:masterfrom Mar 20, 2026
Merged
Conversation
yt-dlp requires a JS runtime (Deno) to solve YouTube's bot challenges.
This adds deno_manager.py to handle locating and downloading the Deno
binary, and wires it into the yt-dlp options in service.py.
Two settings are exposed in the addon configuration:
- Enable Deno (deno_enabled, default: on) — controls whether Deno is
used at all. Disable this to run yt-dlp without any JS runtime.
- Auto-download Deno (deno_autodownload, default: on, advanced) —
when enabled, automatically downloads the Deno binary from GitHub
Releases if not already present, and updates it whenever DENO_VERSION
in deno_manager.py changes (i.e. on addon updates). When disabled,
only an existing installation is used.
Deno is downloaded to:
special://profile/addon_data/plugin.video.sendtokodi/deno/
Also fixes a silent failure mode where createListItemFromVideo raising
an exception (e.g. no supported streams found) left setResolvedUrl
uncalled, causing Kodi to silently do nothing instead of showing an error.
Tested on Raspberry Pi 4 running LibreELEC.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Closed
Owner
|
thx |
Owner
|
worked for me on linux as well |
Contributor
Author
|
@firsttris can you please check? |
Owner
|
@glogiotatidis i checked, worked in my machine (bazzite) |
Contributor
Author
|
🎉 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
yt-dlp requires a JS runtime (Deno) to solve YouTube's bot challenges. This adds deno_manager.py to handle locating and downloading the Deno binary, and wires it into the yt-dlp options in service.py.
Two settings are exposed in the addon configuration:
Enable Deno (deno_enabled, default: on) — controls whether Deno is used at all. Disable this to run yt-dlp without any JS runtime.
Auto-download Deno (deno_autodownload, default: on, advanced) — when enabled, automatically downloads the Deno binary from GitHub Releases if not already present, and updates it whenever DENO_VERSION in deno_manager.py changes (i.e. on addon updates). When disabled, only an existing installation is used.
Deno is downloaded to:
special://profile/addon_data/plugin.video.sendtokodi/deno/
Also fixes a silent failure mode where createListItemFromVideo raising an exception (e.g. no supported streams found) left setResolvedUrl uncalled, causing Kodi to silently do nothing instead of showing an error.
Tested on Raspberry Pi 4 running LibreELEC.