import requests import json import os # --- KONFIGURATION --- JELLYFIN_URL = "http://localhost:8096" # Oder 192.168.188.124 API_KEY = "5ba10da6cca145feb8feff8f6b4b5e55" # Hier den API Key eintragen EPG_PATH = "/home/sandro/m3u/sky_epg.xml" ID_FILE = "last_provider_id.txt" # Lokaler Cache für die ID HEADERS = { "X-Emby-Token": API_KEY, "Content-Type": "application/json" } def get_provider_id(): """Versucht die ID des XMLTV-Providers von Jellyfin zu holen.""" try: # Liste aller Live-TV Provider abfragen response = requests.get(f"{JELLYFIN_URL}/LiveTv/ListingProviders", headers=HEADERS) response.raise_for_status() providers = response.json().get("Listings", []) # Suche den Provider, der unseren Pfad nutzt for p in providers: if p.get("Path") == EPG_PATH: return p.get("Id") except Exception as e: print(f"Fehler beim Abrufen der Provider-Liste: {e}") # Falls in der API nicht gefunden, schau im lokalen Cache nach if os.path.exists(ID_FILE): with open(ID_FILE, "r") as f: return f.read().strip() return None def sync_jellyfin_epg(): # 1. ID finden (aus API oder Cache) provider_id = get_provider_id() # 2. Wenn ID vorhanden, alten Provider löschen if provider_id: print(f"Lösche Provider mit ID: {provider_id}") try: requests.delete(f"{JELLYFIN_URL}/LiveTv/ListingProviders?id={provider_id}", headers=HEADERS) except Exception as e: print(f"Löschen fehlgeschlagen (evtl. schon weg): {e}") if __name__ == "__main__": sync_jellyfin_epg()