M0 scaffold — Python addon + Rust sidecar
Kodi addon (plugin.video.torttube) shell with Cargo workspace for the rustypipe-backed sidecar binary. No working extraction yet — addon.xml parses, main.py is a notification stub, sidecar's main.rs prints scaffold banner. See MILESTONES.md for M1..M6. License: GPL-3.0-or-later (matches rustypipe + NewPipeExtractor).
This commit is contained in:
commit
238dfb8391
11 changed files with 231 additions and 0 deletions
43
README.md
Normal file
43
README.md
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
# torttube
|
||||
|
||||
Kodi addon for YouTube via [RustyPipe](https://codeberg.org/ThetaDev/rustypipe)
|
||||
extraction + [SponsorBlock](https://sponsor.ajay.app/) segment skipping.
|
||||
|
||||
Replaces the dead `plugin.video.youtube` on LibreELEC RPi TVs after Google
|
||||
required account-linking for the upstream addon.
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
Kodi (LibreELEC, RPi)
|
||||
└── plugin.video.torttube [Python addon — UI, browse, settings]
|
||||
└── torttube-sidecar [Rust binary — Innertube extraction,
|
||||
SponsorBlock fetch, JSON-over-stdio]
|
||||
├── rustypipe [YouTube Innertube client + sig decode]
|
||||
└── sponsorblock [REST API client, SHA-256 prefix lookup]
|
||||
```
|
||||
|
||||
Kodi addons are Python — the engine layer (n-param sig decoding, Innertube,
|
||||
SponsorBlock hashing) lives in a Rust sidecar so we get a single maintained
|
||||
extraction surface and clean aarch64/armv7 cross-compiles.
|
||||
|
||||
## Status
|
||||
|
||||
M0 scaffold. Nothing playable yet — see [MILESTONES.md](MILESTONES.md).
|
||||
|
||||
## Upstream contributions
|
||||
|
||||
NewPipeExtractor (Java) is the canonical reference for Innertube behaviour.
|
||||
When we hit a corner case RustyPipe doesn't cover we look at NPE for the
|
||||
fix, then either port it to RustyPipe (Rust PR) or fix NPE directly (Java
|
||||
PR). Either way upstream lands a real improvement.
|
||||
|
||||
Issues we're watching:
|
||||
- [NPE #1339](https://github.com/TeamNewPipe/NewPipeExtractor/issues/1339) — n-parameter deobfuscation
|
||||
- [NPE #1444](https://github.com/TeamNewPipe/NewPipeExtractor/issues/1444) — distinguish unavailable vs unextractable
|
||||
- [NPE #1360](https://github.com/TeamNewPipe/NewPipeExtractor/issues/1360) — refactor link handlers (help wanted)
|
||||
- [NPE #1357](https://github.com/TeamNewPipe/NewPipeExtractor/issues/1357) — JDoc checks in PR pipeline (good first issue)
|
||||
|
||||
## License
|
||||
|
||||
GPL-3.0-or-later. Matches RustyPipe and NewPipeExtractor.
|
||||
Loading…
Add table
Add a link
Reference in a new issue