Skip to content

kodiPackages.sendtokodi: 0.9.924 -> 0.10.0 - #570301

Closed
zibaone wants to merge 1 commit into
NixOS:masterfrom
zibaone:sendtokodi-0.10.0
Closed

zibaone wants to merge 1 commit into
NixOS:masterfrom
zibaone:sendtokodi-0.10.0

Conversation

@zibaone

@zibaone zibaone commented Oct 4, 2026 •

Copy link
Copy Markdown

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 system yt-dlp source: instead of vendoring yt-dlp, the add-on can now import a distribution-provided yt_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

  • Bump to v0.10.0; drop the obsolete use-yt-dlp-only.patch.
  • Wire the system source: expose the packaged yt-dlp and its challenge-solver scripts (yt-dlp-ejs) as lib/yt_dlp / lib/yt_dlp_ejs with passthru.pythonPath = "lib" (the script.module.* mechanism).
  • Default ytdlp_source = "system" and deno_autodownload = false so 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 plain settings values, easy to flip if you prefer the upstream defaults.
  • Add passthru.updateScript via nix-update (addonUpdateScript does not apply: the add-on is not distributed through mirrors.kodi.tv).

Testing (x86_64-linux)

  • kodiPackages.sendtokodi builds; lib/yt_dlp / lib/yt_dlp_ejs point at the packaged yt-dlp / solver.
  • kodi.withPackages (p: [ p.sendtokodi p.inputstream-adaptive ]), headless end-to-end (no Deno on PATH; 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.
  • For DASH streams, install kodiPackages.inputstream-adaptive alongside.
  • Also exercised interactively on a live desktop session (windowed Kodi 21.3, same package, PipeWire audio): the settings dialog shows the new defaults (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 head 6215159).

References

Things done

  • Built on platform:
    • x86_64-linux
    • aarch64-linux
    • aarch64-darwin
  • Tested, as applicable:
  • Ran nixpkgs-review on this PR. See nixpkgs-review usage.
  • Tested basic functionality of all binary files, usually in ./result/bin/. (Kodi add-on: no such binary files; runtime was exercised by the end-to-end tests above.)
  • Nixpkgs Release Notes
    • Package update: when the change is major or breaking.
  • NixOS Release Notes
    • Module addition: when adding a new NixOS module.
    • Module update: when the change is significant.
  • Fits CONTRIBUTING.md, pkgs/README.md, maintainers/README.md and other READMEs.
  • Follows the automation/AI policy.

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 an Assisted-by: trailer.

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.
@nixpkgs-ci nixpkgs-ci Bot added 8.has: package (update) This PR updates a package to a newer version 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-darwin: 1 This PR causes 1 package to rebuild on Darwin. 10.rebuild-linux: 1 This PR causes 1 package to rebuild on Linux. 12.first-time contribution This PR is the author's first one; please be gentle! labels Oct 4, 2026
@RossSmyth

RossSmyth commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

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.

@RossSmyth RossSmyth closed this Oct 5, 2026
@aanderse

aanderse commented Oct 6, 2026

Copy link
Copy Markdown
Member

@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!

@zibaone

zibaone commented Oct 6, 2026

Copy link
Copy Markdown
Author

Update: the commit now carries the Assisted-by: trailer and the description follows the template. Small complication: the amend rewrote the branch head while this PR was closed, and GitHub does not allow re-opening a PR whose branch was force-pushed (viewerCanReopen=false — verified, including the documented restore-the-old-head workaround). So I've opened #570970 with the identical revision, cross-referencing this thread. Sorry for the extra PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

8.has: package (update) This PR updates a package to a newer version 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-darwin: 1 This PR causes 1 package to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-linux: 1 This PR causes 1 package to rebuild on Linux. 12.first-time contribution This PR is the author's first one; please be gentle!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants