mirror of
https://github.com/nirvana-7777/script.service.ultimate.git
synced 2026-09-19 07:32:37 +02:00
Add icon, correct readme, addon.xml
This commit is contained in:
@@ -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 Kodi’s 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 Kodi’s **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 Kodi’s PVR subsystem (or Kodi itself).
|
||||
Your live TV channels and EPG will now appear in Kodi’s **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!
|
||||
@@ -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>
|
||||
@@ -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 |
Reference in New Issue
Block a user