Menu

tv_grab_nl_upc


English Summary

If you're an English speaker and need help getting programme guide data for UPC's (digital) television network, you can try using the software available in the download section of this page. If you encounter problems and need help, feel free to drop me a line. Inleiding

tv_grab_nl_upc is een XMLTV-compatibele grabber geschreven in Ruby, die TV-programmainformatie ophaalt bij chello.nl, de site van kabeltelevisiebedrijf UPC. Enkele prettige eigenschappen van deze grabber zijn:

Nieuws

Download

De nieuwste versie is tv_grab_nl_upc.

Bekijk de ontwikkelingsgeschiedenis van tv_grab_nl_upc aan de hand van de Changelog.

De nieuwste versie van de wrapper is tv_grab_nl_upc_wrapper.

Beide programma's zijn uitgebracht onder de GNU GPL v2, hoewel de wrapper eigenlijk geen licentie waard is.

Installatie

Gebruik

Configuratie

Opties

--capabilities
Geeft een lijst van ondersteunde XMLTV-grabberfunctionaliteit. Deze optie is voornamelijk bedoeld om informatie door te geven aan andere programma's die zelf tv_grab_nl_upc aanroepen.
--[no-]cattrans
Met --no-cattrans wordt voorkomen dat de UPC-programmacategorie in een MythTV-categorie wordt omgezet. Dit is vooral interessant voor mensen die tv_grab_nl_upc gebruiken voor doeleinden die niets met MythTV te maken hebben en die dus niet willen dat er met de rauwe data wordt gerommeld.
--config-file FILE
De file met de zenderlijst. Standaard is dat ~/.xmltv/tv_grab_nl_upc.conf.
--configure
Maakt stapsgewijs en interactief een nieuwe configuratiefile aan. Gebruik --config-file om de locatie van de nieuwe file te bepalen. Als de file al bestaat, dan moet de gebruiker het overschrijven ervan bevestigen.
--days DAGEN
Het aantal dagen waarvoor programmadata opgehaald dient te worden. Standaard is dit 7.
--debug
Tijdens het draaien worden er extra meldingen getoond die vooral interessant zijn voor de auteur van dit programma.
--description
Geeft een omschrijving van het programma en stopt.
--help
Deze optie geeft een lijst van mogelijke opties.
--icons
Standaard worden links naar logo's niet automatisch toegevoegd aan de XML-data. Als je dat wilt, gebruik dan de --icons optie of zijn alias, --logos.

Let op: mythfilldatabase trekt de logo's binnen en zet ze neer in ~/.mythtv/channels (dus de homedirectory van de user die mythfilldatabase draait). Niet alle logo's zijn even mooi, maar je krijgt ze gratis en hebt dus waar voor je geld.

--logos
Zie --icons.
--offset DAGEN
Begin niet met de data van vandaag, maar vanaf dit aantal dagen na vandaag.
--output-file FILE
De file die wordt gebruikt voor de XML-data. Standaard gaat deze naar stdout.
--[no-]ratings [DIR]
Probeer op dynamische wijze voor alle films de bijbehorende IMDB-beoordelingscijfer op te zoeken.

Hierbij wordt gebruik gemaakt van een persistente cache, zodat voor een film die in de afgelopen 7 dagen reeds is opgezocht niet nog een keer de beoordelingscijfer erbij gehaald hoeft te worden. De film blijft net zo lang in de cache staan totdat hij 7 dagen lang niet meer is geraadpleegd. De cache wordt gelezen uit en weer weggeschreven in het bestand ratings_cache.yaml in de folder ~/.xmltv, tenzij anders aangegeven met DIR.

Ook films waarvoor geen beoordelingscijfer kon worden gevonden blijven op deze manier in de cache staan. Dit voorkomt dat er meerdere malen tevergeefs wordt gezocht naar steeds terugkerende titels (die misschien ook helemaal geen film zijn: zie aantekening hier beneden).

Het gebruik van een cache bevordert de snelheid van het programmaverloop en zorgt voor minder netwerk- en serverbelasting.

Omdat in de UPC-data bij een programma niet wordt aangegeven dat het een film betreft, gaan we ervan uit dat het om een film gaat waneer het programma langer duurt dan 80 minuten, korter duurt dan 4 uur en behoort tot een aannemelijke categorie. Mocht echter de zendernaam met Film beginnen, dan worden automatisch alle programma's van die zender als film behandeld en opgezocht in IMDB. Denk bv. aan de kanalen van Film1.

Uiteraard worden op deze manier soms ten onrechte programma's als film aangemerkt. Zelfs blokken tijd waarin er niet uitgezonden wordt, kunnen worden meegenomen, omdat er niet zonder meer van uit kan worden gegaan dat een programma met de titel Zender Uit De Lucht geen film betreft.

Gelukkig zorgt de persistente cache ervoor dat dit soort dagelijks terugkerende blokken tijd slechts één keer opgezocht hoeft te worden, om vervolgens blijvend in de cache aangeduid te staan als titel waarvoor geen beoordelingscijfer kan worden gevonden.

Wees er attent op dat het gebruik van --ratings ondanks zijn ontlastende implementatie nog altijd in strijd is met de IMDB-gebruiksvoorwaarden en ga er dan ook bewust en zuinig mee om. Overweeg bv. i.p.v. deze optie --static-ratings te gebruiken.

--sanity-check
Voer controles uit alvorens de gidsdata op te halen.

Met het gebruik van deze optie wordt gecontroleerd of de huidige UPC-gids daadwerkelijk begint met de data van de dag waarop tv_grab_nl_upc wordt aangeroepen. Met name na middernacht kan het voorkomen dat de gids van gisteren er nog staat. In een dergelijk geval worden de nodige berekeningen gedaan, zodat het programma alsnog gebruikt kan worden. Let wel dat UPC de gids ook tijdens het programmaverloop kan vervangen, waardoor er alsnog verschuivingen zouden plaatsvinden in de programmadata.

Tevens worden de zendernamen in de configuratiefile vergeleken met de namen die UPC hanteert op haar Web site. Dit is nodig, omdat de zendernaam deel uitmaakt van de URL die wordt gebruikt om de programmagegevens op te halen. Gebruik --verbose om het resultaat van die vergelijking te zien.

Tot slot wordt gecontroleerd of het programma wordt gestart door root (UNIX UID 0). Als dat zo is, stopt het programma onmiddellijk met een waarschuwing i.v.m. de veiligheid van het systeem.

--static-ratings
Proberen voor alle films de bijbehorende IMDB-beoordelingscijfer op te zoeken. Bij IMDB wordt een bestand opgehaald met daarin alle filmtitels en beoordelingscijfers. Dit bestand wordt neergezet op ~/.xmltv/ratings_list en neemt ongeveer 16 Mb in beslag. Vervolgens wordt het aangewend voor het opzoeken van de beoordelingscijfers.

Wanneer ~/.xmltv/ratings_list wordt verwijderd of ouder is dan 7 dagen, wordt het nogmaals opgehaald.

Het aantal films waarvoor de bijbehorende beoordelingscijfer wordt gevonden zal met deze optie doorgaans lager uitvallen dan wanneer men --ratings gebruikt. De oorzaak hiervan is dat dynamisch opzoeken van serverside-intelligentie profiteert die ons ondanks een onjuiste of onvolledige titel toch nog soms bij de goede film uitbrengt. Deze logica ontbreekt gewoon wanneer een lokaal bestaand wordt geraadpleegd.

Toch verdient deze optie de voorkeur boven --ratings omdat het in overeenstemming met de IMDB-gebruiksvoorwaarden te werk gaat en vele malen sneller is in het gebruik.

Zie --[no-]ratings voor een belangrijke aantekening omtrent het herkennen van een programma als film.

--schema SCHEMA
Vroeger gaf deze optie aan welk URL-schema moest worden gebruikt. Je kon daarbij kiezen uit 1 of 2, maar inmiddels is schema 1 op de UPC-site komen te vervallen, waardoor schema 2 nu altijd wordt gebruikt. Deze optie doet dus in feite niets meer, maar blijft gehandhaafd, zodat scripts die er gebruik van maken gewoon blijven werken.
--sleep SECONDEN
Hoe lang het programma moet wachten na het ophalen van een pagina voordat het met de volgende begint. Standaard is dat 1,0 seconde.
--threads
Met deze optie wordt de data voor alle kanalen tegelijk opgehaald i.p.v. voor het een na het andere. Hierdoor loopt het programma veel sneller, maar worden de processor, het netwerk en de UPC-server veel zwaarder belast. Het gebruik van --threads i.c.m. een --sleep-waarde van boven de nul heeft weinig nut. Spaarzaam gebruik van deze optie is aanbevolen.
--tries POGINGEN
Het aantal pogingen dat moet worden ondernomen om elke gidspagina op te halen. Standaard wordt er tot drie keer toe geprobeerd.
--verbose
Hiermee vermeldt het programma continu waar het op dat moment mee bezig is en worden er desnoods extra waarschuwingen gegeven.
--version
Geeft programmaversie weer en stopt.
--xmltvid-suffix TOEVOEGSEL
Gebruikt een andere string dan .chello.nl voor het vormen van de XMLTV ID.
Problemen
"Ik krijg heel weining data binnen voor RTL 4 e.d."
Helaas, met de grabber is er niets aan de hand. Juist bij de Nederlandse zenders, waarvan je zou denken dat die nou het makkelijkst zouden zijn, laat UPC het qua informatievoorziening soms afweten. Soms is er slechts voor één dag data beschikbaar, dus kan de grabber er ook niet meer van maken.
"Mijn data is een dag verschoven."
Dit kan gebeuren als je tussen 00:00 en 01:00 de grabber laat lopen. Rond die tijd heeft chello.nl de programmagids voor het komende etmaal nog niet verwisseld en wordt er verondersteld dat je de data van gisteren nog wilt hebben. Je krijgt dan precies een dag verschoven de data binnen. De simpele oplossing is om ergens na 01:00 te grabben. Met --verbose zal tv_grab_nl_upc een waarschuwing geven als je het programma op een gevaarlijk tijdstip draait. Met --sanity-check kan het probleem programmatisch omzeild worden, maar beter is het om even te wachten voordat je het programma opnieuw laat lopen.
Mailinglist

Er is een mailinglist voor discussie over tv_grab_nl_upc en aanverwante zaken. Toekomst

Er staan geen nieuwe features op de planning voor het programma, simpelweg omdat ik verder niets meer kan bedenken. Kleine aanpassingen en onderhoud worden nog wel gedaan. Mocht ik een idee krijgen voor een leuke nieuwe feature, dan zal ik die uiteraard wel implementeren. Uiteraard staat het een ieder vrij om mij een voorstel te doen voor een nieuwe feature. Overige Voor LIRC is de volgende lircd.conf beschikbaar. Deze zorgt ervoor dat MythTV de zender kan laten veranderen op de set-topbox van UPC. Contact

Credits

Met dank aan Paul de Bruin voor de HTML die ik kosteloos in bruikleen heb.


Home | Photos | About Ian | CV | Mailing lists | PCW | signature | bash | Ruby | Contact Ian |

Last modified: Tuesday, 22 April 2008 at 11:13 CEST