mirror of
https://github.com/nirvana-7777/script.service.ultimate.git
synced 2026-09-16 14:12:20 +02:00
Mod settings.xml and add Readme.md
This commit is contained in:
@@ -0,0 +1,165 @@
|
||||
# Ultimate Backend (Kodi Add-on)
|
||||
|
||||
**Ultimate Backend** is a background service for **Kodi** that provides a local API for **live TV streaming**, **EPG data**, and **manifest management** from supported online TV providers.
|
||||
|
||||
It acts as the **bridge between streaming services and Kodi’s PVR system**, designed specifically to work together with the official **[PVR IPTV Simple Client](https://github.com/kodi-pvr/pvr.iptvsimple)**.
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
This add-on runs a small local web service inside Kodi.
|
||||
It:
|
||||
- Logs in to supported streaming providers
|
||||
- Retrieves live channel lists and EPG data
|
||||
- Rewrites DASH manifests for Kodi playback
|
||||
- Generates M3U playlists compatible with PVR IPTV Simple
|
||||
|
||||
Once configured, your live TV channels from streaming platforms appear directly in Kodi’s **TV** section — complete with EPG, logos, and DRM handling.
|
||||
|
||||
---
|
||||
|
||||
## 📺 Supported Providers
|
||||
|
||||
Currently supported:
|
||||
- 🇩🇪 **Joyn (DE)**
|
||||
- 🇦🇹 **Joyn (AT)**
|
||||
- 🇨🇭 **Joyn (CH)**
|
||||
- 🇪🇺 **RTL+**
|
||||
|
||||
More providers will be added in future versions.
|
||||
|
||||
---
|
||||
|
||||
## ✨ Key Features
|
||||
|
||||
- 📡 **Automatic Provider Integration** – Unified access to multiple streaming services
|
||||
- 🔁 **Manifest Proxying & Rewriting** – For seamless DASH playback via InputStream Adaptive
|
||||
- 🔐 **DRM Support** – Handles Widevine, PlayReady, and ClearKey license data
|
||||
- 🗓️ **EPG Data** – XMLTV-compatible program guide per provider
|
||||
- 🎵 **M3U Playlist Generation** – One-click generation for Kodi PVR clients
|
||||
- ⚡ **Caching System** – Caches manifests and playlists for fast reloads
|
||||
- 🌍 **Regional Support** – Separate configurations for Germany, Austria, and Switzerland
|
||||
|
||||
---
|
||||
|
||||
## 🧩 Installation
|
||||
|
||||
1. Copy or clone this addon into your Kodi `addons` directory:
|
||||
```
|
||||
~/.kodi/addons/script.service.ultimate
|
||||
```
|
||||
|
||||
2. Required dependencies (Kodi installs these automatically):
|
||||
- `xbmc.python` ≥ 3.0.0
|
||||
- `script.module.bottle` ≥ 0.12.25
|
||||
- `script.module.requests` ≥ 2.25.1
|
||||
- `script.module.pycryptodome` ≥ 3.4.3
|
||||
|
||||
3. Restart Kodi — the **Ultimate Backend** service starts automatically on login.
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Configuration
|
||||
|
||||
Go to:
|
||||
> **Settings → Add-ons → Ultimate Backend → Configure**
|
||||
|
||||
### General Settings
|
||||
|
||||
| Setting | Description | Default |
|
||||
|----------|--------------|----------|
|
||||
| **Server Port** | Port of the local API | `7777` |
|
||||
| **Default Country** | Default region (DE, AT, CH, EU) | `DE` |
|
||||
| **API Key** | Optional global API key | *empty* |
|
||||
| **Enable EPG Caching** | Cache EPG data locally | ✅ On |
|
||||
| **Cache Duration (hours)** | Cache lifetime | `6` |
|
||||
|
||||
### Provider Settings
|
||||
|
||||
Each provider (Joyn DE/AT/CH, RTL+) can be configured individually:
|
||||
- Enable or disable provider
|
||||
- Enter login credentials (username/password)
|
||||
- Configure proxy settings if needed (host and port)
|
||||
|
||||
Example for Joyn (DE):
|
||||
- Enable Joyn (DE)
|
||||
- Enter your credentials
|
||||
- Optionally enable and configure proxy
|
||||
|
||||
---
|
||||
|
||||
## 🧠 Using with PVR IPTV Simple Client
|
||||
|
||||
The **Ultimate Backend** add-on is designed to work **together with**
|
||||
➡️ **[PVR IPTV Simple Client](https://github.com/kodi-pvr/pvr.iptvsimple)**
|
||||
|
||||
### Setup Steps
|
||||
|
||||
1. In Kodi, go to:
|
||||
**Add-ons → My Add-ons → PVR Clients → PVR IPTV Simple Client → Configure**
|
||||
|
||||
2. Under **General → Location**, select:
|
||||
🟢 *Remote Path (Internet address)*
|
||||
|
||||
3. Enter these URLs:
|
||||
|
||||
**M3U Playlist URL:**
|
||||
```
|
||||
http://localhost:7777/api/m3u
|
||||
```
|
||||
|
||||
**EPG XMLTV URL** (example for Joyn DE):
|
||||
```
|
||||
http://localhost:7777/api/providers/joyn_de/epg
|
||||
```
|
||||
|
||||
4. Save and restart Kodi’s PVR subsystem (or Kodi itself).
|
||||
Your live TV channels and EPG will now appear in Kodi’s **TV** section.
|
||||
|
||||
💡 **Tip:**
|
||||
To regenerate and cache the latest M3U playlist manually, open this in your browser:
|
||||
```
|
||||
http://localhost:7777/api/m3u/generate
|
||||
```
|
||||
This forces the backend to rebuild and cache the playlist for faster future loading.
|
||||
|
||||
---
|
||||
|
||||
## 🌐 API Overview
|
||||
|
||||
Once running, the addon exposes a local API:
|
||||
```
|
||||
http://localhost:7777/
|
||||
```
|
||||
|
||||
### Common Endpoints
|
||||
|
||||
| Endpoint | Description |
|
||||
|-----------|--------------|
|
||||
| `/api/providers` | List all configured providers |
|
||||
| `/api/providers/<provider>/channels` | Get available channels |
|
||||
| `/api/providers/<provider>/channels/<id>/manifest` | Get or rewrite manifest |
|
||||
| `/api/providers/<provider>/channels/<id>/stream` | Direct stream redirect |
|
||||
| `/api/providers/<provider>/epg` | Get EPG in XMLTV format |
|
||||
| `/api/m3u` | Cached combined playlist |
|
||||
| `/api/m3u/generate` | Force regeneration and caching of playlist |
|
||||
| `/api/cache/mpd/clear` | Clear MPD cache |
|
||||
| `/api/cache/mpd/clear-expired` | Clear expired cache entries |
|
||||
|
||||
---
|
||||
|
||||
## 🧼 Cache Management
|
||||
|
||||
Ultimate Backend automatically caches:
|
||||
- DASH Manifests
|
||||
- EPG Data
|
||||
- M3U Playlists
|
||||
|
||||
### Manual cache actions:
|
||||
| Purpose | URL |
|
||||
|----------|-----|
|
||||
| Clear all MPD cache | `/api/cache/mpd/clear` |
|
||||
| Remove expired entries | `/api/cache/mpd/clear-expired` |
|
||||
| Force M3U regeneration | `/api/m3u/generate` |
|
||||
| Force provider-specific M3U regeneration | `/api/providers/<provider>/m3u/generate` |
|
||||
+4
-13
@@ -11,7 +11,7 @@
|
||||
<category label="Joyn (DE)">
|
||||
<setting id="enable_joyn_de" type="bool" label="Enable Joyn (DE)" default="true" />
|
||||
<setting id="joyn_de_country" type="text" label="Country Code" default="de" visible="false" />
|
||||
<setting id="joyn_de_username" type="text" label="Email" default="" enable="eq(-2,true)" />
|
||||
<setting id="joyn_de_username" type="text" label="Username" default="" enable="eq(-2,true)" />
|
||||
<setting id="joyn_de_password" type="text" label="Password" option="hidden" default="" enable="eq(-3,true)" />
|
||||
|
||||
<!-- Optional: Proxy settings for DE -->
|
||||
@@ -24,7 +24,7 @@
|
||||
<category label="Joyn (AT)">
|
||||
<setting id="enable_joyn_at" type="bool" label="Enable Joyn (AT)" default="false" />
|
||||
<setting id="joyn_at_country" type="text" label="Country Code" default="at" visible="false" />
|
||||
<setting id="joyn_at_username" type="text" label="Email" default="" enable="eq(-2,true)" />
|
||||
<setting id="joyn_at_username" type="text" label="Username" default="" enable="eq(-2,true)" />
|
||||
<setting id="joyn_at_password" type="text" label="Password" option="hidden" default="" enable="eq(-3,true)" />
|
||||
|
||||
<!-- Optional: Proxy settings for AT -->
|
||||
@@ -37,7 +37,7 @@
|
||||
<category label="Joyn (CH)">
|
||||
<setting id="enable_joyn_ch" type="bool" label="Enable Joyn (CH)" default="false" />
|
||||
<setting id="joyn_ch_country" type="text" label="Country Code" default="ch" visible="false" />
|
||||
<setting id="joyn_ch_username" type="text" label="Email" default="" enable="eq(-2,true)" />
|
||||
<setting id="joyn_ch_username" type="text" label="Username" default="" enable="eq(-2,true)" />
|
||||
<setting id="joyn_ch_password" type="text" label="Password" option="hidden" default="" enable="eq(-3,true)" />
|
||||
|
||||
<!-- Optional: Proxy settings for CH -->
|
||||
@@ -66,14 +66,5 @@
|
||||
<setting id="rtlplus_proxy_host" type="text" label="30111" visible="eq(-1,true)" />
|
||||
<setting id="rtlplus_proxy_port" type="number" label="30112" visible="eq(-2,true)" />
|
||||
</category>
|
||||
|
||||
<category label="ZDF">
|
||||
<setting id="enable_zdf" type="bool" label="Enable ZDF" default="true" />
|
||||
<setting id="zdf_username" type="text" label="ZDF Username" default="" visible="eq(-1,true)" />
|
||||
<setting id="zdf_password" type="text" label="ZDF Password" option="hidden" default="" visible="eq(-2,true)" />
|
||||
</category>
|
||||
|
||||
<category label="ARD">
|
||||
<setting id="enable_ard" type="bool" label="Enable ARD" default="true" />
|
||||
</category>
|
||||
|
||||
</settings>
|
||||
|
||||
Reference in New Issue
Block a user