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:
Kayos 2026-05-23 08:14:09 -07:00
commit 238dfb8391
11 changed files with 231 additions and 0 deletions

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.torttube"
name="torttube"
version="0.0.1"
provider-name="Sulkta-Coop">
<requires>
<import addon="xbmc.python" version="3.0.0"/>
<import addon="script.module.requests" version="2.22.0"/>
<import addon="inputstream.adaptive" version="2.0.0" optional="true"/>
</requires>
<extension point="xbmc.python.pluginsource" library="main.py">
<provides>video</provides>
</extension>
<extension point="xbmc.addon.metadata">
<summary lang="en_gb">YouTube via RustyPipe + SponsorBlock</summary>
<description lang="en_gb">Browse, search, and play YouTube videos without an account. Backed by a native RustyPipe sidecar binary. SponsorBlock segments are skipped automatically.</description>
<license>GPL-3.0-or-later</license>
<source>http://192.168.0.5:3001/Sulkta-Coop/torttube</source>
<platform>linux</platform>
<language>en</language>
</extension>
</addon>

View file

@ -0,0 +1,24 @@
# torttube — Kodi YouTube addon
# SPDX-License-Identifier: GPL-3.0-or-later
"""M0 scaffold entry point. Sidecar handoff lands in M1+."""
import sys
import xbmcgui
import xbmcplugin
_HANDLE = int(sys.argv[1]) if len(sys.argv) > 1 else -1
def main() -> None:
xbmcgui.Dialog().notification(
"torttube",
"M0 scaffold — playback wires up in M3",
xbmcgui.NOTIFICATION_INFO,
2500,
)
xbmcplugin.endOfDirectory(_HANDLE)
if __name__ == "__main__":
main()

View file

@ -0,0 +1,7 @@
# torttube English (en_GB) strings
# SPDX-License-Identifier: GPL-3.0-or-later
msgid ""
msgstr ""
"Project-Id-Version: torttube\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Language: en_gb\n"

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<settings version="1">
<section id="torttube">
<category id="general" label="General">
<group id="placeholder">
<!-- M2+ — SponsorBlock category toggles, sidecar path override, etc. -->
</group>
</category>
</section>
</settings>