Analyse von zyfun — ein modularer Player für Streams und IPTV auf Electron-Basis
Wenn Sie schon einmal versucht haben, IPTV oder Netzwerk-Videowiedergabe auf einem Desktop einzurichten, sind Sie wahrscheinlich auf zwei Extreme gestoßen. Auf der einen Seite stehen aufgeblähte All-in-One-Lösungen wie Kodi, die Hunderte von Megabyte an Abhängigkeiten mit sich bringen und mit komplexen Oberflächen überfordern. Auf der anderen Seite gibt es spartanische Utilities, bei denen man Playlists manuell in Textkonfigurationen einbetten muss, ohne echte Such- oder Synchronisierungsfunktionen.
Kürzlich bin ich auf zyfun gestoßen. Es ist ein direkter Nachfolger des beliebten ZY-Player, komplett neu geschrieben mit einem modernen Tech-Stack. Das Projekt hat bereits über 8.800 Sterne auf GitHub gesammelt, aber außerhalb der asiatischen Community ist es kaum bekannt. Der Grund ist einfach: Die Dokumentation ist auf Chinesisch, und maschinelle Übersetzungen sind nicht immer akkurat. Doch die Technik hinter dem Projekt ist durchaus untersuchenswert.
Was unter der Haube steckt
Architektonisch gesehen ist zyfun eine Desktop-Anwendung auf Basis von Electron, Vue 3, Vite und TypeScript. Die Autoren haben TDesign als Komponentenbibliothek für die Oberfläche gewählt.
Die Anwendung funktioniert als Thin Client. Sie enthält keine eingebauten Inhalte und fungiert als Handler für externe Quellen. Sie liefern dem Client eine strukturierte JSON-Konfiguration, und die Anwendung kümmert sich um Datenparsing, Filterung, Katalogsuche und Stream-Wiedergabe.


Wichtige technische Entscheidungen
Die Codebasis des Projekts enthält mehrere interessante Lösungen, die es von typischen Eigenbau-Playern unterscheiden.
1. Modulare Quell-Adapter
Statt starrer Parsing-Logik haben die Autoren ein Adapter-System implementiert (Typen T0 bis T4). Dies hilft, völlig unterschiedliche Backends anzubinden:
- T0 und T1: Klassische REST-Schnittstellen mit XML- oder JSON-Antworten.
- T3 und T4: Skript-Adapter mit Unterstützung für die Ausführung von benutzerdefinierten Handlern in JavaScript (DRPy), CatVod und Python.
- Dateispeicher-Verbindungen über das Alist-Protokoll.
Dank dessen können Sie eine neue Filmseite oder einen NAS-Katalog einfach durch die Beschreibung des Feld-Mapping-Schemas in der Konfigurationsdatei hinzufügen, ohne das Binary selbst neu zu bauen.
2. Stream-Sniffer über Chrome DevTools Protocol
Viele Online-Kinos verbergen direkte Stream-Links hinter komplexen Skripten. Solche Aufgaben werden normalerweise durch versteckte iframes gelöst, was oft die Seite zerstört.
In zyfun wird die Stream-Abfangung über CDP (Chrome DevTools Protocol) implementiert. Die Anwendung öffnet die Ziel-URL in einem isolierten Chromium-Kontext, abonniert Netzwerk-Events auf Ereignisebene Network.requestWillBeSent und fängt Datei-Links ab .m3u8 oder .mp4. Dieser Ansatz funktioniert zuverlässiger als heuristisches Regex-Matching.
3. Austauschbare Video-Cores
Innerhalb der Anwendung gibt es keine harte Bindung an einen einzelnen Player. Sie können die gewünschte Engine in den Einstellungen auswählen:
- XGPlayer (entwickelt vom ByteDance-Team)
- ArtPlayer
- Externes Binary über Systemaufruf (z.B. mpv oder VLC mit Hardware-Dekodierung)
Wenn der native Web-Player mit hoher Bitrate oder einem bestimmten Codec nicht zurechtkommt, wird der Stream mit einem Klick an externes mpv weitergeleitet.


4. Synchronisierung und integrierte KI
Wiedergabeverlauf, Lesezeichen und Quellkonfiguration synchronisieren über WebDAV oder iCloud. Das ist praktisch, wenn Sie die App auf mehreren Rechnern nutzen.
Die Autoren haben auch eine Integration mit der OpenAI-API hinzugefügt. Der Client kann Anfragen an das ausgewählte Sprachmodell senden, um schnell eine kurze Inhaltszusammenfassung oder Empfehlungen für ähnliche Titel zu erhalten.
Unter den netten Alltagsfunktionen: In den Einstellungen gibt es eine Boss-Key-Funktion. Durch Drücken der Tastenkombination (standardmäßig Shift+Cmd+Z unter macOS) wird das Fenster sofort in die Tray-Leiste minimiert und der Ton stummgeschaltet.
So funktioniert die Konfiguration
Alle Quellendatenbanken werden über ein einzelnes JSON-Dokument importiert. Die Struktur ist in unabhängige Blöcke unterteilt: site für VOD-Kataloge, iptv für Playlists, channel für einzelne Streams und analyze für Link-Resolver.
So sieht eine typische Quellbeschreibung aus:
Installation und Plattformen
Vorgefertigte Pakete sind für Windows (x64, arm64), macOS (Intel und Apple Silicon) und Linux (AppImage, deb, rpm, AUR-Paket) verfügbar.
Bei der Installation auf macOS blockiert das System möglicherweise den Start einer nicht signierten Anwendung. Dies wird durch das standardmäßige Zurücksetzen des Quarantine-Attributs umgangen:
Unter Linux wird bei der Ausführung von AppImage auf einigen Distributionen die Bibliothek libfuse2 benötigt:
Fazit
zyfun hat sich als solides Tool für diejenigen erwiesen, die ihre Media-Streams kontrollieren möchten, ohne an proprietäre Dienste gebunden zu sein.
Wem wird das Projekt nützen:
- IPTV-Enthusiasten, die einen sauberen Player mit EPG-Unterstützung und praktischer Kanalgruppierung benötigen.
- Heim-Mediaserver-Betreiber, die verschiedene APIs in einem einzigen Client konsolidieren möchten.
- Vue- und Electron-Entwickler, die nach einem funktionierenden Beispiel für Chrome DevTools Protocol-Integration zur Analyse von Netzwerk-Traffic im Hintergrund suchen.
Die Quellen sind unter der AGPL-3.0-Lizenz offen. Wenn Sie einen Alles-umfassenden Streaming-Client suchen, lohnt es sich definitiv, das Repository zu besuchen.
Ähnliche Projekte