# 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**. --- ## ๐ŸŽฏ 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+** - ๐Ÿ‡ฉ๐Ÿ‡ช **Magenta TV 2.0** - ๐Ÿ‡ฆ๐Ÿ‡น **Magenta TV (AT)** - ๐Ÿ‡ญ๐Ÿ‡ท **Max TV (HR)** - ๐Ÿ‡ญ๐Ÿ‡ท **HRTi (HR)** - ๐Ÿ‡ต๐Ÿ‡ฑ **Magenta TV (PL)** - ๐Ÿ‡ฒ๐Ÿ‡ช **Magenta TV (ME)** - ๐Ÿ‡ญ๐Ÿ‡บ **Magenta TV (HU)** 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 (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 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 Configuration **Each provider can be individually enabled and configured:** #### 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** ### 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. **Recommended:** Use provider-specific M3U URLs for better performance and organization: **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 **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 **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 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//channels` | Get available channels | | `/api/providers//channels//manifest` | Get or rewrite manifest | | `/api/providers//channels//stream` | Direct stream redirect | | `/api/providers//epg` | Get EPG in XMLTV format (future version) | | `/api/providers//m3u` | **Recommended:** Provider-specific cached playlist | | `/api/m3u` | Combined playlist (all providers) | | `/api/providers//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 | --- ## ๐Ÿงผ Cache Management Ultimate Backend automatically caches: - 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 provider M3U regeneration | `/api/providers//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! --- ## ๐Ÿ•’ Catchup & EPG Support (Now Available) Ultimate Backend now includes **fully working Catchup TV and EPG support**. ### ๐Ÿ•’ Catchup TV - Provider-based catchup windows (hours configurable per provider) - Seamless playback via the same stream endpoint - Works transparently with Kodi PVR IPTV Simple Client - Automatic validation to ensure playback stays within allowed catchup ranges ### ๐Ÿ—“๏ธ EPG (Electronic Program Guide) - Live EPG data support is now enabled - XMLTV-compatible output - Per-provider EPG endpoints - Supports external EPG sources via URL ### ๐Ÿงฉ EPG Channel Mapping - Built-in **EPG mapping interface** - Fuzzy matching to map provider channels to EPG channels - Manual override and fine-tuning via web UI - Mapping is persisted and reused automatically Access the web UI at: http://localhost:7777/ --- ## ๐Ÿณ Docker Support Ultimate Backend can be run **fully standalone using Docker**. ### docker-compose.yml ```yaml version: '3.8' services: ultimate-backend: build: context: . args: - USER_ID=1000 - GROUP_ID=1000 image: nirvana777/ultimate-backend:latest container_name: ultimate-backend restart: unless-stopped ports: - "7777:7777" environment: - ULTIMATE_PORT=7777 - ULTIMATE_DEBUG=false - ULTIMATE_EPG_URL=https://raw.githubusercontent.com/epgshare01/share01/master/epg.xml.gz - TZ=${TZ:-Europe/Berlin} volumes: - ./config:/config - ./logs:/logs - ./cache:/cache healthcheck: test: ["CMD", "curl", "-f", "http://localhost:7777/api/providers"] interval: 30s timeout: 10s retries: 3 start_period: 10s networks: - ultimate-network networks: ultimate-network: driver: bridge ``` ### ๐Ÿš€ Docker Notes - Perfect for **NAS, servers, and headless setups** - No Kodi installation required - Web UI, API, M3U, EPG, and Catchup all work identically ---