Comments (15)
Ik ken jouw instellingen niet dus ik kan alleen maar raden, maar De programma tijden voor de npo kanalen komen in eersten instantie van vpro.nl (maximaal 5 dagen vooruit) en in tweeden instantie van npo.nl. Echter de listings van npo.nl zij regelmatig niet compleet. Het lijkt er op, aangezien hun site primair op streaming gericht is, dat het hierbij om buitenlandse programma's gaat waarvoor ze onvoldoende rechten hebben. Op de npo.nl site voor 24 augustus (je kunt zo ver vooruit niet in het menu selecteren, maar je kunt de datum in de url aanpassen) zie ik om 22:45 De Maatschap en dan pas om 1:05 De Nachtzoen. In de details zie ik dat de Maatschap 49 minuten duurt, dus er ontbreekt een programma tussen 23:34 en 1:05 (minus de reclame). Zodra vpro.nl data gaat leveren (as. zondag) dan corrigeert zich dat. tvgids.tv wordt uitsluitend voor starttijden gebruikt voor zenders waar geen andere informatie van is en er zijn hoegenaamd geen zenders die niet ook in de horizon (ziggo) listing voorkomen. Dus tenzij je alle andere bronnen uitgeschakeld hebt kan dit niet met tvgids.tv te maken hebben.
from tvgrabpyapi.
tvgids.tv is inderdaad vervelend omdat ze tot ca. 6 uur 's ochtends de vorige dag nog vandaag blijven noemen, maar dat wordt gecorrigeerd en nog eens extra getest door de feitelijke datum die op de pagina staat te vergelijken met de opgevraagde datum. Als dat niet klopt dan wordt de pagina verworpen. Het is theoretisch mogelijk dat de test routine, die (voor sites die alleen starttijden zonder datum geven) detecteert of middernacht gepasseerd wordt onterecht getriggerd wordt, maar dit is zeldzaam en duidt op meer fouten in de pagina data.
from tvgrabpyapi.
Bedankt voor de informatie. Ik gebruik een standaard configuratie en heb geen bronnen uitgeschakeld.
In de logfile wordt alleen tvgids.tv genoemd als source voor dit programma, met als datum 25 augustus:
hts@NAS:~/.xmltv$ fgrep 'La Vache' *.log
tv_grab_nl3_py.log:2018-08-15 08:43:59 CEST: Added from tvgids.tv: 25 Aug 23:40 - 26 Aug 01:05: La Vache:--- Genre: Unknown.
tv_grab_nl3_py.log:2018-08-15 08:45:16 CEST: Kept unmatched: 25 Aug 23:40 - 26 Aug 01:05: La Vache:--- Genre: Unknown.
tv_grab_nl3_py.log:2018-08-15 08:45:16 CEST: Kept unmatched: 25 Aug 23:40 - 26 Aug 01:05: La Vache:--- Genre: Unknown.
tv_grab_nl3_py.log:2018-08-15 08:45:16 CEST: Kept unmatched: 25 Aug 23:40 - 26 Aug 01:05: La Vache:--- Genre: Unknown.
tv_grab_nl3_py.log:2018-08-15 08:45:17 CEST: Kept unmatched: 25 Aug 23:40 - 26 Aug 01:05: La Vache:--- Genre: Unknown.
Dit terwijl op tvgids.tv het programma op 24 augustus vermeld staat, en ook in de omschrijving staat als datum 24 augustus: https://www.tvgids.tv/tv/la-vache/20810311
from tvgrabpyapi.
Oh en dan nog één ding. Om een grab niet nodeloos lang te laten duren, wordt voor elke bron uitsluitend data opgehaald voor vandaag en voor tot dan toe nog onbekende dagen tot een maximum van 4 dagen per zender, per bron. De rest komt uit de database. Dus als toen je van een bron de data voor de 25e ophaalde (waarschijnlijk de 9de) er foutieve data binnengehaald is, wordt dit pas de nacht van 24 op 25 gecorrigeerd.
Per zender en dag is er altijd maar één bron die de primaire gegevens (naam en startijd) aanlevert. Van de andere bronnen wordt dit alleen maar gebruikt om de gegevens te matchen. Dus als de hierboven genoemde foutieve data niet van de primaire bron komt, betekent dit dat die data, omdat er niet gematcht kan worden verworpen wordt. Daarom worden de ontbrekende programma 's op npo.nl 5 dagen van te voren gecorrigeerd door vpro.nl. Mijn collega controleert dit en past zo af en toe de voor bepaalde zenders geselecteerde "prime_source" aan. Zo hebben we enige tijd geleden voor de npo zenders de "prime_source" van npo.nl naar vpro.nl gezet. Alleen vpro.nl levert maar 5 dagen vooruit!
Dus samenvattend, hoe verder in de toekomst een listing is, hoe meer fouten er nog in zitten. In het algemeen is data tot 5 á 7 dagen in de toekomst bijna correct en vinden er voor de lopende dag nog kleine correcties plaats in met name de starttijden. De positieve uitzondering is rtl. Zij leveren sublieme primaire data aan vanaf het moment dat deze aan hun bekend is. Ik zou van hun deels al maanden van te voren data op kunnen halen.
from tvgrabpyapi.
De generieke "prime_source_order" is [2,4,10,12,7,3,5,1,9,6,8,11], waarbij voor de npo zenders vpro (7) naar het begin van deze lijst gaat. Dus zodra één van de bronnen met een hogere prioriteit [2,4,10,12,7,3,5] dan tvgids.tv (1) data heeft voor die zender en tijd, wordt de foutieve data van tvgids.tv genegeerd.
from tvgrabpyapi.
Gezien de logfiles ben ik er redelijk zeker van dat de informatie over 'La Vache' afkomstig was van tvgids.tv, en dat de gegevens van tvgids.tv in mijn tvguide.xml terecht kwamen doordat andere sources geen informatie hadden voor die dag/dat tijdstip.
Blijft de vraag waarom 'La Vache' in de gegenereerde tvguide.xml op 25-8 gepland stond in plaats van 24-8. Wellicht stond dit programma simpelweg verkeerd op tvgids.tv op het moment van ophalen, en was dit verbeterd op het moment dat ik dit handmatig controleerde. De cache zou dan kunnen verklaren waarom ik de verbeterde gegevens niet terugzag in tvguide.xml.
Er waren echter meerdere programma's, allen afkomstig van tvgids.tv, waarvan de datum exact 1 dag afweek. In tvguide.xml stond bijvoorbeeld 'Vlucht HS13' op 24-8 terwijl dat eigenlijk op 23-8 wordt uitgezonden. Dit versterkt mijn vermoeden dat er iets niet helemaal goed gaat bij het verwerken van gegevens van tvgids.tv door tvgrabpyAPI.
In eerste instantie dacht ik dat dit wellicht te maken had met het tijdstip van ophalen, en het tijdstip waarop de dagnummering wordt aangepast op tvgids.tv. Na aanpassen van het tijdstip van ophalen naar 8:30 zag ik echter geen verschil; dus ofwel het probleem wordt niet hierdoor veroorzaakt (zoals je zelf aangeeft vinden correcties en checks plaats om dit probleem te voorkomen), of de gegevens werden simpelweg niet bijgewerkt doordat ze reeds gecached waren.
Ik zie in source-tvgids.tv.json een regel "night-date-switch":6,
staan, ik ga er vanuit dat hiermee bepaald wordt op welk tijdstip de dagnummering wordt aangepast op tvgids.tv. Zou het wellicht kunnen dat tvgids.tv dat tijdstip recent heeft aangepast, waardoor deze instelling niet meer juist is?
Verder heb ik toevalligerwijs alleen gekeken naar programma's die voor middernacht beginnen en na middernacht eindigen; ik weet dus niet zeker of dezelfde afwijking ook van toepassing was op andere programma's. Dus een andere mogelijke oorzaak is wellicht dat er iets fout gaat bij de berekening van begin- en eindtijd voor sources die geen eindtijd aangeven (zoals tvgids.tv), waardoor het programma per abuis op de volgende dag wordt geplaatst indien de oorspronkelijke eindtijd na middernacht is?
Helaas loop ik na het leeggooien van de programma-cache ondertussen tegen een ander probleem aan waardoor de betreffende programma's helemaal niet meer in tvguide.xml worden opgenomen; zie #33. Dat zal ik dus eerst moeten oplossen voordat ik hiermee verder kan testen.
from tvgrabpyapi.
Naar alle waarschijnlijkheid was er iets mis met de volgorde. Wanneer, bij een bron die starttijden zonder datum geeft, een programma in tijd eerder begint dan de vorige, wordt er vanuit gegaan dat middernacht gepasseerd is.
from tvgrabpyapi.
Om een of andere reden lukt het me nu niet meer om programma-informatie voor de NPO-zenders na de nacht van 21-8/22-8 op te halen.
Ik heb tijdelijk de Horizon-gids gedisabled naar aanleiding van #33 en omdat ik je commentaar op dat issue nog niet had gelezen; --disable-source resulteerde in een exceptie (waarschijnlijk doordat die source gerefereerd wordt in prime_source_order), dus ik heb tijdelijk netwerktoegang naar web-api-pepper.horizon.tv en web-api-salt.horizon.tv geblokkeerd.
Vervolgens de volledige configuratie gereset en nieuwe TV-gids binnengehaald:
- Alle bestanden uit de .xmltv directory weggegooid behalve mijn .conf en .set files
/usr/local/bin/tv_grab_nl3.py --config-file ~hts/.xmltv/tv_grab_nl3_py.conf --configure
gedraaid om de database opnieuw te creeeren- TvHeadEnd gestopt, ~hts/.hts/tvheadend/epgdb.v2 weggegooid, en TvHeadEnd herstart
- Mijn getepg.sh script uitgevoerd om de nieuwe TV-gids binnen te halen
Bijgesloten zijn de log-file, conf-file, tvguide.xml en het getepg.sh script; enig idee waarom de programma-informatie van 22-8 en later niet meer wordt opgehaald van tvgids.tv of andere sources?
from tvgrabpyapi.
vpro.nl levert maar 5 dagen, npo.nl meer, maar is incompleet, tvgids.nl levert 4 dagen, van de overigen is horizon.nl het meest betrouwbaar. De data van de belgische bronnen is van één van de bovenstaande afgeleid en tvgids.tv levert veel data, maar is regelmatig slordig en/of foutief. Dus data voorbij 20-8 (5 dagen) is impliciet minder betrouwbaar.
from tvgrabpyapi.
Ik begrijp dat de data van tvgids.tv veel minder betrouwbaar is, maar dat verklaart niet waarom die data nu uberhaupt niet meer opgehaald wordt van tvgids.tv. Bijvoorbeeld 'La Vache' staat nu vermeld op https://www.tvgids.tv/zenders/nederland-2/8, maar is niet terug te vinden in de gegenereerde tvguide.xml... Enig idee waarom?
from tvgrabpyapi.
npo.nl kent alleen starttijden. Tenzij ik een mechanisme zou maken die de programmaduur uit de detail pagina kan halen, wat op dit moment niet mogelijk is en de runtime van een grab aanzienlijk zou verlengen, kan het programma uitsluitend afgaan op de starttijd van het volgende programma.
Het is bij de data van npo.nl simpelweg niet mogelijk een gat te herkennen! Het feit dat op npo.nl zo af en toe programma's ontbreken hebben wij nog niet zo heel lang geleden ontdekt. We hebben toen vpro.nl naar de prime_source positie gepromoveerd en misschien zouden we npo.nl verder in de default order naar achteren moeten plaatsen. In elk geval achter horizon.nl
from tvgrabpyapi.
Ik weet niet zeker wat npo.nl hier in dit geval mee te maken heeft, maar de opmerking over sources met alleen starttijden heeft wel iets meer duidelijkheid gegeven.
Het laatstbekende programma in mijn tvguide.xml op NPO2 was 'Nachtprogramma's', en volgens de logfile waren de gegevens afkomstig van primo.eu. Volgens de json-file is dit een source zonder volledige timings.
Tijdens de initiele fase en met een lege programma-database kan tv_grab_nl3.py hierdoor geen eindtijd bepalen voor deze zender, en worden er dus geen gegevens van andere sources met lagere prioriteit opgehaald.
In een latere fase wordt er wel een eindtijd voor dit programma bepaald (door ophalen van details of een fictieve eindtijd?) en als zodanig opgeslagen in de programmacache.
Bij een volgende run van tv_grab_nl3.py is er vanuit de cache opeens wel een eindtijd van het laatstbekende programma bekend, en op basis daarvan kunnen dan extra gegevens worden opgehaald van bronnen met lagere prioriteit.
Dus startende met een lege programma-database is het blijkbaar nodig om tv_grab_nl3.py tweemaal te draaien om een volledige gids te verkrijgen.
Die 2e run draait momenteel nog, maar volgens de logfile is ondertussen 'La Vache' (en een heleboel andere programma's van tvgids.tv) toegevoegd op de juiste datum: 2018-08-16 20:54:43 CEST: Added from tvgids.tv: 24 Aug 23:40 - 25 Aug 01:05: La Vache:--- Genre: Unknown
.
Morgen alles nog maar eens herhalen nadat ik de toegang naar horizon.tv weer heb opengezet, in ieder geval heb ik weer een heleboel bijgeleerd over tv_grab_nl3.py :)
Bedankt voor je hulp tot nu toe!
from tvgrabpyapi.
Ondertussen heb ik nog een extra test gedaan; beide onderstaande testen waren met dezelfde configuratie en een lege programma-cache:
-
Op 16-8 rond 21:00 werden de gegevens van tvgids.tv door tv_grab_nl3.py met de juiste datum geladen
- Bijvoorbeeld 'De maatschap' (begin en eind voor middernacht) en 'La Vache' (eind na middernacht) worden beiden correct vermeld op 24-8.
- Deze programma's werden vermeld op https://www.tvgids.tv/zenders/nederland-2/8
-
Op 17-8 rond 01:00 worden de gegevens van tvgids.tv door tv_grab_nl3.py met de incorrecte datum geladen
- Bijvoorbeeld 'De maatschap' en 'La Vache' beiden incorrect vermeld op 25-8.
- Deze programma's worden op dit moment nog steeds vermeld op https://www.tvgids.tv/zenders/nederland-2/8; de dagovergang op tvgids.tv heeft dus nog niet plaatsgevonden.
Het lijkt er dus op dat tv_grab_nl3.py toch moeite heeft met het corrigeren van dagnummers tussen middernacht en de daadwerkelijke overgang op een nieuw dagnummer op de bronpagina's.
Zie bijgesloten log en tvguide.xml voor zowel de run van gisteravond (met correcte datum) en de run van vannacht (met incorrecte datum).
xmltv.zip
Er is een gemakkelijke work-around, namelijk simpelweg iets later op de dag de gegevens ophalen, echter het zou mooi zijn als dit issue opgelost kan worden.
from tvgrabpyapi.
OK, ik zie wat je bedoeld en het lijkt inderdaad een bug die optreedt tussen middernacht en het tijdstip dat zij naar de nieuwe dag overstappen of uiterlijk 6 uur.
Een paar maanden geleden kwam mijn collega met, naar ik nu denk, hetzelfde issue, maar ik kon het toen niet reproduceren. Ik haal zelf mijn data vanaf 10 over 5 op en ik denk niet dat ik dit nooit in mijn eigen data gezien heb. Tvgids.tv bepaald doorgaans niet de starttijden en ik test tvgids.tv doorgaans niet op die tijden. Op korte termijn kan ik alleen de "night-date-switch" op 0 zetten. Dit betekent dat totdat tvgids.tv zelf naar de nieuwe dag over gaat, al hun data verworpen wordt.
from tvgrabpyapi.
https://github.com/tvgrabbers/tvgrabpyAPI/releases/tag/beta-1.0.9-p20180829
and some more fixes
from tvgrabpyapi.
Related Issues (20)
- Errors retrieving details from tvgids.nl HOT 5
- Extremely slow and data-errors in tvgids.nl HOT 1
- Memory usage? HOT 5
- is it ready for end-user? HOT 7
- tv_grab_nl3.py with --quiet still writes to stderr HOT 4
- Source "Humo" fails HOT 15
- tvgrabpy looping after exception in sources. HOT 6
- NPO Episode Numbers HOT 23
- Lot of programs have missing serie and episode HOT 17
- Hangs HOT 1
- Cannot disable source 8 HOT 15
- Port to Python 3 HOT 14
- Encoding/locale issue in retrieved EPG data HOT 2
- JSON error HOT 4
- tv_grab_fetch error: ValueError: 1 is not in list HOT 9
- Tvgrabber stopped working after json errorin sourcefile for source-horizon.tv HOT 1
- Serie information missing from lot of programs and lot of stations. HOT 5
- BBC First: time offset HOT 5
- tvgrab no longer works due to lack of valid sources HOT 2
- Configure offset -1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tvgrabpyapi.