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:
- Programmagegevens kunnen o.a. worden opgehaald voor zenders die ontbreken op tvgids.nl.
- 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.
- De Nederlandstalige categorie-indeling van UPC wordt omgezet, zodat de kleurcodering naar behoren werkt in de elektronische programmagids (EPG) van MythTV en dus 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 redelijk snel en produceert legale UTF-8 XML-uitvoer. Deze kan gevalideerd worden m.b.v. tv_validate_file.
Nieuws
2011-04-05 Versie 1.10.0 is genoodzaakt door alweer wijzigingen aan de kant van UPC. Nu is het noodzakelijk om een unieke zender-id toe te voegen aan de URLs.
Tevens wordt de grabber niet meer afgebroken als de gedetailleerde gegevens voor een bepaald programma niet gevonden kunnen worden, wat al te vaak het geval is bij UPC. In plaats daarvan wordt voortaan alleen een waarschuwing gegeven en het desbetreffende programma genegeerd. Hierdoor hoeft voor dit specifieke geval geen --ignore-errors meer te worden gebruikt.
2011-01-22 Versie 1.9.3 lost een langdurige bug op die reeds in versie 1.5.0, zo'n anderhalf jaar geleden, is ingeslopen. Deze had tot gevolg dat er geen data werd opgehaald als --verbose niet was gebruikt. Hoe deze bug zo lang onopgemerkt heeft kunnen blijven is raadselachtig, maar behoort nu in ieder geval tot het verleden.
2011-01-01 Versie 1.9.2 moet het mogelijk maken om in ieder geval ook Ruby 1.8.6 te kunnen gebruiken. Voorheen was minimaal 1.8.7 nodig.
Daarnaast wordt in deze versie nog een probleemgeval ondergevangen, die tot gevolg had dat het programma vroegtijdig kon stoppen. Gebruik van --ignore-errors blijft nodig om dit tegen te gaan.
2010-12-26 Versie 1.9.1 herstelt de werking van --icons, dat ook slachtoffer was geworden van de recente veranderingen aan de site van UPC.
2010-12-25 Versie 1.9.0 herstelt orde op zaken na de zoveelste wijzigingen aan de kant van UPC.
Ook het dynamisch raadplegen van IMDB voor beoordelingscijfers werkte niet meer. Dit is eveneens hersteld, zij het dat de werking niet optimaal is. Alleen titels die exact overeenkomen met een ingang in IMDB zullen worden gevonden.
2010-03-25 Versie 1.8.3 volgt heel snel zijn voorganger op. Ik kwam net een blijkbaar al lang bestaande bug tegen, die tot gevolg had dat programma's die precies om middernacht begonnen en minder dan een uur duurden ten onrechte 24 uur kregen opgeteld bij hun eindtijd.
Dit had in combinatie met MythTV tot gevolg dat het programma de hele dag besloeg en de echte programmering van die dag verloren ging.
2010-03-25 Versie 1.8.2 is uitgebracht om een ernstige bug in versie 1.8.1 te verhelpen. Die had tot gevolg dat een groot deel van de programmering van vandaag ten onrechte naar morgen werd verschoven.
Als je versie 1.8.1 gebruikt, moet je onmiddellijk upgraden. Je dient ook de cache te verwijderen (of twee dagen achter elkaar --no-cache te gebruiken).
2010-03-19 Versie 1.8.1 is uit. Deze versie lost een bug op, waarbij, als --actual werd gebruikt, programma's die na middernacht (dus op de volgende dag) zouden beginnen foutief werden gezien als reeds uitgezonden.
Deze bug is vrij goed verborgen gebleven, omdat de meeste mensen --days gebruiken met een waarde > 1. Bij dagelijks gebruik waren de ontbrekende programma's van dag 0 dan al een etmaal eerder opgehaald als de programmering van dag 1. --actual is natuurlijk alleen van toepassing op dag 0, vandaag.
2010-02-09 Versie 1.8.0 is beschikbaar. UPC is voor de zoveelste keer de oorzaak, maar deze keer op een nieuwe, frisse manier.
UPC is begonnen met rate-limiting van de serververbindingen, ook wel throttling genoemd. In goed Nederlands gaat het om het afknijpen van de servercapaciteit, zodat overdadig gebruik ervan wordt gestraft. In de praktijk komt het erop neer dat, als je te snel achter elkaar data ophaalt bij UPC, je een foutmelding terug krijgt (voor de liefhebbers: een HTTP 503 respons met de vermanende zin "Please slow down").
Dit is iets nieuws van de afgelopen dagen, een euvel dat verergerd wordt door het feit dat --sleep al lang niet meer goed functioneert. De implementatie dateert nog uit de tijd dat er per zender per dag slechts één pagina opgehaald moest worden. Er wordt dus veel te weinig geslapen.
Allereerst is de bug in --sleep verholpen. Daarbij zal het duidelijk zijn dat --threads geen enkel nut meer heeft. De optie blijft gehandhaafd, maar je schiet er niets meer mee op en trekt in het ergste geval ongewenste aandacht van UPC. Doe het dus maar niet (meer).
Uit mijn onderzoek blijkt dat --sleep 0.3 nog net goed gaat. Probeer je nog sneller data op te halen, dan gaat het gauw mis. De grabber merkt in dat geval dat er wordt afgeknepen en reageert erop door de slaaptijd met 0,20 seconden per verzoek te verlengen. Het mislukte verzoek wordt uiteraard ook nog een keer gepoogd. Tenzij je --quiet gebruikt wordt het fenomeen gemeld. Ik adviseer een iets langere slaaptijd om ruim binnen de grens te blijven.
Er is een nieuwe optie, --user-agent. Hiermee geef je aan hoe het programma zichzelf moet noemen in het verkeer met UPC (en evt. ook met IMDB). Deze optie heeft momenteel geen toepassing, maar wordt alvast geboden voor het geval dat UPC in de toekomst verkeer gaat weren op basis van het gebruikte programma. In dat geval kan deze optie gebruikt worden om het programma zich als een reguliere browser te laten voordoen.
Verder is een aantal kleine verbeteringen doorgevoerd in deze versie.
2010-01-18 Versie 1.7.0 is beschikbaar, alweer genoodzaakt door aanpassingen aan de site van UPC. De details zal ik jullie hier besparen. Voor wie ze niet wil missen verwijs ik naar de aankondiging van deze versie op de mailinglist.
Tevens wordt in deze versie --ignore-errors geïntroduceerd. Deze nieuwe optie zorgt ervoor dat fouten in de data van een enkele uitzending niet tot gevolg hebben dat het programma onmiddellijk zijn werk afbreekt.
--actual negeert voortaan niet alleen reeds geëindigde uitzendingen, maar ook degene die reeds begonnen zijn. Verder wordt --actual nu standaard gebruikt, omdat de volledige gegevens van reeds uitgezonden programma's niet meer te achterhalen zijn op de aangepaste site van UPC.
Voorts geeft --debug voortaan nog meer informatie en zijn er kleine aanpassingen doorgevoerd om de robuustheid van het programma te vergroten.
2009-12-04 Toch nog een nieuwe versie voor het einde van het jaar. Versie 1.6.1 herstelt het dynamisch raadplegen van IMDB voor beoordelingscijfers, wat door HTML-aanpassingen aan de kant van IMDB voor de zoveelste keer nauwelijks nog werkte.
2009-06-15 Versie 1.6.0 is er. Deze versie is behalve met Ruby 1.8.7pl160, ook met Ruby 1.9.1p129 (de allernieuwste versie) getest en bij dezen goedgekeurd voor gebruik met die reeks. Het compatibel maken van de grabber had nogal wat voeten in de aarde.
Als je Ruby 1.9 gebruikt in combinatie met --ratings, moet je weten dat de grabber voortaan rating.cache gebruikt voor de cache, niet langer ratings_cache.yaml. Het bestand is dan ook binair geworden.
Verder is er alleen maar één kleine bug opgelost.
2009-06-03 Versie 1.5.3 is een feit. Alweer een bug opgelost, die tot gevolg het dat letterlijke ampersands in de uitvoer terecht konden komen, waar mythfilldatabase dan in zou stikken.
Als je merkt dat mythfilldatabase de afgelopen dagen ook bij jou uit de bocht is gevlogen (waarschijnlijk het geval als E! Entertainment bij jou in de zenderlijst staat), moet je ~/.xmltv/programme.cache wissen voordat je de grabber weer gebruikt.
2009-05-22 Twee versies in één dag: versie 1.5.1 is al opgevolgd door 1.5.2.
UPC kent zendernamen met een slash, /, in de naam, zoals 'Ketnet / Canvas' en ' Nick/Comedy C.'.
Voor alle andere zenders geldt dat de door UPC weergegeven naam gebruikt moet worden om de gids-URL te vormen. In deze twee gevallen echter niet.
Dit teken moet door een backslash, \, worden vervangen in het configuratiebestand, anders zullen er geen programma's voor de desbetreffende zenders worden gevonden.
--configure werkte dus nog steeds niet helemaal goed. Als de gebruiker het configuratiebestand met de hand aanpaste, werden de zenders dan weliswaar opgehaald, maar --sanity-check zou dan ook loze waarschuwingen genereren over niet gevonden zendernamen.
2009-05-22 Versie 1.5.1 is al uit. Twee slordige fouten in de vorige versie hadden tot gevolg dat --configure niet meer werkte.
De enige andere verandering is dat de cacherapportage aan het einde van het programma er nu een klein beetje anders uitziet.
2009-05-16 Versie 1.5.0 is uit. Het versienummer verraadt al dat er in deze versie veel veranderd is.
UPC heeft de tv-site grondig vernieuwd, waardoor tv_grab_nl_upc helemaal niet meer functioneerde. De nieuwe site lijkt in geen enkel opzicht op de oude, wat betekent dat er veel nieuwe code moest worden geschreven om de grabber weer aan de praat te krijgen.
De belangrijkste verandering op de site van UPC is dat de programmadata voor een gegeven uitzending niet meer op een enkele pagina staat. In de nieuwe opzet is er als vanouds per zender één pagina met de dagprogrammering, maar voor elk programma staat er nu een link naar een nieuwe pagina. Dat betekent dat de grabber voortaan veel meer pagina's moet ophalen om aan dezelfde data te komen als voorheen.
De situatie is eigenlijk nog erger, want die tweede pagina bevat meestal alleen een afgekorte omschrijving van de uitzending. Voor de volledige omschrijving moeten we in de meeste gevallen nog een derde pagina ophalen. Ook met een browser kun je je afvragen of dit handig is, want je blijft maar klikken.
Per zender per dag moeten we dus één pagina ophalen om vervolgens per programma minstens één, maar meestal nog twee pagina's op te halen. Dat de grabber door deze verandering langzamer is geworden zal, hoop ik, niemand verbazen.
Iedere gebruiker dagelijks misschien wel tientallen duizenden pagina's laten ophalen van UPC is eigenlijk onverantwoord, dus heb ik tv_grab_nl_upc eindelijk van een cache-mogelijkheid moeten voorzien. Andere grabbers hadden dat al langer, maar een dergelijke voorziening bleef voor tv_grab_nl_upc zonder toegevoegde waarde. Niet meer dus.
Standaard wordt de cache al gebruikt. Je hoeft er niets voor te doen. Wil je dat uitdrukkelijk maken, gebruik dan --cache.
Let op dat als gevolg van de vernieuwingen bij UPC een heleboel zendernamen zijn veranderd. De hele week al zijn deze wijzigingen geleidelijk aan waarneembaar en wie weet of er nog meer komen? Hou dit dus goed in de gaten en controleer de komende dagen even of alle zenders goed worden opgehaald. Pas desnoods de namen van de zenders aan in je configuratiebestand. --sanity-check kan hierbij nuttig zijn.
De vernieuwde UPC-site biedt ook nog voordelen. Nieuw op de site is informatie over regisseurs, acteurs en Kijkwijzer-classificaties. Deze informatie zie je dan ook voortaan terug in de uitvoer van tv_grab_nl_upc.
2009-04-20 Versie 1.1.0 is uit. Nieuwe opties zijn --prune-subtitles en --ignore-negatives.
De eerste zorgt ervoor dat, als het laatste teken van een subtitel een punt is, deze wordt verwijderd. Het nut daarvan?
Vaak laat ik MythTV dubbele opnames detecteren aan de hand van alleen de subtitel. Dat doe ik omdat ik voor sommige zenders een andere grabber gebruik met een andere databron dan UPC. Als een bepaalde serie op twee verschillende zenders wordt uitgezonden waarbij de gidsdata door verschillende grabbers wordt opgehaald, dan krijgen de afleveringen vrijwel zeker totaal verschillende omschrijvingen, terwijl het om dezelfde aflevering gaat. In zo'n geval is de subtitel toch veelal hetzelfde, omdat deze meestal letterlijk wordt overgenomen van de programmamaker.
In de praktijk vertonen zulke subtitels toch nog kleine verschillen, maar in het merendeel van de gevallen blijft dit verschijnsel beperkt tot het al dan niet aanwezig zijn van een punt aan het einde van de subtitel. Deze optie wordt gebruikt om dat verschil op te heffen.
Als je --prune-subtitles wilt gebruiken, is het handig als de MythTV-database eruit ziet alsof je dat altijd al gedaan hebt. Anders worden er misschien straks ten onrechte dubbele opnames niet gedetecteerd, omdat de subtitels met een punt van elkaar afwijken.
Daartoe is het raadaam eerst de volgende commando's uit te voeren met het onderhoudprogramma, mysql:
update recorded set subtitle = left(subtitle,length(subtitle)-1) where recorded.subtitle regexp '[^.]\\.$'; update oldrecorded set subtitle = left(subtitle,length(subtitle)-1) where oldrecorded.subtitle regexp '[^.]\\.$';
Bovenstaande commando's zorgen ervoor dat een punt aan het einde van de subtitel van al eerder opgenomen programma's alsnog wordt weggehaald.
De tweede nieuwe optie, --ignore-negatives, zal misschien niemand behalve ik nuttig vinden. Deze zorgt ervoor dat films waar in het verleden geen beoordelingscijfer voor gevonden kon worden en die als zodanig in de cache staan, toch nog deze keer opgezocht worden. Deze optie gebruik ik nu om verbeteringen aan de IMDB-functionaliteit van de grabber te testen, zonder dat ik de cache moet verwijderen of dat er tijd wordt verspild met het opzoeken van films die al geen problemen gaven.
Over verbeteringen gesproken, de IMDB-functionaliteit had weer eens te lijden aan veranderingen in de HTML op de site van IMDB. De grabber is dienovereenkomstig aangepast.
Tegelijkertijd is de IMDB-functionaliteit verder verbeterd, zodat films nu ook gevonden kunnen worden wanneer hun oorspronkelijke titel anders is dan de titel waarop er nu wordt gezocht. Nog een aantal andere kleine verbeteringen is doorgevoerd, waardoor deze functionaliteit nu eigenlijk beter werkt dan ooit tevoren.
Tot slot is --threads niet meer als experimenteel aangeduid. Deze optie lijkt inmiddels goed te werken.
2009-03-12 UPC heeft de oude bron van gidsdata, epg.upc.nl, met pensioen gestuurd. Tegenwoordig moet upclive.nl worden gebruikt, waardoor een nieuwe versie van tv_grab_nl_upc, 1.0.1, is vereist.
Twee vage foutmeldingen geven voortaan aan op welke zender ze betrekking hebben. Met --threads was dat anders moeilijk te achterhalen, want de uitvoer staat dan door elkaar.
2008-12-25 Na ruim twee jaar in ontwikkeling is versie 1.0.0 eindelijk een feit. De veranderingen zijn gering, maar luiden als volgt:
--ignore-old is nu beschikbaar als alias voor --actual.
Het opzoeken van de beoordelingscijfers van films was weer eens verstoord door aanpassingen aan de kant van IMDB. Hierdoor werden veel films ten onrechte niet gevonden.
Voor de rest zijn er ten opzichte van versie 0.10.1 alleen maar kleine veranderingen aan de tekst.
2008-11-01 Versie 0.10.1 verbetert een bug die geïntroduceerd werd in de release van gisteren, waarbij het totaal aantal opgezochte films met --ratings onjuist gerapporteerd werd.
2008-10-31 Versie 0.10.0 is beschikbaar.
De nieuwe optie --actual zorgt ervoor dat programma's die al afgelopen zijn niet meegenomen worden in de uitvoer. Hierdoor loopt het programma sneller. Informatie over genegeerde programma's wordt weergegeven met --verbose.
Als --sanity-check wordt gebruikt en de tijdzone noch CET noch CEST is (wat waarschijnlijk betekent dat het programma buiten Nederland gedraaid wordt), dan wordt er een waarschuwing gegeven (mits --quiet niet wordt gebruikt) dat de start- en eindtijden van de programma's waarschijnlijk niet zullen kloppen. Er wordt ook een waarschuwing gegeven als een programma in zomertijd begint maar in wintertijd eindigt, of omgekeerd.
De al lang achterhaalde --schema optie is nu verwijderd en de code opgeschoond en robuuster gemaakt. Deze release mag gezien worden als tweede release candidate voor versie 1.0.0.
2008-10-12 Eindelijk een nieuwe versie, 0.9.10. IMDB had weer eens zijn HTML aangepast, waardoor het dynamisch opzoeken van de beoordelingscijfers alweer niet werkte. Aanbevolen wordt ~/.xmltv/ratings_cache.yaml te wissen na de installatie van deze nieuwe versie.
De combinatie --threads en --static-ratings heeft nooit goed gewerkt. De reden is dat sommige threads al bezig waren films op te zoeken nog voordat het IMDB-bestand met beoordelingscijfers volledig ingelezen was. Dit leidde tot veel ten onrechte niet gevonden films. Het probleem is nu opgelost.
Verder is de afleiding van subtitels weer wat verbeterd, waardoor er vaker een bruikbare subtitel gevonden wordt.
Deze versie mag gezien worden als release candidate voor versie 1.0.0. Het is inmiddels ruim twee jaar geleden dat de eerste openbare versie, 0.1.0, werd uitgebracht.
2008-06-17 Versie 0.9.9 verbetert een van de controles die worden uitgevoerd met --sanity-check, waarbij wordt nagegaan of er mogelijk iets aan de hand is met de gidsdata. Voorheen werd de gidsdata voor vandaag op Nederland 1 opgehaald en gecontroleerd op de aanwezigheid van programma's, maar de laatste tijd heeft UPC voor uitgerekend die zender geen gidsdata. Voortaan wordt dus zowel Nederland 1 als RTL 4 gecontroleerd.
2008-06-01 Versie 0.9.8 is een feit. Als --static-ratings wordt gekozen, wordt voortaan FTP in passieve (PASV) modus gebruikt om het bestand met IMDB-beoordelingscijfers te downloaden. Deze modus zal vaker werken bij mensen achter een firewall. De subtitelafleiding is nu ook ietwat verbeterd.
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 accepteert 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 een programma dat eerder lijkt te eindigen dan het begint een dag opgeteld moet krijgen bij zijn eindtijd, omdat het de daggrens overschrijdt.
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 is nu al een feit.
Afleveringnummers van series 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.
Er is een bug 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 programmaomschrijving. Als een programmaomschrijving eindigt met deel, part of aflevering, gevolgd door een of meer cijfers, dan wordt deze tekst aan de reeds afgeleide subtitel toegevoegd, voor zover die al bestaat. Als geen andere subtiteltekst voor handen is, dan vormt het afleveringnummer de subtitel op zichzelf.
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 ontbreekt en MythTV dus geen combinatie subtitel/omschrijving kan gebruiken.
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 computer, het netwerk en de UPC-server zwaarder, maar het voordeel is dat het programma 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 programmaverloop 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 verloopmeldingen (--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 openbare 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.6) 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:
52 BBC 3 53 BBC 4 60 Discovery HD 61 Nat Geo HD 62 HISTORY™ HD
Het 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 eerste keer dat je de grabber gebruikt, heb je een lege programmacache.
Hierdoor kan het programma een half uur of langer bezig blijven.
De volgende keer zal het verloop veel vlotter zijn, want de meeste gegevens zullen al in de cache staan.
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
- --[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.
- "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
- Suggesties, problemen, patches, etc. kun je mailen naar mij, maar ik heb liever dat je de hiervoor de mailinglist gebruikt, want dat scheelt mij veel dubbel werk.