# F1TV EPG Docker-wrapper rond [J-Lich/F1TV-EPG](https://github.com/J-Lich/F1TV-EPG). De container haalt de F1TV-schema's op en schrijft een XMLTV-bestand (`guide.xml`) naar een gemount volume. Geschikt als EPG-bron in IPTV-clients, Plex, Jellyfin, enz. ## Snel starten ```bash docker build -t f1tv-epg . docker run -d --name f1tv-epg \ -v /pad/naar/epg:/output \ f1tv-epg ``` De EPG verschijnt als `/pad/naar/epg/guide.xml`. De container blijft draaien en ververst het bestand standaard elke 15 minuten, zodat de gids vrijwel live blijft. Of gebruik `docker-compose.example.yml`: ```bash cp docker-compose.example.yml docker-compose.yml docker compose up -d ``` Het volume staat standaard op `./data`, dus de EPG komt in `./data/guide.xml`. ## Eenmalig genereren Voor een cronjob of handmatige run: ```bash docker run --rm -e RUN_ONCE=1 -v /pad/naar/epg:/output f1tv-epg ``` Of met Compose: ```bash docker compose run --rm -e RUN_ONCE=1 f1tv-epg ``` ## Configuratie | Env | Default | Betekenis | | --- | --- | --- | | `OUTPUT_DIR` | `/output` | Map waar het XMLTV-bestand wordt geschreven | | `OUTPUT_FILE` | `guide.xml` | Bestandsnaam van het XMLTV-bestand | | `REFRESH_INTERVAL_MINUTES` | `15` | Minuten tussen twee verversingen (continu draaien) | | `RUN_ONCE` | `0` | `1` = eenmalig genereren en stoppen | Een lager interval betekent vaker verversen en dus meer verzoeken naar de F1TV-API. `15` minuten is ruim voldoende voor een normale gids; gebruik bijvoorbeeld `60` als je minder verkeer wilt. ## Werking 1. De container start en genereert direct een eerste EPG. 2. Het script draait in een tijdelijke submap van het output-volume. 3. Bij succes wordt `guide.xml` atomisch naar de eindlocatie verplaatst, zodat een IPTV-client nooit een half geschreven bestand leest. 4. Bij een fout blijft de laatst bekende `guide.xml` staan en wordt het na het volgende interval opnieuw geprobeerd. 5. Daarna volgt elke `REFRESH_INTERVAL_MINUTES` minuten een nieuwe generatie. De container blijft dus actief als achtergronddienst; met `restart: unless-stopped` in Compose start hij ook na een reboot of crash weer op. ## Kanaal-ID Het upstream-script hardcodeert het kanaal als: - **Channel ID:** `f1tv` - **Display name:** `F1TV` Gebruik in je IPTV-client dus `tvg-id="f1tv"` (of een alias daarvoor) om de gids te koppelen. Het script ondersteunt ondanks de upstream-README geen `--id`, `--name` of `--output`; deze wrapper respecteert daarom de vaste kanaalgegevens en regelt alleen de outputlocatie en het verversen. ## Bouwen vanaf een specifieke upstream-versie Standaard wordt `main` gekloond tijdens de build. Je kunt een andere branch, tag of commit vastzetten: ```bash docker build \ --build-arg F1TV_EPG_REF= \ -t f1tv-epg . ``` ## Bron - Upstream repo: - Gegenereerde gids van upstream: