Analisi di zyfun — un player modulare per stream e IPTV costruito su Electron
Se hai mai provato a configurare IPTV o la riproduzione video di rete su un desktop, probabilmente ti sei trovato di fronte a due estremi. Da un lato ci sono soluzioni complete ma ingombranti come Kodi, che trascinano centinaia di megabyte di dipendenze e travolgono con interfacce complesse. Dall'altro ci sono utility spartane dove devi incorporare manualmente le playlist in file di configurazione testuali senza una corretta ricerca o sincronizzazione.
Recentemente ho scoperto zyfun. È un diretto successore del popolare ZY-Player, completamente riscritto utilizzando uno stack moderno. Il progetto ha già raccolto oltre 8.800 stelle su GitHub, ma pochi al di fuori della comunità asiatica lo conoscono. Il motivo è semplice: la documentazione è in cinese e le traduzioni automatiche non sono sempre accurate. Eppure l'ingegneria dietro il progetto merita di essere esaminata.
Cosa c'è sotto il cofano
A livello architetturale, zyfun è un'applicazione desktop costruita su Electron, Vue 3, Vite e TypeScript. Gli autori hanno scelto TDesign come libreria di componenti per l'interfaccia.
L'applicazione funziona come un thin client. Non contiene contenuti integrati e funziona come gestore di sorgenti esterne. Fornisci al client un file di configurazione JSON strutturato e l'applicazione si occupa del parsing dei dati, del filtraggio, della ricerca nel catalogo e della riproduzione dei flussi.


Decisioni ingegneristiche chiave
Il codebase del progetto contiene diverse soluzioni interessanti che lo distinguono dai tipici player fai-da-te.
1. Adapter sorgente modulari
invece di una logica di parsing rigida, gli autori hanno implementato un sistema di adapter (tipi da T0 a T4). Questo aiuta a connettere backend completamente diversi:
- T0 e T1: interfacce REST classiche con risposte XML o JSON.
- T3 e T4: adapter script che supportano l'esecuzione di gestori personalizzati in JavaScript (DRPy), CatVod e Python.
- Connessioni ad archiviazione file tramite il protocollo Alist.
Grazie a questo, puoi aggiungere un nuovo sito di film o un catalogo NAS domestico semplicemente descrivendo lo schema di mapping dei campi nel file di configurazione, senza ricompilare il binario.
2. Sniffer di flussi tramite Chrome DevTools Protocol
Molti cinema online nascondono i link di streaming diretto dietro script complessi. Solitamente questi problemi vengono risolti tramite iframe nascosti, il che spesso rompe la pagina.
In zyfun, l'intercettazione dei flussi è implementata tramite CDP (Chrome DevTools Protocol). L'applicazione apre l'URL di destinazione in un contesto Chromium isolato, sottoscrive agli eventi a livello di rete Network.requestWillBeSent e cattura i link dei file .m3u8 o .mp4. Questo approccio funziona in modo più affidabile del matching regex euristico.
3. Core video intercambiabili
All'interno dell'applicazione, non c'è un binding rigido a un singolo player. Puoi selezionare il motore desiderato nelle impostazioni:
- XGPlayer (sviluppato dal team di ByteDance)
- ArtPlayer
- Binario esterno tramite chiamata di sistema (ad esempio, mpv o VLC con decodifica hardware)
Se il player web nativo non riesce a gestire un bitrate elevato o un codec specifico, il flusso passa a mpv esterno con un clic.


4. Sincronizzazione e AI integrata
La cronologia di visualizzazione, i segnalibri e la configurazione delle sorgenti si sincronizzano tramite WebDAV o iCloud. È comodo se usi l'app su più macchine.
Gli autori hanno anche aggiunto l'integrazione con l'API di OpenAI. Il client può inviare richieste al modello linguistico selezionato per ottenere rapidamente un breve riassunto della trama o raccomandazioni per titoli simili.
Tra i dettagli piacevoli per l'uso quotidiano: nelle impostazioni è presente una funzione Boss Key. Premendo la scorciatoia (Shift+Cmd+Z di default su macOS) nasconde istantaneamente la finestra nel tray e disattiva l'audio.
Come funziona la configurazione
Tutti i database delle sorgenti vengono importati tramite un singolo documento JSON. La struttura è suddivisa in blocchi indipendenti: site per i cataloghi VOD, iptv per le playlist, channel per i singoli flussi e analyze per i resolver dei link.
Ecco come appare una descrizione standard di una sorgente:
Installazione e piattaforme
Sono disponibili pacchetti precompilati per Windows (x64, arm64), macOS (Intel e Apple Silicon) e Linux (AppImage, deb, rpm, pacchetto AUR).
Durante l'installazione su macOS, il sistema potrebbe bloccare l'avvio di un'applicazione non firmata. Questo viene aggirato con il reset standard dell'attributo quarantine:
Su Linux, quando si esegue AppImage su alcune distribuzioni, sarà necessaria la libreria libfuse2:
Riepilogo
zyfun si è rivelato uno strumento solido per chi vuole controllare i propri flussi multimediali senza essere legato a servizi proprietari.
A chi gioverà il progetto:
- Gli appassionati di IPTV che necessitano di un player pulito con supporto EPG e comoda raggruppamento dei canali.
- I proprietari di server multimediali domestici che vogliono consolidare diverse API in un unico client.
- Sviluppatori Vue ed Electron che cercano un esempio funzionante di integrazione del Chrome DevTools Protocol per l'analisi del traffico di rete in background.
Il codice sorgente è aperto sotto licenza AGPL-3.0. Se stai cercando un client di streaming tuttofare, il repository merita sicuramente una visita.
Progetti correlati