tv_grab_nl_upc
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:
- Programmagegevens kunnen o.a. worden opgehaald voor zenders die ontbreken op tvgids.nl, zoals BBC 3, BBC 4 en The Travel Channel.
- De programmagegevens op tvgids.nl zijn vaak gebrekkig, vooral waar het om de buitenlandse (publieke) omroepen gaat, zoals ARD, ZDF, TVE, Rai Uno en TV 5. Meestal heeft een programma van een dergelijke zender bv. helemaal geen omschrijving, dus ook hier kan tv_grab_nl_upc uitkomst bieden.
- In het geval van films kan de bijbehorende IMDB-beoordelingscijfer worden opgezocht en toegevoegd aan de data, zodat op basis hiervan in MythTV geavanceerde en nauwkeurige opnameregels kunnen worden gemaakt. Hierdoor wordt het bv. mogelijk om alleen die films op te nemen die door de kijkers zelf als zeer goed zijn bevonden. Alweer kan dit een reden zijn om de data van bv. de Film1-zenders met deze grabber op te halen i.p.v. met een grabber die zijn data ophaalt bij tvgids.nl.
- De Nederlandstalige categorie-indeling van UPC wordt omgezet, zodat de kleurcodering naar behoren werkt in de elektronische programmagids (EPG) van MythTV, waaronder ook MythWeb.
- Links naar zenderlogo's kunnen automatisch worden toegevoegd. De logo's zelf dienen vervolgens door een ander programma te worden opgehaald, zoals mythfilldatabase.
- De grabber is snel en produceert legale UTF-8 XML-uitvoer. Deze kan gevalideerd worden m.b.v. tv_validate_file.
- 2008-04-22 Versie 0.9.7 is uit. Ergens na patchlevel 36 van Ruby 1.8.6 werd de REXML-lib van Ruby aangepast, waardoor ongewenste newlines terechtkwamen in de uitvoer van tv_grab_nl_upc. Deze werden dan ook overgenomen door MythTV, met een lelijke programmagids als resultaat. Dit euvel is nu verholpen. Tevens is de vertaling van de programmacategorie iets verbeterd.
- 2008-03-13 Ter wille van de nieuwe versie van MythTV, 0.21, is er een nieuwe versie van de wrapper, omdat de --file optie van mythfilldatabase nu slechts twee parameters nodig heeft i.p.v. drie. Aan tv_grab_nl_upc zelf is niets veranderd.
- 2008-02-22 De eerste nieuwe versie van 2008, 0.9.6, is een feit. Veranderingen aan de IMDB-site hadden tot gevolg dat voor een heleboel films de beoordelingscijfer niet meer kon worden opgezocht met --ratings. Dit is nu hersteld en het zoeken naar de juiste titel is nu ook iets verbeterd, waardoor meer films worden gevonden.
- 2007-12-12 Er is vanaf vandaag een nieuwe mailinglist voor discussie over tv_grab_nl_upc en aanverwante zaken.
- 2007-11-22 Versie 0.9.5 corrigeert een zeldzame bug, waarbij
de eindtijd van een programma dat na middernacht begint (dus eigenlijk op
dag N+1) en waarvan het uur van de eindtijd lager is dan het uur van de
begintijd, niet wordt aangepast zodat die betrekking heeft op dag N+2.
Deze bug kwam slechts zeer sporadisch te voorschijn.
- 2007-08-27 Versie 0.9.4 is genoodzaakt door een zeer recente wijziging op de UPC-site, die tot gevolg had dat de --configure optie niet meer werkte. --sanity-check sloeg de laatste paar dagen ook loos alarm voor alle zenders in het configuratiebestand.
- 2007-08-17 Versie 0.9.3 volgt zijn voorganger nu al op.
Afleveringnummers worden, als ze beschikbaar zijn, nu ook als zodanig
aangemerkt in de XML, dus niet alleen toegevoegd aan de subtitel.
Voortaan worden alle programma's met een categorie van Speelfilm behandeld als film, ongeacht de duur.
Een bug is opgelost waarbij films met de categorie Romantiek nooit werden opgezocht in IMDB.
- 2007-08-16 Versie 0.9.2 is beschikbaar. Het programma gaat nu
nog verder om een bruikbare subtitel af te leiden van de beschikbare
programmadata. Als een programmaomschrijving eindigt met deel,
part of aflevering, gevolgd door een nummer, dan wordt
deze tekst aan de reeds afgeleide subtitel toegevoegd, voor zover die
bestaat. Als geen andere subtiteltekst voor handen is, dan vormt het
afleveringnummer de subtitel op zichzelf.
Dit heeft tot gevolg dat voortaan meer programma's een subtitel krijgen. Voor programma's waarbij een subtitel al op andere wijze kon worden afgeleid, is de kans nu groter dat deze uniek wordt door het toevoegen van het afleveringnummer.
Dit mag als verbetering worden beschouwd, omdat MythTV hierdoor meer kans maakt om herhalingen te detecteren, niet in de laatste plaats omdat dat standaard gebeurt aan de hand van de combinatie subtitel/omschrijving. Het zal dus minder vaak voorkomen dat een programma ten onrechte meerdere keren wordt opgenomen, omdat bv. een subtitel geheel ontbreekt en MythTV dus geen combinatie subtitel/omschrijving kan vaststellen.
- 2007-07-20 Versie 0.9.1 is er. --ratings accepteert nu een optionele parameter, die een folder aangeeft waar de beoordelingscijferscache moet worden weggeschreven. Verder zijn er twee nieuwe programmacategorieën toegevoegd.
- 2007-07-17 Versie 0.9.0. De nieuwe experimentele optie
--threads zorgt ervoor dat de data voor alle kanalen tegelijk wordt
opgehaald i.p.v. voor het een na het andere.
Hiermee belast het programma de processor, het netwerk en de UPC-server veel zwaarder, maar het voordeel is dat het programma daardoor ook veel sneller klaar is. Op mijn systeem haalde het programma vanmorgen met --threads 9227 programma's op voor 54 zenders in 65 seconden. Dat komt neer op zo'n 141 programma's per seconde. Er werden in totaal 378 pagina's opgehaald, wat neerkomt op zo'n 5,8 pagina's per seconde; en dat ook met --ratings, wat het verloop enigszins vertraagt.
Debugtekst (--debug) kan nu dynamisch aan- en uitgezet worden door het programma een SIGUSR1-signaal te sturen (zie het UNIX-commando kill(1)). Eveneens kunnen de extra meldingen (--verbose) dynamisch aan- en uitgezet worden door het programma een SIGUSR2-signaal te sturen.
Het zoeken in de omschrijving naar een bruikbare subtitel is nu iets nauwkeuriger.
Met --sanity-check weigert het programma nu dienst als het gestart wordt door de UNIX-gebruiker root (UID 0). Dit i.v.m. de veiligheid van je systeem.
Er zijn tal van andere onzichtbare verbeteringen.
- 2007-07-10 Versie 0.8.9. Twee nieuwe versies op
één dag, maar niet omdat de vorige versie een nieuwe fout
zou hebben geïntroduceerd.
Ik heb ontdekt dat in bepaalde omstandigheden het programma in een exponentiële rekenlus kan belanden bij het analyseren van de omschrijving ten einde een bruikbare subtitel te vinden. Het leek daarbij alsof het programma hing en ging gepaard met een zeer hoog CPU-verbruik. Het probleem is nu verholpen.
- 2007-07-10 Versie 0.8.8 is beschikbaar. De veranderingen zijn weer miniem. De folder ~/.xmltv wordt nu gecreëerd als het niet reeds bestaat. Tot nu toe werd ervan uitgegaan dat die al bestond. Om dezelfde reden wordt nu desnoods ook het pad bij gebruik van de --config-file optie aangemaakt. Tevens zijn twee andere kleine bugs opgelost.
- 2007-06-15 Versie 0.8.7 is beschikbaar. De veranderingen zijn echter minimaal. De tekst van sommige meldingen is verhelderd en --verbose geeft nu i.c.m. --[static-]ratings de IMDB-beoordelingscijfer weer van elke gevonden film.
- 2007-05-11 Versie 0.8.6 verhelpt de bug, geïntroduceerd in 0.8.2, die tot gevolg had dat het gebruik van --static-ratings eigenlijk geen effect had, omdat de beoordeling niet gepakt werd door mythfilldatabase.
- 2007-05-08 Versie 0.8.5 verhelpt het verschijnsel waarbij in
zeldzame gevallen het programma het aan het einde van zijn verloop zou
begeven bij het rapporteren van de IMDB-beoordelingscijfers.
Dit gebeurde in een drietal gevallen: wanneer er helemaal geen films voorkwamen om op te zoeken; wanneer er voor geen enkele film een cijfer gevonden kon worden; wanneer het voor alle films lukte om een cijfer te vinden (m.a.w. wanneer voor geen enkele film een cijfer niet gevonden kon worden).
- 2007-04-26 Versie 0.8.4 corrigeert nog een fout in de rapportage van de IMDB-beoordelingscijfers, waarbij de percentages bij elkaar opgeteld soms op 101% uitkwamen.
- 2007-04-12 Versie 0.8.3 corrigeert een fout in de rapportage van het aantal positieve en negatieve ingangen bij het lezen van de persistente IMDB-beoordelingscijferscache. De aantallen waren ten onrechte inclusief de verlopen en derhalve ook verwijderde ingangen.
- 2007-04-09 Versie 0.8.2 bevat verbeteringen voor diegenen die
ondanks het bestaan van --static-ratings toch nog
--ratings willen blijven gebruiken.
Vanaf nu wordt er gebruik gemaakt van een persistente cache, waardoor het netwerk en de IMDB-servers minder belast worden. Een gunstige bijwerking hiervan is dat tv_grab_nl_upc nu eerder klaar is met zijn werk. Zie --ratings voor meer informatie.
- 2007-03-31 Versie 0.8.1 bevat geen voor de gebruiker zichtbare veranderingen, maar is niet meer afhankelijk van het UNIX-commando date(1). Dit komt het gebruik op andere besturingssystemen dan UNIX(-achtige) ten goede.
- 2007-03-23 Omdat --ratings in feite in strijd is met de IMDB-gebruiksvoorwaarden is er in versie 0.8.0 nu ook de nieuwe --static-ratings optie. Als je deze optie gebruikt, wordt bij IMDB 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 gebruikt voor het opzoeken van de beoordelingscijfers.
- 2007-03-05 IMDB heeft de titelpagina's alweer aangepast, zodat het weer niet meer mogelijk was om de beoordelingscijfer van een film op te zoeken. Versie 0.7.2 lost dit probleem op.
- 2007-02-20 IMDB heeft gisteren de titelpagina van alle films aangepast, met als gevolg dat het niet meer mogelijk was om de beoordelingscijfer van een film op te zoeken. Versie 0.7.1 lost dit probleem op.
- 2007-02-16 Het gaat hard: versie 0.7.0 is al uit. Eindelijk
beschikt tv_grab_nl_upc nu over een --configure optie,
waardoor het mogelijk wordt interactief en stapsgewijs een nieuwe
configuratiefile in elkaar te zetten.
Verder is het opzoeken van beoordelingscijfers in IMDB weer ietsje verbeterd, zodat films met een ampersand in de titel nu ook gevonden worden.
- 2007-02-14 De valentijnsdagversie, 0.6.1, is verkrijgbaar. Het
opzoeken van beoordelingscijfers in IMDB is verbeterd. Films met
geaccenteerde letters in de titels konden in versie 0.6.0 niet gevonden
worden, maar dit probleem behoort nu tot het verleden.
Verder is een tweetal onopvallende bugs eruit gehaald.
- 2007-02-12 Versie 0.6.0 is verschenen. De belangrijkste
verbetering in deze versie is dat er nu m.b.v. de nieuwe
--[no-]ratings optie een poging kan worden ondernomen voor iedere
film de bijbehorende IMDB-beoordelingscijfer op te zoeken.
Omdat UPC in de programmagegevens helaas niet aangeeft wanneer het om een film gaat, moet het programma dat zelf proberen te constateren. Hoe dat werkt lees je hieronder bij --[no-]ratings.
Een belangrijke verandering in deze versie is genoodzaakt door het feit dat UPC de data voor schema 1 niet meer bijhoudt. D.w.z. dat tv_grab_nl_upc nu altijd schema 2 gebruikt, ongeacht het evt. toepassen van de --schema optie. Een waarschuwing wordt gegeven als men alsnog schema 1 probeert te gebruiken.
Het enige belangrijke gevolg van deze verandering is dat het nu van essentieel belang is dat de namen van de zenders zoals ze in de configuratiefile staan precies overeenkomen met hetgeen UPC hanteert (inclusief spaties en andere interpunctie). Anders zal er voor een zender met afwijkende spelling geen data worden opgehaald. Zie hieronder de --sanity-check optie.
Andere verbeteringen in deze versie: nog meer informatie wanneer --verbose wordt gebruikt, betere presentatordetectie, eventuele HTTP-omleidingen worden nu gevolgd, twee nieuwe programmacategorieën zijn toegevoegd, en tussentijds verbroken verbindingen met de UPC-server worden nu hersteld.
- 2007-01-24 Versie 0.5.1 is nu uit. In deze versie zitten een paar wijzigingen en toevoegingen t.b.v. de verplichte functionaliteit van XMLTV-grabbers (zie --description en --capabilities). Verder is de robuustheid van het programma enigszins verbeterd.
- 2007-01-02 Versie 0.5.0 is nu uit. De belangrijkste verandering
in deze versie is dat er nu een redelijke poging wordt ondernomen om voor
elk programma naast de titel ook een passende ondertitel (d.w.z. subtitel)
bij te voegen.
In eerste instantie wordt gekeken of de titel een dubbele punt bevat. Zo ja, dan wordt de linkerkant de titel en de recherkant de ondertitel. Zo niet, dan wordt naar de programmaomschrijving gekeken om daarvan een ondertitel af te leiden. Bestuderen van de programmaomschrijving leert nl. dat de eerste zin veelal toch de naam van een aflevering is o.i.d. Aan de hand van tekstanalyse kan met redelijke betrouwbaarheid worden vastgesteld wanneer dit het geval is en in zo'n geval wordt deze zin gebruikt als ondertitel.
Verder wordt nu een waarschuwing gegeven als het programma wordt gedraaid in een andere locale dan nl_NL. De juiste werking van het programma wordt in andere locales niet gegarandeerd (voor de programmeurs onder u: omdat o.a. reguliere expressies subtiel anders werken per locale).
- 2006-12-14 Versie 0.4.0 is een feit. Nieuwe opties zijn
--[no-]cattrans, --debug en --tries. Alweer is
een aantal bugs eruit gehaald en de berichtgeving tijdens het verloop
verbeterd.
Presentatordetectie wordt nu ondernomen, waar deze informatie aanwezig is. Voor zover ik weet doet MythTV echter (nog) niets met deze informatie, maar mogelijk wordt tv_grab_nl_upc ook voor andere doeleinden gebruikt en dan komt deze informatie wellicht van pas.
Verder zijn er nieuwe programmacategorieën toegevoegd. Het eindrapport van de ontbrekende categorieën wordt nu met --debug opgevraagd, niet meer via --verbose. Er zijn tal van andere kleine verbeteringen.
- 2006-11-24 Versie 0.3.0 is uit. UPC biedt programmadata aan op
twee verschillende plekken op zijn chello.nl site. Soms loopt de ene
URL-structuur leeg, terwijl de andere juist nog helemaal vol zit.
Inhoudelijk zijn er weinig verschillen, hoewel de nieuwere structuur een
meer genuanceerde programmacategorie geeft.
Laatst kon tv_grab_nl_upc zijn werk niet meer doen, omdat de gidspagina's bij UPC leeg waren gelopen. Om dit in de toekomst te voorkomen ondersteunt tv_grab_nl_upc vanaf nu ook de andere URL-structuur. Deze twee structuren heten schema's in de terminologie van tv_grab_nl_upc. Standaard wordt schema 2 gebruikt, de nieuwe dus. Wil je nog schema 1 blijven gebruiken, gebruik dan de nieuwe --schema optie.
Verder is een aantal bugs opgelost.
- 2006-11-12 Versie 0.2.0 is uit. Enkele verbeteringen zijn doorgevoerd (betere vertaling van programmacategorieën en het instellen van optionele controles [zie --sanity-check]) en nieuwe opties toegevoegd (--sleep, --xmltvid-suffix, --version en --sanity-check).
- 2006-09-17 Versie 0.1.0 is uit. Dit is de eerste publieke versie van de grabber.
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
- Zorg er eerst voor dat je een recente (in ieder geval ten minste 1.8.0) versie van Ruby hebt draaien op je computer. tv_grab_nl_upc maakt dankbaar gebruik van de REXML-bibliotheek van Sean Russell.
- Download de laatste versie van de grabber en zet deze (als root of met sudo) in /usr/local/bin.
- Download de laatste versie van de wrapper en zet deze ook in /usr/local/bin.
- Maak zowel de grabber als de wrapper uitvoerbaar (executable): chmod a+x /usr/local/bin/tv_grab_nl_upc*
Gebruik
Configuratie
- Maak nu een configuratiefile aan met daarin alle zenders waarvoor je
programmainformatie wilt ophalen. De snelste manier op dit te realiseren is
door het programma te starten met de --configure optie.
Standaard wordt de configuratiefile neergezet op ~/.xmltv/tv_grab_nl_upc.conf, maar je kunt ook een andere locatie gebruiken m.b.v. de --config-file optie.
Je kunt natuurlijk ook gewoon de zendergegevens intikken in de configuratiefile. Die moet er dan ongeveer zo uit komen te zien:
23 Fashion TV 24 E! Entertainment 30 Club 31 Reality 313 Travel Channel 805 BBC 3 806 BBC 4Het verdient aanbeveling om dezelfde zendernummering te hanteren als UPC zelf voor zijn digitale-televisiepakket. In het geval van de zendernamen moeten deze precies overeenkomen met de spelwijze op de UPC-site. Als je de configuratiefile creërt m.b.v. de --configure optie, komt dit vanzelf wel goed, want dan worden de UPC-gegevens gebruikt.In het geval dat je je configuratiefile handmatig hebt ingetikt wordt het gebruik van --sanity-check en --verbose aanbevolen. Daardoor zal tv_grab_nl_upc de zendernamen in de configuratiefile vergelijken met die van UPC en eventuele afwijkingen vermelden. Als deze fouten niet gecorrigeerd worden, zal er geen data worden opgehaald voor de zenders met een afwijkende naam.
Blanke regels en die die met # beginnen worden genegeerd.
Zorg er ook voor dat je geen zenders opneemt in deze file wanneer je programmadata voor deze zenders ook door tv_grab_nl of het veel betere tv_grab_nl_py laat ophalen. Die twee grabbers gebruiken nl. andere XMLTV IDs voor de zenders, waardoor er geen terugkoppeling mogelijk is met tv_grab_nl_upc. Of je moet de desbetreffende XMLTV ID eerst aanpassen.
-
De grabber is vrij snel (afhankelijk van de netwerklatentie en de belasting
van de UPC-servers) en klaart meestal binnen een paar minuten zijn klus, ook
al zet je de volledige lijst van UPC-kanalen in de configuratiefile. De
IMDB-beoordelingscijfers laten opzoeken met --ratings zorgt wel
voor enige vertraging.
Laat het programma eerst een of twee keer met de hand lopen door /usr/local/bin/tv_grab_nl_upc aan te roepen als dezelfde gebruiker die mythfrontend heeft opgestart:
/usr/local/bin/tv_grab_nl_upc --sanity-check --verbose
Dan kun je nl. controleren of alles goed verloopt. Als dat zo is, komt er een hoop XML op het scherm voorbijflitsen. Anders wordt er een foutmelding weergegeven.
Als het programma goed lijkt te werken, kun je het nu proberen aan te roepen via de wrapper; althans, dat vind ik zelf wel handig. De wrapper geeft alle opties op de commandoregel door aan tv_grab_nl_upc en zorgt ervoor dat mythfilldatabase daarna op de juiste manier wordt aangeroepen om de data op te nemen in MythTV. De wrapper ziet er ongeveer zo (vereenvoudigd) uit:
#!/bin/bash xml_file=$( mktemp -p ~/.xmltv upc.XXXXXXXXXX ) video_source=2 LANG=nl_NL /usr/local/bin/tv_grab_nl_upc $* > $xml_file mythfilldatabase --file $video_source $xml_file rm $xml_file
Mogelijk moet je $video_source aanpassen. In mijn geval heb ik source 1 geconfigureerd als het analoge zenderpakket. In source 2 heb ik alleen die kanalen opgenomen die digitaal te ontvangen zijn. Als je slechts één source hebt, moet je hier 1 gebruiken.Let op: Tot en met MythTV 0.20 moest je mythfilldatabase handmatig aanroepen (dus met --file) om de opgehaalde data van tv_grab_nl_upc te laten opnemen in MythTV. Dat kwam doordat MythTV alleen een standaard lijst van grabbers herkende en tv_grab_nl_upc dus niet automatisch aangeroepen kon worden door mythfilldatabase.
Sinds MythTV 0.21 is het echter mogelijk om vooraf eigen grabbers te configureren in MythTV. Dat doe je in mythtvsetup.
Probeer dus /usr/local/bin/tv_grab_nl_upc_wrapper. Als het goed is, zie je na afloop een aantal berichten afkomstig van mythfilldatabase:
### bypassing grabbers, reading directly from file 2006-09-17 14:20:57.863 Using runtime prefix = /usr 2006-09-17 14:20:57.882 New DB connection, total: 1 2006-09-17 14:20:57.887 Connected to database 'mythconverg' at host: localhost 2006-09-17 14:20:58.406 New DB connection, total: 2 2006-09-17 14:20:58.407 Connected to database 'mythconverg' at host: localhost 2006-09-17 14:20:59.194 Updating icons for sourceid: 2 2006-09-17 14:20:59.195 New DB connection, total: 3 2006-09-17 14:20:59.196 Connected to database 'mythconverg' at host: localhost
Andere meldingen over toevoegingen en verwijderingen weggeknipt...2006-09-17 14:21:12.871 Keeping 7 days of data. 2006-09-17 14:21:13.076 Adjusting program database end times. 2006-09-17 14:21:13.274 0 replacements made 2006-09-17 14:21:13.274 Marking generic episodes. 2006-09-17 14:21:13.399 Found 0 2006-09-17 14:21:13.400 Marking repeats. 2006-09-17 14:21:13.511 Found 0 2006-09-17 14:21:13.511 Unmarking new episode rebroadcast repeats. 2006-09-17 14:21:13.620 Found 0 2006-09-17 14:21:13.928 Marking episode first showings. 2006-09-17 14:21:17.422 Found 5206 2006-09-17 14:21:17.422 Marking episode last showings. 2006-09-17 14:21:20.902 Found 5206 2006-09-17 14:21:20.941 =============================================================== | Attempting to contact the master backend for rescheduling. | | If the master is not running, rescheduling will happen when | | the master backend is restarted. | =============================================================== 2006-09-17 14:21:20.945 Connecting to backend server: 127.0.0.1:6543 (try 1 of 5) 2006-09-17 14:21:20.946 Using protocol version 30 2006-09-17 14:21:20.989 mythfilldatabase run complete.
-
Als laatste dien je een crontab-entry te maken voor
tv_grab_nl_upc_wrapper, zodat deze dagelijks zijn werk kan doen en
nieuwe programmainformatie kan ophalen.
Draai dus crontab -e als de gebruiker die mythfrontend opstart en zet daar iets neer wat op het volgende lijkt:
35 05 * * * nice /usr/local/bin/tv_grab_nl_upc_wrapper > /var/log/mythtv/mythfilldatabase.log 2>&1
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.
- "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.
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
- Suggesties, problemen, patches, etc. kun je mailen naar mij. Je kunt ook gebruik maken van de mailinglist.
Met dank aan Paul de Bruin voor de HTML die ik kosteloos in bruikleen heb.
Last modified: Tuesday, 22 April 2008 at 11:13 CEST