Files
Bram 415bb3906a
Build and Push Docker Images / build-and-push (push) Successful in 1m19s
f1tv epg
2026-11-08 21:49:03 +01:00
..
2026-11-08 21:49:03 +01:00
2026-11-08 21:49:03 +01:00
2026-11-08 21:49:03 +01:00
2026-11-08 21:49:03 +01:00
2026-11-08 21:49:03 +01:00
2026-11-08 21:49:03 +01:00
2026-11-08 21:49:03 +01:00

F1TV EPG

Docker-wrapper rond 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

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:

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:

docker run --rm -e RUN_ONCE=1 -v /pad/naar/epg:/output f1tv-epg

Of met Compose:

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:

docker build \
  --build-arg F1TV_EPG_REF=<branch-of-commit> \
  -t f1tv-epg .

Bron