M6 — cross-compile aarch64-musl + addon.zip + install docs

scripts/build-addon-zip.sh runs the whole pipeline from a host with ssh
lucy:
- one-shot messense/rust-musl-cross:aarch64-musl container builds the
  sidecar static (6.2MB stripped). Doesn't mutate crafting-table.
- fetches yt-dlp_linux_aarch64 from the upstream release page so Tier 2
  + Tier 3 work on the Pi (LibreELEC ships no Python YouTube tools)
- packages everything into plugin.video.torttube.zip with the Kodi
  install-from-zip layout
- drops the zip at /mnt/user/downloads/torttube/ on Lucy SMB

Cargo.toml swaps rustypipe to default-features=false +
rustls-tls-webpki-roots so the cross-compile is openssl-free.

addon.xml drops the unused script.module.requests requirement — main.py
only uses Python stdlib + Kodi's own modules.

docs/install.md walks the Kodi UI flow + a smoke curl that fires
Player.Open via JSON-RPC. Pi-side smoke is pending Cobb's install on
192.168.0.158.
This commit is contained in:
Kayos 2026-05-23 08:54:46 -07:00
parent 9b2a47c909
commit f4ceae3b70
5 changed files with 139 additions and 7 deletions

View file

@ -11,8 +11,11 @@ name = "torttube-sidecar"
path = "src/main.rs"
[dependencies]
# Tier 1 — native Rust Innertube
rustypipe = "0.11"
# Tier 1 — native Rust Innertube.
# default-features=false skips rustypipe's default-tls which pulls in
# native-tls / openssl — we use rustls so cross-compile to aarch64-musl
# stays openssl-free.
rustypipe = { version = "0.11", default-features = false, features = ["rustls-tls-webpki-roots"] }
# Tier 2 + 3 — yt-dlp subprocess shell-out (no library, just std::process)