Skip to content

TVHeadend: 5) Guide télé

Vincent Fortier edited this page Nov 12, 2019 · 2 revisions

Installation des dépendances

Ajouter des canaux de distribution de paquets à partir des paramètres du Centre de paquets:

Activer la disponibilité des paquets beta:

Community Package Hub 0.3

  • Nom: CPH
  • Emplacement: https://www.cphub.net

Liste des paquets disponible: https://www.cphub.net/?id=37

SynoCommunity

Ajouter la source de paquets:

  • Nom: SynoCommunity
  • Emplacement: http://packages.synocommunity.com

Liste des paquets disponible: https://synocommunity.com/packages

Entware

Le paquet Entware permet d'installer un système de paqets parallèle utilisant la ligne de commande via l'outil opkg. Avec ce système il nous sera ensuite possible d'installer d'autres paquets autrement non-disponibles.

Installer le paquet Entware:


Make

Mettre à jour la liste des paquets:

$ sudo -i
# /opt/bin/opkg update
Downloading http://bin.entware.net/x64-k3.2/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/entware

Installer make:

# /opt/bin/opkg install make
Installing make (4.2.1-2) to root...
Downloading http://bin.entware.net/x64-k3.2/make_4.2.1-2_x64-3.2.ipk
Configuring make.
# logout

Valider l'état:

$ export PATH=$PATH:/opt/bin
$ make --version
GNU Make 4.2.1
Built for x86_64-openwrt-linux-gnu
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Perl

Installer le paquet Perl:

OPTIONNEL: Effectuer la configuration de base des modules CPAN essentiels

$ export PATH=$PATH:/opt/bin
$ cpan
Would you like to configure as much as possible automatically? [yes]
What approach do you want?  (Choose 'local::lib', 'sudo' or 'manual')
 [local::lib]

Autoconfiguration complete.

Attempting to bootstrap local::lib...

local::lib is installed. You must now add the following environment variables
to your shell configuration files (or registry, if you are on Windows) and
then restart your command line shell and CPAN before installing modules:

PATH="/var/services/homes/admin/perl5/bin${PATH:+:${PATH}}"; export PATH;
PERL5LIB="/var/services/homes/admin/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
PERL_LOCAL_LIB_ROOT="/var/services/homes/admin/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
PERL_MB_OPT="--install_base \"/var/services/homes/admin/perl5\""; export PERL_MB_OPT;
PERL_MM_OPT="INSTALL_BASE=/var/services/homes/admin/perl5"; export PERL_MM_OPT;

commit: wrote '/var/services/homes/admin/.cpan/CPAN/MyConfig.pm'

You can re-run configuration any time with 'o conf init' in the CPAN shell

Installer le module install Test::Pod:

cpan[*]> install Test::Pod
  ETHER/Test-Pod-1.52.tar.gz
  /opt/bin/make install  -- OK

Installer le module JSOM:

cpan[*]> install JSON
  ISHIGAKI/JSON-4.02.tar.gz
  /opt/bin/make install  -- OK

Installer le module LWP::Protocol::https:

cpan[*]> install LWP::Protocol::https
  OALDERS/LWP-Protocol-https-6.07.tar.gz
  /opt/bin/make install  -- OK
cpan[*]> quit

Guide télé et icônes

Documentation inspirée de:

tvlistings.zap2it.com

Se créer un compte à:

Se créer une liste de favoris correspondant à nos chaînes télé captées via notre antenne (ceci permet de réduire le téléchargement et réduit l'impact au site web):

zap2xml

Installation des dépendances

Réexécuter la configuration CPAN pour l'utilisateur sc-tvheadend:

$ sudo su -s /bin/bash sc-tvheadend -c 'PATH=$PATH:/opt/bin cpan'

Would you like to configure as much as possible automatically? [yes]

What approach do you want?  (Choose 'local::lib', 'sudo' or 'manual')
 [local::lib]

local::lib is installed. You must now add the following environment variables
to your shell configuration files (or registry, if you are on Windows) and
then restart your command line shell and CPAN before installing modules:

PATH="/var/packages/tvheadend/target/perl5/bin${PATH:+:${PATH}}"; export PATH;
PERL5LIB="/var/packages/tvheadend/target/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
PERL_LOCAL_LIB_ROOT="/var/packages/tvheadend/target/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
PERL_MB_OPT="--install_base \"/var/packages/tvheadend/target/perl5\""; export PERL_MB_OPT;
PERL_MM_OPT="INSTALL_BASE=/var/packages/tvheadend/target/perl5"; export PERL_MM_OPT;

cpan[1]> install Test::Pod
cpan[2]> install JSON
cpan[3]> install LWP::Protocol::https
cpan[4]> quit

zap2xml.pl

Télécharger le script perl zap2xml.pl et le déposer dans le compte sc-tvheadend à partir du site:

NOTE: L'adresse exacte de téléchargement (?h=114b1dm) varie en fonction des révisions

$ sudo curl -o ~sc-tvheadend/bin/zap2xml.pl http://phatic.ml/?h=114b1dm
$ sudo chmod 0755 ~sc-tvheadend/bin/zap2xml.pl
$ sudo chown sc-tvheadend:tvheadend ~sc-tvheadend/bin/zap2xml.pl

Créer le répertoire ~sc-tvheadend/.xmltv et ~sc-tvheadend/cache:

$ sudo mkdir --mode=0755 ~sc-tvheadend/.xmltv ~sc-tvheadend/cache
$ sudo chown sc-tvheadend:tvheadend ~sc-tvheadend/.xmltv ~sc-tvheadend/cache

Créer un script d'exécution ~sc-tvheadend/bin/zap2xml.sh afin d'acquérir l'environnement Perl et de télécharger 15 jours de guide télé. Utiliser votre nom d'utilisateur (<user>) et mot de passe (<passwd>) de votre compte tvlistings.zap2it.com:

  • On télécharge 15 jours dans le but que Kodi soit toujours en mesure d'avoir accès à un minimum de 14 jours dans le guide horaire
#!/bin/sh

PATH="/var/packages/tvheadend/target/perl5/bin${PATH:+:${PATH}}"; export PATH;
PERL5LIB="/var/packages/tvheadend/target/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
PERL_LOCAL_LIB_ROOT="/var/packages/tvheadend/target/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
PERL_MB_OPT="--install_base \"/var/packages/tvheadend/target/perl5\""; export PERL_MB_OPT;
PERL_MM_OPT="INSTALL_BASE=/var/packages/tvheadend/target/perl5"; export PERL_MM_OPT;

~/bin/zap2xml.pl -U -u <user> -p <passwd> -d 15 -c ~/cache -o ~/.xmltv/tv_grab_file.xmltv -l fr -I -i ~/.xmltv

Ajuster les permissions du script d'exécution:

$ sudo chown sc-tvheadend:tvheadend ~sc-tvheadend/bin/zap2xml.sh
$ sudo chmod 0755 ~sc-tvheadend/bin/zap2xml.sh

En tant qu'utilisateur sc-tvheadend faire un premier test manuel:

$ sudo su -s /bin/bash sc-tvheadend -c '~/bin/zap2xml.sh'

Planificateur de tâches

Via le panneau de configuration -> Planificateur de tâches, créer une tâche quotidienne dans la DSM qui s'exécutera tout juste avant la tâche de mise à jour d'ÉPG spécifique à tvheadend:

  • Tâche: zap2xml
  • Utilisateur: root
  • Jours: Quotidienne
  • Début: 08:00
  • Fréquence: Toutes les 12 heures
  • Tâche: sudo su -s /bin/bash sc-tvheadend -c '~/bin/zap2xml.sh'

TVHeadend - Collecteur d'ÉPG

Documentation générale:

Ajouter un nouveau collecteur d'ÉPG en téléchargeant le script tv_grab_file puis ajuster ses permissions:

$ sudo wget https://raw.githubusercontent.com/Rigolo/tv-grab-file/master/tv_grab_file -P /var/packages/tvheadend/target/bin
$ sudo chown sc-tvheadend:tvheadend /var/packages/tvheadend/target/bin/tv_grab_file
$ sudo chmod 755 /var/packages/tvheadend/target/bin/tv_grab_file
$ sudo ln -s /var/packages/tvheadend/target/bin/tv_grab_file /usr/local/bin/tv_grab_file

Redémarrer tvheadend afin de détecter le présence du nouveau collecteur d'ÉPG:

$ sudo synoservice --restart pkgctl-tvheadend

Aller dans l'interface de configuration de TVHeadend et accéder aux configurations de base:

Ajuster le chemin vers les icônes pour file://usr/local/tvheadend/.xmltv/:

Accéder à la section "Collecteur d'EPG":

Dans la section général cocher les options suivantes:

  • Mise à jour de l'icônes des chaines
  • Save EPG to disk after xmltv import

Dans la section "Internal Grabber Settings" ajuster la tâche quotidienne à une heure de votre choix, 10 minutes suivant la capture d'ÉPG provenant de la tâche planifiée zap2xml. Je tente d'ajuster les heures en fonction de moments où le système est le moins utilisé (attention, ici en heure UTC):

# Default config (08:10 and 18:10 UTC everyday)
10 8 * * *
10 18 * * *

Accéder à la section "EPG Grabber Module":

Trouver le module nommé "tv_grab_file is a simple grabber that just read the ~/.xmltv/tv_grab_file.xmltv file":

Cocher/activer les options suivantes:

  • Activé: coché
  • Priorité: 1
  • Numéro de la chaîne (heuristique): Only digits

Ensuite forcer une première exécution des collecteurs d'ÉPG via le bouton "Relancer l'acquisition EPG interne":

Accéder à la section "Chaînes":

Configurer chaque poste afin d'associer une "Source de l'EPG" correspondante:

Lors des mises à jour d'ÉPG subséquentes les icônes se mettront à jour automatiquement avec référence au site web source de zap2it tel que https://zap2it.tmsimg.com/h3/NowShowing/45867/s16371_h3_aa.png. Entre-temps il est possible d'associer manuellement chaque chaîne en complétant le chemin avec le nom de l'icône correspondant au numéro de chaine .png tel que file://usr/local/tvheadend/.xmltv/2.1.png