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
22
addon/plugin.video.torttube/addon.xml
Normal file
22
addon/plugin.video.torttube/addon.xml
Normal 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>
|
||||
24
addon/plugin.video.torttube/main.py
Normal file
24
addon/plugin.video.torttube/main.py
Normal 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()
|
||||
|
|
@ -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"
|
||||
10
addon/plugin.video.torttube/resources/settings.xml
Normal file
10
addon/plugin.video.torttube/resources/settings.xml
Normal 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>
|
||||
Loading…
Add table
Add a link
Reference in a new issue