Add icon, correct readme, addon.xml

This commit is contained in:
Nirvana
2025-10-30 15:19:16 +01:00
parent 6861b3d534
commit c8f72f8552
3 changed files with 189 additions and 67 deletions
+86 -62
View File
@@ -1,21 +1,21 @@
# 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.
**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)**.
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**.
---
## 🎯 Purpose
This add-on runs a small local web service inside Kodi.
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
- 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.
Once configured, your live TV channels from streaming platforms appear directly in Kodi's **TV** section — complete with EPG, logos, and DRM handling.
---
@@ -25,7 +25,7 @@ Currently supported:
- 🇩🇪 **Joyn (DE)**
- 🇦🇹 **Joyn (AT)**
- 🇨🇭 **Joyn (CH)**
- 🇪🇺 **RTL+**
- 🇩🇪 **RTL+**
More providers will be added in future versions.
@@ -33,28 +33,27 @@ 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
- 📡 **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 (coming in future version)
- 🎵 **M3U Playlist Generation** Individual playlists for each provider
-**Caching System** Caches manifests and playlists for fast reloads
- 🌍 **Regional Support** Separate configurations for Germany, Austria, and Switzerland
- 🔄 **Provider-Specific Proxy** Configure proxy settings individually for each provider
---
## 🧩 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
- `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.
@@ -63,7 +62,7 @@ More providers will be added in future versions.
## ⚙️ Configuration
Go to:
> **Settings → Add-ons → Ultimate Backend → Configure**
**Settings → Add-ons → Ultimate Backend → Configure**
### General Settings
@@ -75,53 +74,67 @@ Go to:
| **Enable EPG Caching** | Cache EPG data locally | ✅ On |
| **Cache Duration (hours)** | Cache lifetime | `6` |
### Provider Settings
### Provider Configuration
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)
**Each provider can be individually enabled and configured:**
Example for Joyn (DE):
- Enable Joyn (DE)
- Enter your credentials
- Optionally enable and configure proxy
#### Joyn Providers (DE/AT/CH)
- **Enable Provider** Toggle on/off for each country
- **Credentials** Enter your username and password
- **Proxy Settings** Optional proxy configuration per provider:
- Enable proxy support
- Set proxy host and port
- Useful for geo-restricted content or network requirements
#### RTL+ Provider
- **Credentials** Enter your RTL+ username and password
- **Proxy Settings** Optional proxy configuration:
- Enable proxy if needed for your region
- Configure proxy host and port
**💡 Recommendation:** Configure only the providers you actually use to improve performance and reduce startup time.
---
## 🧠 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)**
The **Ultimate Backend** add-on is designed to work **together with PVR IPTV Simple Client**
### Setup Steps
1. In Kodi, go to:
1. In Kodi, go to:
**Add-ons → My Add-ons → PVR Clients → PVR IPTV Simple Client → Configure**
2. Under **General → Location**, select:
2. Under **General → Location**, select:
🟢 *Remote Path (Internet address)*
3. Enter these URLs:
3. **Recommended:** Use provider-specific M3U URLs for better performance and organization:
**M3U Playlist URL:**
```
http://localhost:7777/api/m3u
```
**For Joyn DE:**
M3U Playlist URL: http://localhost:7777/api/providers/joyn_de/m3u
EPG XMLTV URL: http://localhost:7777/api/providers/joyn_de/epg
**EPG XMLTV URL** (example for Joyn DE):
```
http://localhost:7777/api/providers/joyn_de/epg
```
**For Joyn AT:**
M3U Playlist URL: http://localhost:7777/api/providers/joyn_at/m3u
EPG XMLTV URL: http://localhost:7777/api/providers/joyn_at/epg
4. Save and restart Kodis PVR subsystem (or Kodi itself).
Your live TV channels and EPG will now appear in Kodis **TV** section.
**For RTL+:**
M3U Playlist URL: http://localhost:7777/api/providers/rtlplus/m3u
EPG XMLTV URL: http://localhost:7777/api/providers/rtlplus/epg
*Alternatively, you can use the combined playlist (not recommended for multiple providers):*
M3U Playlist URL: http://localhost:7777/api/m3u
4. Save and restart Kodi's PVR subsystem (or Kodi itself).
Your live TV channels will now appear in Kodi's **TV** section.
⚠️ **Note:** EPG (Electronic Program Guide) data will be available in a future version. Currently, channels will be displayed without program information.
💡 **Tip:**
To regenerate and cache the latest M3U playlist manually, open these URLs in your browser:
- Provider-specific: http://localhost:7777/api/providers/joyn_de/m3u/generate
- All providers: http://localhost:7777/api/m3u/generate
💡 **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.
---
@@ -129,9 +142,7 @@ This forces the backend to rebuild and cache the playlist for faster future load
## 🌐 API Overview
Once running, the addon exposes a local API:
```
http://localhost:7777/
```
### Common Endpoints
@@ -141,9 +152,11 @@ http://localhost:7777/
| `/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/providers/<provider>/epg` | Get EPG in XMLTV format (future version) |
| `/api/providers/<provider>/m3u` | **Recommended:** Provider-specific cached playlist |
| `/api/m3u` | Combined playlist (all providers) |
| `/api/providers/<provider>/m3u/generate` | Force regeneration of provider-specific playlist |
| `/api/m3u/generate` | Force regeneration of combined playlist |
| `/api/cache/mpd/clear` | Clear MPD cache |
| `/api/cache/mpd/clear-expired` | Clear expired cache entries |
@@ -152,14 +165,25 @@ http://localhost:7777/
## 🧼 Cache Management
Ultimate Backend automatically caches:
- DASH Manifests
- EPG Data
- M3U Playlists
- DASH Manifests
- EPG Data (when available in future version)
- M3U Playlists (both provider-specific and combined)
### 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` |
| Force provider M3U regeneration | `/api/providers/<provider>/m3u/generate` |
| Force all M3U regeneration | `/api/m3u/generate` |
---
## 🆕 Coming Soon
- **EPG Support**: Full Electronic Program Guide data for all channels
- **More Providers**: Additional streaming services
- **Enhanced Caching**: Improved cache management and performance
- **Advanced Settings**: More configuration options for power users
Stay tuned for updates!
+34 -5
View File
@@ -5,16 +5,31 @@
<import addon="script.module.bottle" version="0.12.25"/>
<import addon="script.module.requests" version="2.25.1"/>
<import addon="script.module.pycryptodome" version="3.4.3"/>
<import addon="inputstream.adaptive" version="2.6.0"/>
<import addon="script.module.urllib3" version="1.25.3"/>
</requires>
<extension point="xbmc.python.script" library="service.py">
<provides>executable</provides>
</extension>
<extension point="xbmc.service" start="login" stop="logout"/>
<extension point="xbmc.service"/>
<extension point="xbmc.addon.metadata">
<summary>Backend service for Ultimate streaming providers</summary>
<summary>Backend service for streaming providers integration</summary>
<description>
Provides channel lists, EPG data and manifest information for various streaming providers.
Acts as a backend for Ultimate PVR and video addons.
Ultimate Backend provides a local API service that bridges Kodi with popular streaming providers.
Features:
• Live TV streaming from Joyn (DE/AT/CH) and RTL+
• DASH manifest rewriting for seamless playback
• DRM support (Widevine, PlayReady, ClearKey)
• M3U playlist generation for PVR IPTV Simple Client
• Provider-specific proxy configuration
• Caching system for improved performance
This service runs in the background and enables live TV channels from streaming platforms
to appear directly in Kodi's TV section with full PVR integration.
</description>
<platform>all</platform>
<license>GPL-3.0</license>
@@ -22,5 +37,19 @@
<website>https://example.com</website>
<email>support@example.com</email>
<source>https://github.com/yourrepo/ultimate-backend</source>
<language>en</language>
<news>
- v1.0.0: Initial release
- Support for Joyn DE, AT, CH and RTL+
- Manifest proxying and DRM handling
- M3U playlist generation for PVR IPTV Simple
- Provider-specific proxy configuration
</news>
<assets>
<icon>icon.png</icon>
<fanart>fanart.jpg</fanart>
</assets>
</extension>
</addon>
</addon>
+69
View File
@@ -0,0 +1,69 @@
<svg width="64" height="64" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg">
<!-- Modern gradient background -->
<defs>
<linearGradient id="bgGradient" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#000000"/>
<stop offset="100%" stop-color="#4a1d6e"/>
</linearGradient>
<linearGradient id="screenGradient" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#667eea"/>
<stop offset="100%" stop-color="#764ba2"/>
</linearGradient>
<filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">
<feDropShadow dx="0" dy="4" stdDeviation="4" flood-color="#000000" flood-opacity="0.4"/>
</filter>
</defs>
<!-- Background with black to dark purple gradient -->
<rect width="64" height="64" rx="16" fill="url(#bgGradient)" filter="url(#shadow)"/>
<!-- Larger TV body moved down 2 pixels -->
<rect x="10" y="14" width="44" height="26" rx="4" fill="#1a202c" stroke="#2d3748" stroke-width="1.5"/>
<!-- Larger TV screen moved down 2 pixels -->
<rect x="14" y="18" width="36" height="18" rx="2" fill="url(#screenGradient)"/>
<!-- Modern streaming visualization - data flow network -->
<!-- Central node -->
<circle cx="32" cy="27" r="3" fill="#4299e1" stroke="#90cdf4" stroke-width="1"/>
<!-- Connecting nodes and lines -->
<circle cx="25" cy="22" r="1.5" fill="#48bb78"/>
<circle cx="39" cy="22" r="1.5" fill="#ed8936"/>
<circle cx="27" cy="32" r="1.5" fill="#f56565"/>
<circle cx="37" cy="32" r="1.5" fill="#9f7aea"/>
<!-- Connection lines -->
<line x1="32" y1="27" x2="25" y2="22" stroke="#ffffff" stroke-width="1" opacity="0.8"/>
<line x1="32" y1="27" x2="39" y2="22" stroke="#ffffff" stroke-width="1" opacity="0.8"/>
<line x1="32" y1="27" x2="27" y2="32" stroke="#ffffff" stroke-width="1" opacity="0.8"/>
<line x1="32" y1="27" x2="37" y2="32" stroke="#ffffff" stroke-width="1" opacity="0.8"/>
<line x1="25" y1="22" x2="27" y2="32" stroke="#ffffff" stroke-width="0.5" opacity="0.6"/>
<line x1="39" y1="22" x2="37" y2="32" stroke="#ffffff" stroke-width="0.5" opacity="0.6"/>
<!-- Data flow animation dots -->
<circle cx="26" cy="23" r="0.8" fill="#68d391">
<animate attributeName="opacity" values="0;1;0" dur="2s" repeatCount="indefinite" begin="0s"/>
</circle>
<circle cx="34" cy="30" r="0.8" fill="#fc8181">
<animate attributeName="opacity" values="0;1;0" dur="1.5s" repeatCount="indefinite" begin="0.3s"/>
</circle>
<!-- TV stand moved down 2 pixels -->
<rect x="28" y="40" width="8" height="2" fill="#2d3748" rx="1"/>
<rect x="30" y="42" width="4" height="1.5" fill="#1a202c" rx="0.5"/>
<!-- "ULTIMATE" text properly centered at bottom -->
<text x="27" y="54" text-anchor="middle" fill="white"
font-family="Arial, sans-serif" font-size="6" font-weight="bold" letter-spacing="0.8">
ULTIMATE
</text>
<!-- Floating streaming elements -->
<circle cx="48" cy="18" r="1" fill="#4299e1" opacity="0.8">
<animate attributeName="cy" values="18;14;18" dur="3s" repeatCount="indefinite"/>
</circle>
<circle cx="52" cy="22" r="0.7" fill="#48bb78" opacity="0.7">
<animate attributeName="cx" values="52;56;52" dur="2.5s" repeatCount="indefinite"/>
</circle>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB