Mod settings.xml and add Readme.md

This commit is contained in:
Nirvana
2025-10-30 10:17:44 +01:00
parent ee0848705d
commit 6861b3d534
2 changed files with 169 additions and 13 deletions
+165
View File
@@ -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 Kodis 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 Kodis **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 Kodis PVR subsystem (or Kodi itself).
Your live TV channels and EPG will now appear in Kodis **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
View File
@@ -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>