Eine Frage zu TVSCRAPER

  • Hallo,
    ich habe mal eine Frage zu dem Plugin TVSCRAPER.


    Der tvscraper scrapt bei mir die Aufnahmeverzeichnisse und das EPG und schreibt
    das Ergebnis zunächst in /dev/shm/tvscraper.db


    Zu diesem Zeitpunkt liegt bei mir in /tmp/tvscraper eine Datei mit Namen tvscraper.db mit der Größe Null.


    Meine Frage:
    Zu welchem Zeitpunkt werden die Daten aus /dev/shm/tvscraper.db nach /tmp/tvscraper/tvscraper.db übertragen ?
    Nach dem Scrap-Vorgang?


    Danke

  • Irgendwie gehört ja eine DB nicht nach /tmp, eher nach /var/cache/vdr. Eine Antwort hab ich allerdings nicht. Aber schau mal, ob es was unter dem genannten Pfad gibt.

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • Irgendwie gehört ja eine DB nicht nach /tmp, eher nach /var/cache/vdr. Eine Antwort hab ich allerdings nicht. Aber schau mal, ob es was unter dem genannten Pfad gibt.


    Nö, eher nach /var/lib/vdr. Cache ist für mich nur ein Zwischenspeicher, z.B. für Queues.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Moin,


    der TVScraper arbeitet wie folgt:


    • beim Start kannst du dem Plugin sein "Arbeitsverzeichnis" mit -d übergeben. Geschieht das nicht, wird per default das im VDR gesetzte VDR Cache Verzeichnis cPlugin::CacheDirectory(PLUGIN_NAME_I18N) benutzt.
    • beim Starten des Plugins wird geprüft, ob eine ramdisk (/dev/shm/) vorhanden ist. Ist dies der Fall, wird beim Starten eine Kopie der Datenbank aus dem Arbeitsverzeichnis in /dev/shm/tvscraper.db kopiert, darauf wird dann zur Laufzeit des Plugins gearbeitet.
    • nach Durchlauf eines kompletten Scrap Vorgangs und beim Stoppen des Plugins wird die temporäre Arbeitskopie wieder in das Arbeitsverzeichnis zurück geschrieben.


    Warum bei dir unter /tmp/ eine DB liegt, kann ich nicht sagen...entweder hängt das irgendwie mit der Benutzung von /dev/shm/ zusammen, oder dein cPlugin::CacheDirectory(PLUGIN_NAME_I18N) zeigt womöglich auf /tmp/ ?!


    Ciao Louis

  • Danke für die Erläuterung.


    Das mit /tmp hatte ich selber so gesetzt.


    Kann es sein das die Reihenfolge beim initialen Scrapen entscheidend ist ?
    Hatte zuerst epg gescrapt und anschließend das Videoverzeichnis.


    Nach Systemneustart war die Bilder für die Aufnahmen nicht mehr da.
    Habe dann alles vom scraper gelöscht und bin mit den Aufzeichnungen angefangen.
    Dannach dann epg. Das ging besser.


    Gruß

  • Liegen Bilder auch in der RAM Disk oder nur die DB? Ansonsten könnt ich mir noch vorstellen, dass bei Neustart /tmp gelöscht wird. Deswegen ja temporär.

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • mamomoz: d.h. du übergibst dem Plugin per -d /tmp/ als Verzeichnis? Dir ist schon klar, dass /tmp/ bei einem Boot komplett geputzt wird?


    Lass doch die -d Option einfach ganz weg, dann wird die konfigurierte VDR Cache Dir benutzt, dann sollte alles funktionieren.


    Ciao Louis

  • mamomoz: d.h. du übergibst dem Plugin per -d /tmp/ als Verzeichnis? Dir ist schon klar, dass /tmp/ bei einem Boot komplett geputzt wird?


    Lass doch die -d Option einfach ganz weg, dann wird die konfigurierte VDR Cache Dir benutzt, dann sollte alles funktionieren.


    Ciao Louis

    Hallo Louis,
    bei meinem System wird nix weggeputzt aus /tmp nach Neustart, das kann ich somit ausschließen.
    Dachte nur es gäbe eine empfohlene Reihenfolge. Erst Aufnahmen, dann EPG.
    Im Prinzip ist aber ja alles OK.
    Danke

  • Hallo Louis,
    darf ich noch was fragen zu Deinem Plugin ?


    Ausgangspunkt: Der Scraper hat das EPG soweit durch.
    Mit ZAPPILOT schaue ich mir das zukünftige EPG an z.B. ARD.
    Hin und wieder läuft ja die Tagesschau.


    Dabei ist mir aufgefallen: Bei einigen epg-Tagesschau Einträgen wird das Banner
    angezeigt und bei einigen nicht.
    Meine Frage: Warum ist dies so, oder habe ich da was falsch gemacht?
    Danke

  • Hm...heissen die wirklich alle exakt "Tagesschau"...oder vielleicht doch ein bisschen anders?


    Vielleicht sind die auch teilweise zu kurz...hab jetzt keine Zeit in den Code zu schauen, aber ich meine mich zu erinnern ich prüfe die Sendungen auch auf eine minimale Länge...das wirds wohl sein ;)


    Ciao Louis

  • Hmm, die heißen alle "Tagesschau", deshalb kam es mir ja komisch vor.
    Oder prüfst Du auch die Zusatztexte usw. ?


    Das mit der minimalen Länge könnte es sein.
    Manchmal dauert die Tagesschau ja nur 5 min.
    Kannst Du mir die Stellen nennen wo das abgefragt wird, dann nehm ich das mal raus.


    Was ist auch nicht verstehe:
    Sender XY mit FIlm ABC.
    Das Poster zum Film ABC wird super angezeigt.


    EIn paar Tage später wird der Film auf dem gleichen Sender wiederholt, der Filmtitel ist wieder der Gleiche.
    Dann aber kein Poster.
    Woran kann das liegen ?


    Danke

  • Moin,


    so, jetzt hab ich mal in den Code geschaut und bin schlauer ;)


    In der Zeile 87 in der Datei worker.c wird auf die Zeit geprüft:


    Code
    if ((duration > 9) && (duration <= 75)) {
        type = scrapSeries;
    } else if (duration > 75) {
        type = scrapMovie;
    }


    Eine Sendung mit Dauer < 10 Minuten wird also gar nicht versucht zu scrapen.


    Zu deinem zweiten Problem: eigentlich scrapt der tvscraper einen Film nur einmal. Es wird zuerst geprüft, ob der Film schonmal gescrapt wurde und falls ja wird nicht nocheinmal neu gescrapt. Es wird lediglich in der Datenbank ein Eintrag für den EPG Event generiert, der auf den schon gescrapten Film zeigt. Das scheint wohl irgendwie schief zu gehen. Du könntest das am besten mal checken, indem du das debug logging im TVScraper Setup aktivierst. Dann gibt der tvscraper ziemlich genau im Log aus, was er so treibt. Ist natürlich ein bisschen Aufwand, du müsstest im Log die Stelle erwischen, an der der EPG Event gescrapt wird, das passiert ja i.d.r. einige Tage bevor der Event eigentlich stattfindet.


    Ciao Louis

  • Ok ich habe auf DEBUG gestellt, und den EPG-Scrap gestartet.


    Da es sich nun aber nicht um den initialen Scrap-Lauf handelt, sehe ich im Log
    nur ausführliche Messages zu einem Sender den ich neu mit aufgenommen hatte.
    Bei den alten Sendern steht im Log dann nur
    tvscraper: scraping channel ...
    aber keine ausführlichen Messages zur Sendung.
    Wahrscheinlich weil nix neues an EPG zu dem Sender gefunden wurde.
    Ich muss mal in die tvscraper.db einen Blick werfen.
    Kannst Du eine Methode empfehlen wie dies einfach zu machen ist ?
    Danke

  • Moin,

    Ich muss mal in die tvscraper.db einen Blick werfen.
    Kannst Du eine Methode empfehlen wie dies einfach zu machen ist ?


    am besten mit einem sqlite viewer? ;) Den hier benutze ich...die Datenbankstruktur kannst du dir hier anschauen.


    Ciao Louis

  • Hallo Louis,
    ich habe mal die Tabellen aus der tvscraper.db rausgepult.


    Die movies Tabelle hab ich ein wenig kürzen müssen, wäre sonst zu groß geworden.
    Ich habe mal versucht 3 Filme zu prüfen.
    1. Der Hobbit - Eine unerw. Reise - Hier ist alles in Ordnung - scrap/Bilder -ID=49051
    2. Die Hochzeit unserer dicksten Freundin - Hier fehlen die Bilder / in scrap-db enthalten ID= 84174
    3. Oblivion - Hier fehlen die Bilder / in scrap-db enthalten ID=75612


    Alle Filme wurden korrekt gesprapt so wie es scheint, jedoch hat er bei Film 2 und 3 die Bilder nicht abgelegt. (Es gibt keine
    Dateien im movies Ordner die mit so einer ID beginnen)
    Bilder gibt es definitiv zu Film 2 und 3. Mein zweiter VDR zeigt dieser Bilder an, da hat das Ablegen funktioniert.


    Fragen:
    Da die Filme 2 und 3 in der tvscraper.db erfolgreich erfasst wurden, wird nun bei weiteren scrap-Vorgängen
    nie wieder versucht die fehlenden Bilder zu laden ? Oder ?
    Würde da eine Abgleichfunktion evtl. Sinn machen ? (Habe ID aber keine Bilder, ich versuch nochmal zu laden )


    Kannst Du anhand der Dateien, evtl. irgendwas komisches feststellen ?


    Danke Dir.

  • Hi mamomoz,

    Fragen:
    Da die Filme 2 und 3 in der tvscraper.db erfolgreich erfasst wurden, wird nun bei weiteren scrap-Vorgängen
    nie wieder versucht die fehlenden Bilder zu laden ? Oder ?


    Generell kanne es natürlich sein, dass der Webserver gerade mal Schwierigkeiten hat und ein Request in einen Timeout läuft...
    Aber es ist genau so wie du schreibst...du kannst die entsprechenden DB Einträge aber manuell killen, dann wird beim nächsten mal wieder neu gescrapt. Aber nur wenn der Film bzw. das EPG Event auch wieder neu ansteht, ein Event wird auch nur einmal gescrapt, es sei denn, du änderst ebenfalls manuell den entsprechenden Eintrag in der "scrap_history" Tabelle.


    Fragen:
    Würde da eine Abgleichfunktion evtl. Sinn machen ? (Habe ID aber keine Bilder, ich versuch nochmal zu laden )


    Das ist mir ehrlich gesagt zu aufwändig...der tvscraper war eh nie als 100% Lösung gedacht ;)



    Kannst Du anhand der Dateien, evtl. irgendwas komisches feststellen ?


    Nö, schaut eigentlich völlig normal aus.

  • Hallo Louis,
    danke für die Stellungnahme.
    Ich denke auch das Problem ist: Wenn scrap OK, aber Download Bild NOK, dann Pech für diese Sendung für immer und nix mit Bilder.


    Ich würde mal versuchen ein Abgleich-Script zu schreiben, in dem passiert was Du gesagt hast.
    Er geht über die Tabellen series und movies und sucht anhnd der ID nach den Bilddateien, wenn nix vorhanden,
    dann Einträge löschen aus Tabelle series/movies/scrap_history/event_movie/event_series.
    Reicht das so?
    Beim nächsten scrap Vorgang heißt es dann; Neues Spiel neues Glück.


    Danke

  • Hi,



    Im Zweifel gilt immer: read the source Luke ;) Alle Datenbankprozeduren vom tvscraper sind in der tvscraperdb.h / tvscraperdb.c gekapselt. Ich hab da sogar ein bisschen was kommentiert. Im Zweifel kannst du auch gerne nachfragen.


    Wenn du ein solches Skript fertig hast, kann ich das dann gerne auch ins Git mit aufnehmen.


    Ciao Louis

  • Moin,


    habe mir heute mal so ein fixing_script zusammengeschrieben.


    Vorher:
    Wie gesagt viele Sendungen ohne Bild, die er eigentlich hätte finden müssen.
    Neue scraping Läufe brachten nix ein, hatten wir ja erläutert: Was mal gescrapt wurde wird nicht wieder gescrapt, ob er nun Bilder downloaden konnte oder nicht.


    Das hab ich dann gemacht:
    Vdr kurz gestoppt.
    Neues Script auf die tvscraper.db und deren Verzeichnisse movies und series losgelassen.
    Vdr wieder gestartet und EPG-scrap gestartet.


    Nachher:
    Es lief wie gewünscht. Dann hat er brav die meisten Lücken beseitigt. Die meisten Sendungen haben nun Bilder.
    Lief also schon ganz gut.


    Unsicher war ich mir mit der scrap_history Tabelle. Wie läuft das da mit den Integer-Werten ?
    Hab im script das erstmal so drin das ich diese Tabelle komplett putze. Brauche hier noch mal Erläuterung.


    Aufgerufen wird das skript so:

    Code
    /pad_zum_skript/fix_tvscraper.sh /pfad_zum_verzeichnis_tvscraper > tvscraper.log


    Gerne mal probieren!
    Gruß
    moz

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!