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:
- Récupérer la version 2.8.7 (courante). Ajout de vérifications.
- Récupérer la version 2.8.6. Correction de l’heure d’hiver/été.
- Récupérer la version 2.8.4. Traitement des tags dans les textes (+).
- Récupérer la version 2.8.3. Traitement des tags dans les textes.
- Récupérer la version 2.8.2. Changement esthetiques (du code).
- Récupérer la version 2.8.1. Correction de la numerotation des épisodes.
- Récupérer la version 2.8. Correction des tags dans les critiques bloquent dans certaines descriptions. Ajout du surround.
- Récupérer la version 2.7. Correction du « 16:9 » et « Tous Publics » qui apparaissent dans certaines descriptions.
- Récupérer la version 2.6. Ajout des images du programme. Correction du « 4:3 » qui apparait dans certaines descriptions. Ajout de la gestion des prefix/postfix pour le nommage des chaines. Affichage des erreurs sur le STDERR.
- Récupérer la version 2.5. Modification de l’affichage du numéro d’épisode quand celui-ci est inséré dans la description du programme.
- Récupérer la version 2.4. Ré-écriture complète. Appel sur plusieurs jours en 1 coup (j’aurais du l’appeler 3.0 mais j’ai oublié).
- Récupérer la version 2.3. Corrections sur la partie de configuration des chaines.
- Récupérer la version 2.2. Stable: Correction de la numérotation des chaînes pour être cohérente avec MythTV.
- Récupérer la version 2.1. Ajout des fonctions de récupération des chaines (et des icônes). Gestion du fichier de configuration. Option pour ajouter le numéro d’épisode dans la description. Option d’appel automatique de mythfilldatabase.
- Récuperer la version 2.0. Changement des options (compatibles mythfilldatabase).
- Récuperer la version 1.9.1. Le nom du script à changé: c’est maintenant tv_grab_fr_iphone.pl (au lieu de telerama.pl).
- Récuperer la version 1.9. Ajoute juste des fonctions de debug: (tv_grab_fr_iphone.pl 0 -d > dump.dat -> récupère les données brutes du serveur. tv_grab_fr_iphone.pl 0 dump.dat transforme un fichier de données brutes en XMLTV.
- Récuperer la version 1.8. Corrige le changement d’heure qui décalait tous les programmes d’1h avec l’heure d’hiver
- Récuperer la version 1.7. Corrige un problème avec les noms des acteurs
- Récuperer la version 1.6. Corrige autre problème avec des marqueurs présents dans les descriptions
- Récuperer la version 1.5. Corrige un problème avec des marqueurs présents dans les descriptions
- Récuperer la version 1.4. Corrige le changement d’accès au site Telerama depuis le 10 septembre 2009 environ
- Récuperer la version 1.3.
- Récuperer la version 1.2.
- Récuperer la version 1.1.
- Récuperer la version 1.0.
(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