Repository navigation
Conversation
sendtokodi v0.10.0 re-architected the add-on around yt-dlp and added a "system" yt-dlp source: the add-on can import a distribution-provided yt_dlp. Wire the packaged yt-dlp into it: - expose it (and its solver scripts, yt-dlp-ejs) as lib/yt_dlp / lib/yt_dlp_ejs with passthru.pythonPath = "lib"; - default ytdlp_source to "system" and deno_autodownload to false: with the packaged yt-dlp nothing is downloaded at runtime; - drop use-yt-dlp-only.patch; add a nix-update updateScript.
|
Please do not ignore the PR template, it make reviewing your PR harder. It also makes it unclear if you read the contribution guidlines or not, which are important. Please re-apply the template, carefully review the guidelines, fill out the template. and re-open your PR. |
|
@zibaone i want to emphasize that this is a really great PR you opened and i would be very happy to merge it after i have a chance to review it (there is a fair bit to it!) so please do not take the closing of this PR as a rejection... just a request for changes... thank you for your efforts up to this point! |
|
Update: the commit now carries the |
Apologies for the initial submission not following the PR template. Thanks @RossSmyth and @aanderse for the guidance — the description below now follows the template, and the guidelines (incl. the automation/AI policy) have been reviewed before re-opening.
sendtokodi v0.10.0 re-architected the add-on around yt-dlp and added a
systemyt-dlp source: instead of vendoring yt-dlp, the add-on can now import a distribution-providedyt_dlp. This PR wires the packaged yt-dlp into that source.The packaged 0.9.924 predates this rework: its patches no longer apply and it can no longer resolve many sites.
Changes
use-yt-dlp-only.patch.systemsource: expose the packaged yt-dlp and its challenge-solver scripts (yt-dlp-ejs) aslib/yt_dlp/lib/yt_dlp_ejswithpassthru.pythonPath = "lib"(thescript.module.*mechanism).ytdlp_source = "system"anddeno_autodownload = falseso the defaults work with no runtime downloads (the packaged yt-dlp carries the solver scripts and a baked-in Deno path, see yt-dlp: make deno available to python dependents #466381). Both are plainsettingsvalues, easy to flip if you prefer the upstream defaults.passthru.updateScriptvia nix-update (addonUpdateScriptdoes not apply: the add-on is not distributed through mirrors.kodi.tv).Testing (x86_64-linux)
kodiPackages.sendtokodibuilds;lib/yt_dlp/lib/yt_dlp_ejspoint at the packaged yt-dlp / solver.kodi.withPackages (p: [ p.sendtokodi p.inputstream-adaptive ]), headless end-to-end (no Deno onPATH; the packaged yt-dlp provides its own Deno): resolves with the packaged yt-dlp —Using system yt-dlp 2026.08.19— and plays (DASH 1080p, streams 137+140), with no runtime downloads.kodiPackages.inputstream-adaptivealongside.yt-dlp source: system; Deno auto-update off, "Installed Deno version: not installed"), and playback works end-to-end with audio, including a full play-through to end-of-stream.nixpkgs-review pr 570301(x86_64-linux): 1 package built —kodiPackages.sendtokodi(evaluated via the PR's CI eval, built against the PR head6215159).References
systemsource: sendtokodi PR #185 / PR #186 (by @zibaone).PATH#466014 rejected).Things done
passthru.tests.nixpkgs-reviewon this PR. See nixpkgs-review usage../result/bin/. (Kodi add-on: no such binary files; runtime was exercised by the end-to-end tests above.)Automation/AI disclosure
Per the automation/AI policy: this change — package file, commit message and this description — was developed with the assistance of an LLM-based tool (Hermes Agent, primary model
deepseek-v4.1-flash). It was reviewed, tested and is submitted by me (@zibaone), who is responsible for it and can answer questions about it. Testing was scripted (headless Kodi, driven over JSON-RPC) and reproducible; scripts available on request. The commit carries anAssisted-by:trailer.