2026-03-09 14:38:41 +01:00
2026-03-09 14:38:41 +01:00
2026-03-09 14:27:40 +01:00
2026-03-09 14:27:40 +01:00
2026-03-09 14:27:40 +01:00
2026-03-09 14:27:40 +01:00
2026-03-09 14:27:40 +01:00

📺 GridTV

Guide TV IPTV en temps réel, pensé pour Tunarr et toute source XMLTV/M3U.

PHP Nginx License


Fonctionnalités

  • 🎛️ Grille timeline — vue horizontale façon guide TV classique, avec ligne "maintenant" en temps réel
  • 📱 Responsive — vue liste optimisée sur mobile
  • ⏱️ Barre de progression en direct sur le programme en cours
  • 🕶️ Programmes passés atténués automatiquement
  • 📋 Tooltip au survol — titre, synopsis, saison/épisode, horaires, durée
  • 🔗 Boutons copie EPG & M3U en un clic dans la topbar
  • ⚙️ Setup guidé au premier lancement — zéro fichier à éditer à la main
  • 🔄 Rechargement automatique de l'EPG toutes les 30 minutes
  • 0️⃣ Zéro dépendance — PHP vanilla + nginx, c'est tout

📸 Aperçu

┌─────────────────────────────────────────────────────────────────┐
│ MonGroupe / GridTV   Lun 09 Mar   14:32:18   ◀1h  Maintenant  1h▶  EPG  M3U  ● LIVE │
├──────────┬────────────────────────┬──────────────────┬──────────┤
│ 1 Action │ ██████ Terminator ████ │  Die Hard        │  ...     │
│ 2 Legend │   Bio de Jimi Hendrix  │ ████████████████ │  ...     │
│ 3 Séries │  Sopranos S02E07  ████ │  ...             │          │
└──────────┴────────────────────────┴──────────────────┴──────────┘

🚀 Installation

Prérequis

  • Serveur web avec PHP 8.0+ et php-fpm
  • Nginx (ou Apache)
  • Une source EPG au format XMLTV (ex: Tunarr, Jellyfin, xTeVe...)
  • (Optionnel) Une playlist M3U

1. Cloner le repo

git clone https://github.com/Johnnybegood90/gridtv.git /var/www/gridtv
cd /var/www/gridtv

2. Permissions

# Le serveur web doit pouvoir écrire config.json lors du setup
chmod 775 /var/www/gridtv
chown -R www-data:www-data /var/www/gridtv

3. Configurer Nginx

server {
    listen 80;
    server_name guide.ton-domaine.fr;

    root /var/www/gridtv;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    }
}

💡 Adapte la version de PHP (php8.2-fpm) à celle installée sur ton serveur.

nginx -t && systemctl reload nginx

4. Premier lancement — Setup

Ouvre ton navigateur sur http://guide.ton-domaine.fr.

GridTV détecte l'absence de config et te redirige automatiquement vers la page de setup :

Champ Description
Nom du groupe S'affiche en haut à gauche (ex: JohnnyBeGood, MaTV...)
URL EPG (XMLTV) L'URL de ton guide électronique des programmes
URL M3U (optionnel) Ta playlist IPTV, pour copie rapide depuis la topbar

Une fois validé, le fichier config.json est créé sur le serveur. La page setup devient inaccessible.


5. Modifier la config plus tard

# Via SSH
nano /var/www/gridtv/config.json
{
  "group_name": "MonGroupe TV",
  "epg_url": "http://192.168.0.3:8000/api/xmltv.xml",
  "m3u_url": "http://192.168.0.3:8000/api/channels.m3u"
}

📁 Structure du projet

gridtv/
├── index.php            # Le guide TV (redirige vers setup si pas de config)
├── setup.php            # Page de configuration initiale
├── config.example.json  # Template de config (à copier → config.json)
├── .gitignore           # config.json exclu du repo
└── README.md

config.json est dans le .gitignore — tes URLs privées ne seront jamais poussées sur GitHub.


⚙️ Configuration avancée

Les constantes suivantes sont modifiables directement dans index.php :

const PX_PER_MIN   = 5;   // Zoom horizontal (pixels par minute)
const HOURS_BEFORE = 1;   // Heures passées visibles dans la grille
const HOURS_AFTER  = 3;   // Heures futures visibles
const ROW_H        = 80;  // Hauteur d'une ligne chaîne (px)

🧩 Compatibilité EPG

GridTV parse le format XMLTV standard. Testé avec :

  • Tunarr
  • xTeVe
  • Jellyfin (via plugin LiveTV)
  • Tout fichier XMLTV conforme à la spec

🤝 Contribuer

Les PRs sont les bienvenues ! Si t'as une idée, une correction, ou une feature — ouvre une issue ou envoie direct une PR.


📄 Licence

MIT — fais-en ce que tu veux.

S
Description
Real-time IPTV TV guide and any XMLTV/M3U source. Self-hosted, zero dependencies.
Readme AGPL-3.0
6.5 MiB
Languages
PHP 52.3%
JavaScript 28.8%
CSS 18.5%
Dockerfile 0.3%
Shell 0.1%