Lettore IPTV
Find a file
2026-10-03 11:59:56 +02:00
image Carica file su "image" 2026-09-30 14:56:39 +02:00
main.py Aggiungi main.py 2026-09-30 14:27:19 +02:00
README.md Aggiorna README.md 2026-10-03 11:59:56 +02:00

fediTV

FediTV — Python IPTV Player

Un player IPTV moderno e leggero per ambienti Linux/Unix, sviluppato in Python 3 e GTK+ 3, con motore di riproduzione MPV e integrazione nativa con il Fediverso (Mastodon, Misskey, Sharkey, Firefish, ecc.).


✨ Caratteristiche principali

  • Gestione Playlist M3U/M3U8: Caricamento da URL remoto o da file locale.
  • Guida TV (EPG XMLTV):
    • Supporto file .xml e .xml.gz (decompressi al volo).
    • Parser ad alte prestazioni a basso consumo di memoria (cancella i nodi già passati e filtra i programmi scaduti da oltre 2 ore).
    • Avanzamento percentuale in tempo reale del programma in onda direttamente nella lista canali.
    • Finestra di dettaglio per consultare l'intera programmazione del canale.
  • Loghi Canale: Download asincrono in background tramite ThreadPool, con adattamento automatico dell'aspect ratio e cache in RAM.
  • Organizzazione & Ricerca: Filtro automatico per categorie/gruppi rilevati dalla playlist e ricerca testuale istantanea.
  • Schermo Intero Intelligente:
    • Controlli a scomparsa automatica con rilevamento della posizione del mouse.
    • Scorciatoie rapide da tastiera (F11, F, ESC, doppio clic).
  • Integrazione Fediverso:
    • Supporto nativo per Mastodon (OAuth standard con server loopback locale o codice OOB) e Misskey / derivati (MiAuth).
    • Condivisione con un clic del canale e del programma in onda.
    • Cattura automatica e allegato dello screenshot video con testo alternativo (alt-text).
    • Notifiche desktop native e pannello attività dedicato per reazioni, boost, risposte e citazioni.
  • Persistenza: Ripristino automatico dell'ultima playlist, guida EPG e livello del volume all'avvio.

📦 Requisiti di sistema

Il software richiede Python 3, le librerie GTK 3, libmpv e relative interfacce di sistema.

1. Pacchetti di sistema

Ubuntu / Debian / Linux Mint

sudo apt update
sudo apt install -y python3-gi python3-gi-cairo gir1.2-gtk-3.0 gir1.2-notify-0.7 libmpv-dev mpv

Arch Linux / Manjaro

sudo pacman -S python-gobject gtk3 libnotify mpv

Fedora

sudo dnf install -y python3-gobject gtk3 libnotify mpv mpv-libs

🐍 Dipendenze Python

Installa i moduli Python necessari:

pip install python-mpv requests

Nota: Se utilizzi distribuzioni recenti con restrizioni su pip (PEP 668 su Debian 12+, Ubuntu 24.04+, Fedora 38+), puoi creare un virtual environment con accesso ai pacchetti di sistema:

python3 -m venv --system-site-packages venv
source venv/bin/activate
pip install python-mpv requests

🚀 Avvio dell'applicazione

Salva il codice sorgente come main.py ed esegui:

python3 main.py

Nota per sessioni Wayland

Poiché l'incorporamento del rendering di MPV avviene tramite XID (GdkX11), su alcune configurazioni Wayland native potrebbe essere necessario avviare il processo con il backend X11/XWayland:

GDK_BACKEND=x11 python3 main.py

⌨️ Scorciatoie da tastiera

Comando Scorciatoia
Attiva / Disattiva schermo intero F11 o F
Esci da schermo intero ESC
Schermo intero con mouse Doppio Clic sull'area video

⚙️ Configurazione & Cartelle

  • File di configurazione:
    Viene salvato in ~/.config/pyiptv_player/config.json. Contiene i token salvati, le opzioni di avvio, l'ultimo volume e le sorgenti recenti.
  • Splash Screen personalizzato:
    È possibile inserire nella cartella del programma un'immagine denominata splash.png, splash.jpg o splash.jpeg. Verrà mostrata come sfondo in attesa della riproduzione.

🌐 Configurazione Fediverso

  1. Premi l'icona del profilo nella barra del titolo (Account del Fediverso).
  2. Digita il dominio della tua istanza (es. mastodon.social, livellosegreto.it, misskey.io, mastodon.uno).
  3. Clicca su Accedi: l'applicazione aprirà il browser predefinito per autorizzare la connessione.
  4. Una volta completato il login, il tuo account sarà collegato e pronto per la pubblicazione di post e ricezione notifiche.

⚖️ Licenza e Disclaimer

Questo programma è inteso esclusivamente come riproduttore multimediale personale. Non include, non distribuisce e non promuove canali, playlist o contenuti protetti da copyright. L'utente è l'unico responsabile delle sorgenti (file M3U ed EPG) utilizzate.