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 UPC Live, 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

--[no-]actual
Deze optie zorgt ervoor dat programma's die reeds zijn begonnen of geëindigd niet worden meegenomen in de uitvoer. Sinds v1.7.0 wordt deze optie standaard stilzwijgend gebruikt.
--[no-]cache [DIR]
Deze optie, die standaard aan staat, zorgt ervoor dat de grabber een cache bijhoudt van alle gevonden programma's. Standaard wordt hiervoor het bestand ~/.xmltv/programme.cache gebruikt. Wordt DIR opgegeven, dan wordt programme.cache weggeschreven in die folder.

De cache zorgt ervoor dat er veel minder netwerkverkeer over en weer moet. Hierdoor is het programma niet alleen sneller, de servers van UPC worden ook aanzienlijk minder belast. Het gebruik ervan is zeer aan te bevelen.

Oude programma's worden automatisch weer uit de cache verwijderd.

--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.

--ignore-errors
Deze optie zorgt ervoor dat het programma door blijft lopen wanneer er onverwachte problemen optreden bij het ophalen van data voor sommige uitzendingen.
--ignore-negatives
Met deze optie wordt gehandeld alsof negatieve ingangen in de cache met IMDB-beoordelingscijfers niet bestaan. Met andere woorden, voor deze films zal toch nog worden gepoogd een beoordelingscijfer op te zoeken.
--[no-]ignore-old
Zie --[no-]actual.
--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.
--prune-subtitles
Van subtitels die uitgaan op een punt wordt deze punt weggehaald. Deze optie kan worden gebruikt om kleine verschillen tussen de data van verschillende grabbers recht te trekken.
--[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.

--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.

Als deze waarde te laag wordt ingesteld, dan kan UPC reageren door foutmeldingen terug te sturen i.p.v. de gevraagde data. Zet deze waarde daarom nooit lager dan 0.20.

Als UPC vindt dat er te snel achter elkaar om data wordt gevraagd, zal de grabber dat compenseren door de slaaptijd trapsgewijs met 0,20 seconden te verhogen. Het verzoek om data wordt dan met een steeds grotere tussenpauze net zo vaak herhaald, totdat er geen foutmelding meer wordt gegeven.

--[no]-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 computer, het netwerk en de UPC-server ook veel zwaarder belast.

Het gebruik van --threads i.c.m. een --sleep heeft geen nut, omdat --sleep per aparte thread werkt en dus niet kan voorkomen dat verschillende threads achter elkaar data ophalen.

Zeer spaarzaam gebruik van deze optie is aanbevolen. Sinds februari 2010 is het zelfs mogelijk nutteloos geworden, omdat UPC nu foutmeldingen geeft als men te snel achter elkaar de server om data verzoekt.

--tries POGINGEN
Het aantal pogingen dat moet worden ondernomen om elke gidspagina op te halen. Standaard wordt er tot drie keer toe geprobeerd.
--user-agent NAAM
De naam die het programma moet gebruiken om zich te identificeren aan de server van UPC en evt. ook die van IMDB.
--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 UPC Live 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, zoals UPC kijken met MythTV.

Toekomst

Er staan geen nieuwe features op de planning voor het programma, omdat het eigenlijk al doet wat het moet doen.

Kleine aanpassingen en noodzakelijk onderhoud worden nog wel gedaan. Regelmatige veranderingen aan de kant van UPC en IMDB zorgen ervoor dat er altijd wel om de paar maanden een nieuwe versie moet worden uitgebracht.

Mocht ik een idee krijgen voor een leuke nieuwe feature, dan zal ik die uiteraard wel implementeren. Natuurlijk staat het een ieder vrij om mij een voorstel te doen voor een nieuwe feature of, nog beter, om het zelf te implementeren.

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