Programmes Telerama sur MythTV

Dernières nouvelles

17/04/2012: Le serveur Telerama n’envoie plus toutes les données (rétabli environ 1 semaine après).

15/11/2011: Le serveur Telerama envoie a nouveau les dates de production correctes.

18/12/2010: Le serveur Telerama n’envoie plus les date des production correcte (mais la date du jour à la place).

18/12/2010: Le serveur Telerama n’envoie plus les titres originaux.

 

Présentation

 

Ce script perl qui permet de récupérer des programmes TV sur le site de Télérama.

Le programme récupère les programmes Télérama en fonctionnant de la même manière que l’application iPhone Télérama.

Les informations récupérées

  • Heure de début et de fin, ainsi que l’identifiant de programme (C3.telerama.fr par exemple),
  • Numéro de Showview (pas utilisé par MythTV),
  • Titre en français,
  • Sous-titre,
  • Description de l’émission,
  • Date d’émission ou de production,
  • Catégorie courte et longue (seule la 1ere est utilisée par MythTV),
  • Durée de l’émission en minutes,
  • Pays de production,
  • Liste des acteurs, présentateurs, invités, ou réalisateurs,
  • Nombre d’étoiles (5 max),
  • L’image de l’émission (pas utilisé par MythTV),
  • Restriction (âge minimum, ou notation MPAA) ou Tous Publics,
  • Inédit/Première diffusion,
  • Numéro d’épisode (avec la saison et tout),
  • Video HD, 16/9, 4/3,
  • Audio stéréo, Dolby, Dolby digital, surround,
  • Sous-titrage,
  • Rediffusion (sans la date par contre).

Utilisation

On peut utiliser le script soit directement:

Par exemple, pour ajouter à MythTV un programme d’une journée se passant dans 7 jours:

./tv_grab_fr_iphone.pl --offset 7 > tmp.xmltv
/usr/bin/mythfilldatabase --file 1 tmp.xmltv

Sinon on peut utiliser le script avec un script d’automatisation (voir le chapitre automatisation).

Configuration

Fichier de configuration ~/.tv_grab_fr_iphone

Pour rester compatible avec Mythfilldatabase, les options spécifiques sont données dans un fichier de configuration à placer dans le « home » de l’utilisateur du script (nom du fichier ~/.tv_grab_fr_iphone).

Il est possible d’utiliser un fichier différent en donnant le chemin dans les paramètres (voir le paragraphe des options).

Ce fichier est nécessaire au fonctionnement du tv_grab_fr_iphone (il y a une erreur s’il ne le trouve pas). Ce fichier est à placer à la racine du compte de l’utilisateur (HOME).

Par exemple pour un utilisateur mythtv, il doit être dans son home soit généralement: /home/mythtv/.tv_grab_fr_iphone

Configuration de la liste des chaines

Pour modifier la liste, il faut donc éditer le fichier de configuration, et changer les numéros correspondants aux chaînes choisies (ou en ajouter) sur la ligne contenant selected_channels. Le fichier est pré-remplit avec une chaîne par ligne qu’il suffit de commenter/dé-commenter.

Par exemple:

selected_channels=1
2,3
# 4
5,6,7,8

Il faut absolument utiliser les identifiants (numéros) Telerama pour reconnaitre les chaînes. Par exemple l’identifiant 199 sera RTL9.

La liste complète des chaînes est donnée dans le fichier de configuration. Toutefois la liste complète est disponible ici: ListeChaines.php

Du côté de MythTV, pour chaque chaîne que l’on récupère avec ce script, il faut changer le champ « xmltvid » pour qu’il soit de la forme « .telerama.fr », avec id qui est le numéro de la chaîne. Ca se fait facilement avec MythWeb (dans la page de configuration de la TV).

Autres options

  • desc_crit=0 (désactiver) ou 1 (activer) les critiques dans le descriptif des programmes. Par défaut désactivé (0).
  • desc_episode=0 (désactiver) ou 1 (activer) les numéros d’épisode dans le descriptif des programmes. Par défaut désactivé (0).
  • mythtv_dir=chemin des préférences de MythTV (/var/lib/mythtv, /home/mythtv, …). Par défaut « /var/lib/mythtv ».
  • dst=0 (désactiver) ou 1 (activer) la gestion du changement d’heure entre l’été et l’hiver. Par défaut activé (1).
  • xmltvid_prefix= pour modifier la préfixe utilisé pour la chaîne par MythTV (mettre un « C » par exemple devant le numéro). Par défaut «  » (rien).
  • xmltvid_postfix= pour modifier le postfixe utilisé pour la chaîne par MythTV. Par défaut « .telerama.fr ».

Ligne de commande

Les options suivantes sont principalement des options compatibles avec mythfilldatabase. Cela permet à ce script d’être appelé automatiquement par mythfilldatabase sans a faire soi-même (via un cron ou autre).

Usage:
  tv_grab_fr_iphone.pl [--days ] [--offset [,: number of days to retrieve (default 1).
  --offset ,,...: offset in days since today (default 0). Several offset can be set.
  --list-channels: try to generate a xml of channels on stdout
  --capabilities: print some capabilities for mythfilldatabase (useless)
  --description: print the name of this grabber
  --update-channels: try to update directly the icons and the xmlid of the channels in the database.
  --output : Output to file instead of stdout.
  --cache : raw data filename as input (instead of web access) (debug). Must be created with --output raw before.
  --config-file : Use specific configuration file.
  --quiet: not implemented (present for compatibility).
  --help: show this help.
Non standard options:
  --source ,,...: Source identifier list used mythfilldatabase. Several option can be set --> Will call mythfillbase
  --raw: output to stdout in raw format (debug) instead of XML.

Example:
To grab program listings: tv_grab_fr [--config-file FILE] [--output FILE] [--days N] [--offset N1,N2,...] [--source SOURCE1,SOURCE2,...]
To list available channels: tv_grab_fr_iphone --list-channels [--config-file FILE]
To update channels: tv_grab_fr_iphone --update-channels [--config-file FILE]
To create a cache file (for debugging): tv_grab_fr_iphone --raw --output cache.raw
To use the cache file (for debugging): tv_grab_fr_iphone --cache cache.raw ...

Commandes:

  • rien ou –days ou –offset ,,…: Génère à l’écran le XML correspondant au programmes sur le nombre de jours (–days) demandé à partir du nombre de jour depuis aujourd’hui (–offset). On peut demander plusieurs offsets: –offset 0,5 –days 2 récupère: aujourdhui, demain, +5j, +6j.
  • –list-channels: Liste les chaines à l’écran en XML.
  • –update-channels: Met à jour les chaines avec leurs icônes.
  • –help: affiche l’aide

Options non-standard:

  • –source ,,…: permet au script d’appeler tout seul mythfilldatabase (au lieu que ce soit mythfilldatabase qui appelle le script !), et de spécifier toutes les source_id. Lorsque l’on appelle mythtfilldatabase à la main (comme ici), on ne peut faire que pour une seule source vidéo. Là le script va appeler mythtfilldatabase pour chacune des source vidéo.
  • –raw: Change le format de sortie. Utile au débug seulement.
  • –offset ,,… : Normalement –offset prend qu’une seule valeur (selon le standard proposé par mythfilldatabase). Ici on peut demander plusieurs offsets d’un coup.

 


Automatisation

En utilisant cron, on peut récupérer automatiquement les programmes chaque jour. De préférence on récupère la nuit pour pas charger le serveur. De même, on a pas besoin de récupérer les 10j tous les jours car les programmes TV ne sont pas changés tous les jours.

Donc par exemple en utilisant comme suit le script (tv_grab_fr_iphone-cron.sh), il récupèrera les programmes de dans 10j, 7j et 1j:

Dans le crontab:

45 4 * * *    /usr/local/bin/tv_grab_fr_iphone-cron.sh 1 7 10

Contenu du fichier tv_grab_fr_iphone-cron.sh (fourni):

#!/bin/bash
iphone_exec=~/Applications/tv_grab_fr_iphone.pl   # adapter le chemin pour accéder au script
lockf="/tmp/`basename $0`.pid"
# Grab a random value between 0-240.
value=`expr $RANDOM / 1000`
if [ -z "$*" ]; then
  echo "syntaax error"
  exit
fi
# Sleep for that time.
echo "waiting $value s"
sleep $value
if [ -f $lockf ]; then
  echo $0 locked
  killall -9 `cat $lockf`
  rm $lockf
  exit
fi
echo "$$" > $lockf
echo "processing $*"
$iphone_exec --offset $* > /tmp/tvguide.xmltv
/usr/bin/mythfilldatabase --file 1 /tmp/tvguide.xmltv
/usr/bin/mythfilldatabase --file 2 /tmp/tvguide.xmltv   # Enlever la ligne si une seule source vidéo (1 ligne par source)
rm $lockf

En plus ce script fait une attente aléatoire enre 0 et 60mn pour ne pas démarrer tous les jours à la même heure.

Et aussi une limitation de temps d’execution (en cas de plantage de mythfilldatabase), mais ça a pas l’air de fonctionner.

Récupération des chaînes automatique

A écrire

 


Téléchargement (Download)

Récupérer la version courante ou sinon choisir la version:

En cas de nombreux téléchargement, le serveur peut bloquer certaines requêtes. Dans ce cas, il faut ré-essayer quelques minutes après.

 


(Re)Initialisation des programmes

Pour initialiser les programmes, voici les commandes en shell:

~/tv_grab_fr_iphone.pl --days 10 > /tmp/tvguide.xmltv # adapter le chemin en fonction de l'endroit ou se trouve le script
/usr/bin/mythfilldatabase --file 1 /tmp/tvguide.xmltv
Important

Utilisation avec plusieurs sources vidéo

Lorsque plusieurs sources vidéo (au sens MythTV) utilisent les même programmes (ex: Freebox et DVB-T), on récupère 1 fois le fichier XML, et on appelle mythfilldatabase autant de fois qu’il y a de sources différentes.

Ex avec 1 sources:

tv_grab_fr_iphone.pl --offset 5 > /tmp/tvguide.xmltv ; \
/usr/bin/mythfilldatabase --file 1 /tmp/tvguide.xmltv

Ex avec 2 sources:

tv_grab_fr_iphone.pl --offset 5 > /tmp/tvguide.xmltv ; \
/usr/bin/mythfilldatabase --file 1 /tmp/tvguide.xmltv ; \
/usr/bin/mythfilldatabase --file 2 /tmp/tvguide.xmltv