Un vrai guide des programmes avec TVHeadEnd (TNT Fr)

À la maison pour mon installation multimédia, j’utilise l’excellent logiciel TV HeadEnd. Installé sur mon NAS Synology 212j celui-ci me permet de distribuer la TNT par le réseau à mon ordinateur portable, mon ordinateur fixe et même mon smartphone Android. TVHeadEnd et XBMC c’est pour moi le couple gagnant pour obtenir un système multimédia complet efficace et facile d’utilisation. Un petit schéma pour mieux comprendre l’installation:

installation multimédia

Mon NAS synology s’occupe donc de la réception de la TV grâce à un simple tuner TNT en USB. Il distribue ensuite par le réseau les flux vidéos de la TNT sur mes différents postes. Si l’installation de TV HeadEnd est grandement facilitée par la présence d’un paquet dans l’excellent dépot Synocommunity, il me resté un petit problème à régler au niveau de l’EPG (Guide électronique des programmes).

Par défaut TV HeadEnd s’occupe de remplir l’EPG avec les données transmises sur le réseau DVB-T (TNT). Ça ne fonctionne pas trop mal, mais le guide est restreint dans le temps (le jour suivant) et surtout la description des programmes est très succincte. Il existe un autre moyen de se fournir en donnée EPG c’est le XMLTV. C’est un format de donnée de type XML qui contient la liste des programmes TV de façon structurée avec énormément d’infos disponibles (acteurs, date de sortie, genre, type d’émission, etc…). Les créateurs du format XMLTV on bien-sur créer un logiciel (XMLTV) qui permet de récupérer les infos TV tout seul comme un grand en « scrapant » les informations sur des sites de programme TV (pour la France Télépoche.fr). Le processus est bien sûr long, car il doit « scraper » les programmes sur plusieurs jours et pour plusieurs chaînes. C’est relativement fastidieux à mettre en place et il existe plus simple.

En effet sur la toile, il existe l’excellent site de kazer.org qui délivre des infos EPG sous format XMLTV directement en format zippé. Il suffit de s’inscrire pour pouvoir télécharger au format zip ou XML les données EPG pour les chaînes qu’on a configurées. Bien sûr toutes les chaînes de la TNT Françaises sont disponibles et même de nombreuses chaines satellites. Ne reste plus qu’à faire le lien avec le logiciel TV HeadEnd sur le NAS pour avoir des infos EPG de qualité! Pour faire le lien nous aurons besoin d’un simple script bash installer sur le NAS. Mais d’abord les prérequis.

 

Prérequis

S’inscrire sur le site kazer.org et avoir paramétré la liste de chaînes désirées dans l’onglet Mes Chaînes:

Dans ce même onglet, notez votre userhash en haut de la page:

tv_grab_kazer tuto2

Bien entendu il faut avoir installé et configuré TVHeadEnd sur votre NAS. C’est faisable facilement grâce à la mise à disposition d’un paquet sur Synocommunity.

Avoir SSH activé sur le NAS (Configuration / Terminal):

tv_grab_kazer tuto3

Télécharger le script bash tv_grab_kazer disponible sur github: https://github.com/c…v_grab_FR_Kazer

Lien direct vers le script zippé -> tv_grab_kazer.

Éditer le script bash tv_grab_kazer en remplaçant à la ligne 51 « VOTRE_CLEF » par le userhash fournit par Kazer.org:

tv_grab_kazer tuto4

Installation:

Copier le script tv_grab_kazer dans le répertoire de votre choix sur votre NAS (Exemple /volume1/Stockage):

tv_grab_kazer tuto5

Se connecter au NAS avec un client SSH (mRemoteNG sous Windows par exemple):

tv_grab_kazer tuto6

Déplacer le script dans le répertoire /usr/bin du NAS. Exécuter cette commande dans la console SSH:

mv /volume1/Stockage/tv_grab_kazer /usr/bin/

Attribuer correctement les droits sur le script:

chmod a+rx /usr/bin/tv_grab_kazer

Contrôler le bon fonctionnement du script en lançant cette commande dans la console SSH:

/usr/bin/tv_grab_kazer

À ce moment dans votre console SSH devrait apparaitre un flux de donnée XML contenant les programmes TV des chaînes que vous avez configurées:

<programme start="20130617205000 +0200" stop="20130617224500 +0200" channel="W91.kazer.org">
                <!-- pid = 1921659 -->
                <title>Le viager</title>
                <desc>En 1930, Louis Martinet, un paisible sexagénaire, n'en a plus pour longtemps à vivre selon les dires de son médecin, Léon Galipeau, qui entrevoit de profiter de la situation fort intéressante du «futur défunt». Celui-ci possède en effet une petite maison à Saint-Tropez. Galipeau flaire l'aubaine. Suivant ses conseils, Martinet accepte de la céder en viager au frère du médecin, Emile, puis s'empresse de retrouver une santé de fer. Pis, il survit même à la guerre. Les Galipeau, excédés, décident d'employer les grands moyens pour se débarrasser de l'importun qui s'obstine à contrecarrer leur projet... </desc>
                <credits><director>Pierre Tchernia</director><actor role="Louis Martinet">Michel Serrault</actor><actor role="Léon Galipeau">Michel Galabru</actor><actor role="Emile Galipeau">Jean-Pierre Darras</actor><actor role="Elvire">Rosy Varte</actor><actor role="Noël Galipeau">Claude Brasseur</actor><actor role="Bucigny-Dumaire">Yves Robert</actor><actor role="Marguerite Galipeau">Odette Laure</actor><actor role="l'avocat de Noël">Jean Carmet</actor></credits>
                <date>1971</date>
                <category lang="fr">Film</category>
                <length units="minutes">115</length>
                <video><aspect>16:9</aspect></video>
                <star-rating><value>1/5</value></star-rating>
        </programme>
<programme start="20130617224500 +0200" stop="20130617233500 +0200" channel="W91.kazer.org">
                <!-- pid = 1921660 -->
                <title>Relooking extrême : spécial obésité</title>
         <sub-title>Jonathan</sub-title>
                <desc>A 30 ans, Jonathan est un père de famille dévoué. Mais il éprouve des difficultés à jouer avec ses deux garçons à cause de son poids, quelque 230 kilos. Alors qu'il rêve d'être un papa actif réalisant de nombreuses activités avec ses enfants, Chris Powell l'aide à exaucer son souhait. Il l'accompagne au long d'une année, la plus importante de sa vie. Au programme, des exercices pour perdre du poids et des défis sportifs à relever. Le coach multiplie les encouragements et les conseils avisés pour soutenir Jonathan dans ce combat difficile. Le père arrivera-t-il à relever ce défi ? Combien de kilos perdra-t-il ? </desc>
                <category lang="fr">Téléréalité</category>
                <length units="minutes">50</length>
                <episode-num system="xmltv_ns">..0/2</episode-num>
                <video><aspect>16:9</aspect></video>
        </programme>
<programme start="20130617233500 +0200" stop="20130618002000 +0200" channel="W91.kazer.org">
                <!-- pid = 1921661 -->
                <title>Relooking extrême : spécial obésité</title>
         <sub-title>Jonathan</sub-title>
                <desc>A 30 ans, Jonathan espère perdre plus de 130 kilos. Le coach sportif, Chris Powell, lui vient en aide. Tout au long d'une année, ce dernier propose au père de famille une série de défis et d'exercices physiques à réaliser. Alors que la pesée des 90 jours est un franc succès, Jonathan doit multiplier les efforts en reprenant le rythme de sa vie habituelle. Il doit gérer le stress provoqué par cette situation tout en continuant à perdre du poids. Pendant ce temps, Chris Powell lui suggère un challenge faisant appel à l'athlète qui sommeille en lui. Quel sera le résultat de la nouvelle pesée ? Jonathan a-t-il tenu ses objectifs ? </desc>
                <category lang="fr">Téléréalité</category>
                <length units="minutes">45</length>
                <episode-num system="xmltv_ns">..1/2</episode-num>
                <video><aspect>16:9</aspect></video>
        </programme>
</TV>NAS212j>

Configuration de TVHeadEnd:

Redémarrez votre NAS pour prendre en compte le nouveau script.

Connectez-vous à l’interface administration de TVHeadEnd.

Dans Configuration / EPG Grabber sous Internal grabber sélectionnez XMLTV : France Kazer puis réglez l’intervalle de mise à jour (1 day semble correct).

tv_grab_kazer tuto7

Dernière étape rendez-vous dans channels et pour chaque chaîne dans la colonne EPG Grab Source sélectionnez la chaîne correspondante:

tv_grab_kazer tuto8

Vous pouvez désormais vous rendre dans l’epg pour vous rendre compte que vous avez accès aux programmes de vos chaînes sur les 8 prochains jours:

tv_grab_kazer tuto9

Le seul petit bug, c’est lorsqu’on clique sur une émission, l’image associée n’est pas bonne…

Ce n’est vraiment pas gênant, car on utilise très peu l’interface de TVHeadEnd. En fait tout passe par le logiciel XBMC exécuté sur l’ordinateur. Voici ce que ça donne avec XBMC sous Windows 7:

screenshot005screenshot001screenshot004

Maintenant plus besoin du petit TéléZ!

39 Commentaires

  • anthony
    12 juin 2013 - 18 h 24 min | Permalien

    Très intéressant. Si tu détail toute installation je me ferais la même.
    Quel est le modèle de ton tuner usb ?

    • 12 juin 2013 - 21 h 30 min | Permalien

      Le tuner USB TNT est un AverTV Volor HD Pro (puce AF9033). Attention il me semble que les derniers modèles n’utilisent plus le même chipset, du coup la compatibilité linux n’est plus assuré. Avant de te fournir en Tuner USB regarde cette page pour savoir si c’est compatible sous linux. Quand je vais trouver un peu plus de temps, je vais faire une série de tuto pour détailler tout ça.

  • anthony
    14 juin 2013 - 8 h 40 min | Permalien

    Je te remercie pour l’info.
    Très intéressant les possibilités des nas.

  • roger
    14 juin 2013 - 12 h 25 min | Permalien

    super billet,
    voila longtemps que je cherchais une solution pour rendre ma freebox,
    je suis aussi intéressé par le détail de l’installation,
    Merci !

  • christophe
    15 août 2013 - 16 h 07 min | Permalien

    on va tester tout ca 🙂 merci !

  • Groumpff
    25 août 2013 - 21 h 27 min | Permalien

    Bon tuto, merci.

    J’ai corrigé ma configuration kazer avec.

    J’ai une carte TV Hauppauge .

  • nanar32
    20 novembre 2013 - 16 h 54 min | Permalien

    Bonjour,

    Dans un premier temps, merci pour le tuto.

    Cependant j’ai un petit soucis:
    il est indiqué
    « Redémarrez votre NAS pour prendre en compte le nouveau script.
    Connectez-vous à l’interface administration de TVHeadEnd.
    Dans Configuration / EPG Grabber sous Internal grabber sélectionnez XMLTV : France Kazer puis réglez l’intervalle de mise à jour (1 day semble correct). »

    J’ai bien tout suivie mais il ne se trouve pas dans la liste des Internal grabber.

    Faut-il placer le script à un endroit bien particulié?

    Merci d’avance.

    Cordialement

    • clark17
      20 novembre 2013 - 17 h 07 min | Permalien

      Le script doit se trouver dans /usr/bin sur le NAS.

      As-tu essayés la commande /usr/bin/tv_grab_kazer pour voir si tous fonctionne?

      • nanar32
        20 novembre 2013 - 19 h 00 min | Permalien

        Oui il marche nickel, grand merci pour cela.

        je vais réessayer en rentrant du boulot de carrement eteindre le nas, peut etre que ca sera plus efficace…

        • clark17
          20 novembre 2013 - 23 h 31 min | Permalien

          Oui c’est parfois capricieux. A voir aussi du côté de synocommunity si le paquet tvheadend n’a pas était mis à jour…

  • nanar32
    21 novembre 2013 - 9 h 50 min | Permalien

    Bonjour,

    Donc j’ai testé en redemarrant, en eteignant, il n’est pas détecté.
    Je vais regardé du coté de synocommunity, et si j’ai la solution je viendrai la poster ici.

    Merci

  • nanar32
    21 novembre 2013 - 10 h 49 min | Permalien

    J’ai trouvé la solution pour les personnes qui seraient dans mon cas:

    Le script avait les droits suivant : — — rwx (pour les connaitre se placer dans le dossier /usr/bin (commande pour cela « cd /usr/bin/ ») puis regarder les droits des fichiers (commande: « ls -l »)
    Je les ai mis à r-x r-x rwx
    pour cela au demarrage de la console ssh il faut lancer les commandes suivante:

    1- cd /usr/bin/
    2- chmod a+rx tv_grab_kazer

    J’ai redémarré le NAS (DS214Play pour info) et c’est nickel.

    Encore merci pour le script et le tuto.

    • clark17
      21 novembre 2013 - 11 h 21 min | Permalien

      Une question de droit donc. C’est bizarre j’ai pas souvenir d’avoir a les changer. En tout cas si ça marche c’est le principale. Je vais rajouter ça dans le tuto au cas où.

      Merci à toi.

  • Jerem30
    17 janvier 2014 - 18 h 33 min | Permalien

    Bonjour à tous,
    j’ai suivi à la lettre le tuto mais j’ai un soucis,

    quand je veux tester le script avec la commande : /usr/bin/tv_grab_kazer
    j’ai un retour : -ash: /usr/bin/tv_grab_kazer: not found

    alors que le script est bien présent quand je fais cd /usr/bin/ puis ls -i

    quelqu’un aurait’il une idée ?

    Merci encore

    • clark17
      18 janvier 2014 - 15 h 09 min | Permalien

      As tu attribué correctement les droits sur le script:
      « chmod a+rx /usr/bin/tv_grab_kazer » ?

    • DAmien
      4 août 2014 - 19 h 26 min | Permalien

      J’ai la même erreur.

      Comment as-tu fait pour créer le fichier ?

      Merci par avance.

  • jerem30
    18 janvier 2014 - 18 h 19 min | Permalien

    Oui. J’a tout fait comme sur le tutoriel et je n’ai pas eu de message d’erreur en modifiant les droits. C’est etrange!

  • Jerem30
    19 janvier 2014 - 16 h 29 min | Permalien

    Bon, ça ne voulait pas marcher !
    du coup au lieu de télécharger le script, j’ai créé un nouveau fichier dans usr/local/bin, et copier coller le contenu du script dans ce nouveau fichié, en y mettant ma clé ! et ….. ça fonctionne !
    super merci beaucoup !
    Bon we !

    • clark17
      21 janvier 2014 - 21 h 42 min | Permalien

      Ok, content que ça fonctionne pour toi également. A bientôt sur ce blog.

  • zeldoi5
    25 février 2014 - 17 h 16 min | Permalien

    Merci pour ce tuto 😉
    J’ai un petit soucis…
    Je mets le script sous /usr/bin… je le lance… OK
    Je redémarre OK

    Je vais voir dans Channels… je n’en ai aucune.

    Une idée ?

    • clark17
      27 février 2014 - 20 h 26 min | Permalien

      Quand tu lances le script avec « /usr/bin/tv_grab_kazer » tu as bien un flux xml qui apparait?

      PS: Désolé pour la lenteur de ma réponse, ton commentaire était dans la boite à spam de WordPress 😉

      • zeldoi5
        28 février 2014 - 9 h 27 min | Permalien

        Merci clark17 ! Aucun soucis pour cette pseudo lenteur (qui n’en est pas une pour moi!).
        Oui, en lancant /usr/bin/tv_grab_kazer , j’ai bien le flux xml en download et en affichage…

        Mais j’ai l’impression d’avoir quelques autres problèmes, sûrement corrélés entre eux :
        – première remarque, dans Configuration / DVB Inputs / TV Adapter, je ne trouvais pas ma clef TNT (Avermedia A835B)
        – je dois repluger ma clef de temps en temps (au moins une fois par jour), afin que le live flux sous Video Station soit fonctionnel (comme s’il perdait soit l’antenne ou que le NAS déconnectait la clef)… problème de mise en hibernation des disques ?

        Ce matin, suite à l’arrêt de cette nuit et au redémarage ce matin la clef est bien vue (d’ailleurs en faisant un dmesg je la vois bien loadée) et semble fonctionnelle sous Video Station. (ces jours ci, l’arret de la nuit / relance du matin n’étaient pas faits).
        Je la vois également également dans Configuration / DVB Inputs / TV Adapter…

        Par contre toujours pas de trace de Channels (par contre, je vois bien des « multiplexes » dans Configuration / DVB Inputs / TV Adapter / Multiplexes…

        Dernière question : il paraîtrait qu’il faut lancer Video Station avant Tvheadend afin que ce dernier utilise tout ce que Video Station ai chargé… c’est vrai ?

        • clark17
          28 février 2014 - 12 h 41 min | Permalien

          Effectivement le fait que ton tuner disparaisse toutes les nuits est particulièrement gênant quand même… Sur ce sujet je ne peux pas trop t’aider malheureusement.

          Sinon Video Station ne sert qu’a installer les drivers nécessaires pour ta clef TNT. Après il n’a aucune utilité dans le fonctionnement de TVHeadend. Je ne l’ai jamais utilisé d’ailleurs.

      • zeldoi5
        28 février 2014 - 10 h 47 min | Permalien

        Evolution….

        Comme je le disais, j’ai pu sélectionner la clef TNT dans Configuration / DVB Inputs / TV Adapter.
        Ensuite, j’ai coché sur « Enabled » dans Configuration / DVB Inputs / TV Adapter / General / Adapter configuration
        puis j’ai fait un Add DVB Network by location
        puis MAP DVB services to channels

        Remarque : dans la partie de droite Information and capabilities, j’ai un signal strengh à 0%… et ça me semble pas très bon (pourtant la réception TNT semble très bonne : sur la TV comme sur d’autres tuner TNT utilisés -Freebox entre autre-).

        Là, ça a mouliné un peu, et les chaines sont apparues.

        Quand je vais sur l’onglet principa Electronic Program Guide, je n’ai rien 🙁

        J’avance!
        Mais à mon avis, mon câble coaxial d’antenne est pourri… je vais le changer ce week end…

        • clark17
          28 février 2014 - 12 h 44 min | Permalien

          Si tu as 0% c’est qu’il y a un problème de réception. Le tuner de ces petites clef TNT est souvent bien moins performant qu’un tuner TNT de TV. Il faut donc une très bonne réception pour espérer capter les chaines TV de façon optimale.

          Regarde ton câble d’antenne voir même l’antenne râteau.

          Si tu as des chaines qui apparaissent peux tu les regarder convenablement?

          Si oui il ne te reste plus qu’a associer les channels pour chaque chaine avec les flux xml dans EPG Grab Source.

          • zeldoi5
            3 mars 2014 - 11 h 40 min | Permalien

            Bonjour clark17,

            j’ai laissé ce week-end pour pas trop m’énerver dessus…
            Je pense que le câble a un soucis.

            En fait l’installation est la suivante :
            Rateau
            |
            |
            Ampli 3 sorties 6db
            | | |
            NAS FreeboxTV

            Je trouve que l’âme du câble coaxial utilisé entre l’ampli et le NAS est très fine (par rapport à d’autres câbles coaxial que j’ai pu manipuler), c’est pour ça que je pense que c’est la cause du dysfonctionnement.

            Quoiqu’il en soit, le Signal Strengh varie entre 0 et 100% (mais est plus souvent à 100%).
            Je vais faire ces tests ;
            – changer le câble existant et conserver l’ampli
            – shinter l’ampli et raccorder avec un nouveau câble
            – shinter l’ampli et raccorder avec le câble existant

            J’ai pu regarder des chaînes (SD et HD) avec l’appli backend sur des devices Android (appli Tvheadend) : ça a fonctionné.. j’ai même pu voir dans Status / Active subscriptions, que le client (en l’occurence la tablette android) était connectée et ‘lisait’ le flux de TvHeadEnd.

            J’ai voulu associer les channels pour chaque chaîne avec les flux xml mais, le menu de ta copie d’écran n’est pas (plus) le même que sur la version que j’ai installée de TvHeadEnd et je n’ai plus toutes les chaînes… mais ça c’est secondaire : on va déjà stabiliser le flux TNT 😉

            Merci pour ta précieuse aide en tous cas !

          • clark17
            3 mars 2014 - 12 h 35 min | Permalien

            Ok content pour toi que ça fonctionne. Te reste plus qu’a revoir ton installation d’antenne alors 😉

  • zeldoi5
    4 mars 2014 - 10 h 52 min | Permalien

    Bon…
    J’ai eu un soucis et n’ai trouvé d’autre moyen que de supprimer le package TvHeadend…
    Sauf que maintenant, impossible de le retrouver : sur le repository synocommunity, il n’y a plus le spk…
    Aurais tu le fichier en question, ou un repository sur lequel le trouver (archi Kirkwood mv6282) ?

    • clark17
      5 mars 2014 - 15 h 22 min | Permalien

      C’est bizarre car il apparait toujours sur le site de synocommunity ainsi que sur leur github. Malheureusement je n’ai plus le spk en question. La seul solution c’est de compiler toi même le spk avec ça: https://github.com/SynoCommunity/spksrc

      • zeldoi5
        7 mars 2014 - 11 h 12 min | Permalien

        Bon… une suppression de tous mes repository a été salvatrice. J’ai pu récupéré Tvheadend… je me relance donc dans mes tests 😉
        Merci en tous cas de ta réactivité !

  • Gwal
    24 juin 2014 - 20 h 03 min | Permalien

    Merci pour la doc.
    Fonctionne parfaitement sur mon syno DS212.(DSM 5.0-4493 Update 1)
    Clef USB double Tuner Happauge WinTv-duet HD
    Je perd la clef de temps en temps chez moi aussi -> reboot.
    Un peu genant tout de même car je voulais utiliser le syno comme PVR.
    ++

  • bravvv
    3 mars 2016 - 14 h 09 min | Permalien

    Salut Inrepublica,

    Ton NAS Synology 212 n’est pas un peu léger niveau puissance pour faire tourner le serv TVheadend ?

    Ça fonctionne j’en suis certain, mais n’y a t’il pas un long temps d’attente entre les changement de chaines ? et/ou il longue mise en cache ..?

    Merci.

  • Renato Moscardini
    22 août 2016 - 14 h 13 min | Permalien

    Problème depuis la MAJ sur DSM 6.0
    J’ai dû changer unzip par 7z dans le script.
    En manuel, il fonctionne. Il retourne ce qu’il doit retourner.
    Mais pas de mise a jour du programme dans TVHeadend.

    Avez-vous eu ce souci, une solution ?

  • moscard
    23 août 2016 - 15 h 42 min | Permalien

    Ne fonctionne plus sur DSM 6.0
    Lorsque je le lance à la main -> ok, je reçois bien le XML.
    Dans TVheadend, il est bien accepté et apprêt en vert (activé)

    Mais il n’y à pas d’actualisation de l’EPG dans tvheadend.
    Tout fonctionnait parfaitement avant sur DSM 5.0

    Une solution un lien pour tester plus a fond le problème ?

  • spleef
    13 novembre 2016 - 14 h 37 min | Permalien

    Bonjour,
    Excellent tuto merci,

    J’ai ajouté quelques modifs au script si vous avez des soucis d’import comme la déserialization du xml :

    a mettre juste après le wget :

    # TM-CM-)lM-CM-)chargement du fichier xmltv.zip
    wget -q « $KAZERURL » -O « $TMPFILE »

    # Extraction du zip ici je met 7z qui est natif au syno
    cd /tmp/
    7z x « $TMPFILE »

    # transcodage des accents ( il faut installer la lib iconv avec le bootstrap du syno =>
    # ipkg install gconv-modules )
    iconv -c -f UTF-8 -t ISO-8859-15//TRANSLIT /tmp/tvguide.xml > /tmp/tvguide_new.xml

    # supression balise DOCTYPE et des balises de commentaire
    sed -i ‘//d’ tvguide_new.xml
    sed -i ‘//d’ tvguide_new.xml

    # Affichage du contenu de tvguide.xml
    cat /tmp/tvguide_new.xml

    # Effacement des fichiers temporaires
    rm « $TMPFILE »
    rm /tmp/tvguide.xml
    rm /tmp/tvguide_new.xml

    Voila encore merci pour le script 😉

  • Fred
    26 mai 2017 - 8 h 08 min | Permalien

    Bonjour,

    Unzip semble ne plus exister sur les dernières versions de DSM.
    Pouvez-vous m’aider à modifier le script, il me semble (à vérifier) que DSM utilise à présent 7z.
    commande not found sur : unzip -q « $TMPFILE » -d /tmp/

    merci

  • Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *