Olivier Mengué – Code & rando - Tag - AppEngine2024-03-29T07:17:39+01:00urn:md5:57e646ab8ca85028168daaaa985aa995Dotclearxmltv-fr.appspot.com est en ligne !urn:md5:bad73d92d457285b615d07698ff1b5a82008-09-28T00:10:00+00:002013-08-10T16:21:11+00:00Olivier MenguéXMLTVAppEngineBeautifulSoupPythonwebdevXMLTVxmltv-frXSLT <p>J'annonce <a href="http://xmltv-fr.appspot.com/">xmltv-fr.appspot.com</a>, mon grabber XMLTV qui diffuse la grille de programmes de télévision au format XMLTV.</p>
<p>J'avais déjà développé <a href="http://o.mengue.free.fr/blog/2008/02/11/51-les-programmes-tele-de-telerama-en-xmltv">une solution à base de scripts shell et de feuille de style XSLT</a>, puis un <a href="http://o.mengue.free.fr/xmltv/telerama.xmltv" type="application/xml" rel="noindex nofollow">proxy en PHP</a> il y a 6 mois, mais j'avais des problèmes de fiabilité en raison de l'hébergement chez Free.fr : un appel sur trois au service échouait. J'ai donc fait en une journée le portage en Python pour l'héberger sur Google AppEngine. Grâce à l'infrastructure de Google je ne devrait pas avoir de soucis du même type.</p>
<p>Pour l'instant, le flux récupéré ne correspond qu'à un seul appel au site Télérama et donc ne récupère que 3h de programmes des 6 chaînes analogiques nationales. Mais je compte bien poursuivre le portage pour arriver à l'équivalent de la version PHP puis éventuellement utiliser le stockage Google pour améliorer les performances grâce à un cache.</p>
<p>Pour vous faire patienter, voici un peu de doc sur l'interface du grabbber PHP :</p>
<ul>
<li><code>/xmltv/telerama.xmltv</code> : 3h de programme à partir de maintenant sur les 6 chaînes (c'est la seule chose qui fonctionne sur xmltv-fr.appspot.com pour l'instant).</li>
<li><code>/xmltv/telerama.xmltv?start=20080927220000</code> : 3h de programme à partir du samedi 27 à 22:00 (heure de Paris)</li>
<li><code>/xmltv/telerama.xmltv?channels=192,4,80,34,47,118,111,445,119,195,446,444,234,78,226,481,458,482</code> : 3h de programme de la TNT</li>
</ul>
<p>J'ai écrit cette semaine une feuille de style XSLT pour faire plusieurs appels au service et combiner les résultats en un seul fichier XMLTV :</p>
<pre class="terminal">
<samp>xsltproc -o tv.xml http://o.mengue.free.fr/xmltv/telerama-full.xslt http://o.mengue.free.fr/xmltv/TNT.xml</samp>
</pre>
<p>Dès que j'aurais implémenté les paramètres <code>start</code> et <code>channels</code> la même feuille de style pourra aussi fonctionner pour <code>xml-fr.appspot.com</code>.</p>
<p class="update"><strong>MàJ 2008-09-29 :</strong> le portage est complet, l'API complète (<code>start</code>, <code>channels</code>) est disponible, donc vous pouvez utiliser la même feuille de style simplement en changeant l'URL du service. Voici un exemple où je récupère le programme des 5 prochains jours (<a href="http://www.w3.org/TR/xmlschema-2/#duration">voir le format du paramètre <code>duration</code></a>) :</p>
<pre class="terminal">
<samp>xsltproc -o tv.xml -stringparam xmltv-url http://xmltv-fr.appspot.com/telerama.xmltv -stringparam duration P5D http://o.mengue.free.fr/xmltv/telerama-full.xslt http://o.mengue.free.fr/xmltv/TNT.xml</samp>
</pre>
<p>Malheureusement, je m'aperçois que je rencontre les mêmes problèmes d'accès au service : je ne peux qu'en déduire que cela vient en fait du site Télérama. À suivre…</p>