# ๐Ÿ“บ GridTV > Guide TV IPTV en temps rรฉel, pensรฉ pour [Tunarr](https://github.com/chrisbenincasa/tunarr) et toute source XMLTV/M3U. ![PHP](https://img.shields.io/badge/PHP-8.0+-777BB4?style=flat-square&logo=php&logoColor=white) ![Nginx](https://img.shields.io/badge/Nginx-ready-009639?style=flat-square&logo=nginx&logoColor=white) ![License](https://img.shields.io/badge/license-MIT-blue?style=flat-square) --- ## โœจ 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 ```bash git clone https://github.com/Johnnybegood90/gridtv.git /var/www/gridtv cd /var/www/gridtv ``` --- ### 2. Permissions ```bash # 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 ```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. ```bash 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 ```bash # Via SSH nano /var/www/gridtv/config.json ``` ```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` : ```js 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](https://github.com/chrisbenincasa/tunarr) - โœ… [xTeVe](https://github.com/xteve-project/xTeVe) - โœ… [Jellyfin](https://jellyfin.org/) (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.