[Announce] epgd 0.2.0, scraper2vdr 0.1.0, Happy Easter Eggs

  • Moin Moin,


    nach einiger Entwicklungszeit freue ich mich, ein neues Release vom EPGD mit Scraper Funktionalität und ein neues Plugin namens "Scraper2VDR" vorstellen zu dürfen.


    Generell war das Ziel, das schon bekannte "tvscraper" Plugin Client-Server fähig zu machen und zusätzlich die Informationen der externen EPG Quellen, die vom EPGD angezapft werden, insbesondere die Informationen bezüglich Filmen und Serien, beim scrapen sinnvoll nutzen zu können. Herausgekommen ist ein dreigeteiltes Ergebnis: der EPGD wurde um die scrap Funktionalitäten erweitert, das Scraper2VDR Plugin läuft auf den Clients (analog zu epg2vdr) und lädt die gescrapten Informationen aus der MySQL Datenbank auf die lokale Maschine, und schließlich stellt ein Skin (genauer gesagt nOpacity) über eine Serviceschnittstelle vom scraper2vdr Plugin diese gescrapten Inhalte in den verschiedenen EPG Ansichten und im Aufnahmemenü dar.


    Die Integration der Scraper Funktionalität im EPGD bietet im Vergleich zum tvscraper einiges an Mehrwert. Da über den EPGD bekannt ist, welche Events Filme und welche Events Serien sind, kann wesentlich gezielter gescrapt werden. Es ist deshalb auch nicht mehr notwendig, die Sender zu definieren, für die gescrapt werden soll, es werden einfach alle Filme und Serien gescrapt, die sich in der Datenbank befinden. Bei Serien habe ich über den Abgleich der Episodennamen mit Constable auch noch den großen Vorteil, dass bei vielen Serien die genaue Episode und Staffel bekannt sind. Dadurch ergibt sich die Möglichkeit, neben den bekannten Postern, Bannern und Fanarts auch Episodenbilder, Staffelposter und die Episodenbeschreibungen von thetvdb herunterzuladen. Als besonderes Schmankerl haben CKOne und ich auch noch eine Tatort unterstützung eingebaut...falls alles korrekt gepflegt, werden das korrekte Ermittlerteam inklusive passender Schauspielerbilder angezeigt. Das macht schon was her :D


    Wer das ganze ausprobieren will, der geht am besten wie Folgt vor:


    1. EPGD updaten: Zuerst müsst ihr den aktualisierten EPGD (Version 0.2.0) neu installieren oder aus dem Git pullen (oder wie auch immer ihr euer Update macht). WICHTIG: wer epgd schon installiert hat, muss die folgenden drei Zeilen in seine /etc/epgd/epgd.conf hinzufügen:


    ScrapEpg = 1
    ScrapRecordings = 1
    TheTvDBView = thetvdbview.sql


    In der in den Sourcen unter config/epgd.conf hinterlegten Standardconfig sind diese Werte schon berücksichtigt. Danach den epgd neu bauen und starten. Nach dem EPG-Durchlauf sollte dann auch direkt der Scraper loslegen. Das kann je nach Anzahl der Sender, die in der channelmap.conf hinterlegt sind, schon ein Weilchen dauern, da die Datenbank für die Filme und Serien zu Beginn erst gefüllt werden muss. Bei mir wurden ca. 11.000 Events gescrapt, das hat so ca. ne gute Stunde gedauert. Nicht erschrecken, am Anfang bei leerer DB dauert das scrapen der Episoden zu den Serien relativ lange. Das wird dann irgendwann, wenn die DB gefüllt ist und die Caching Mechanismen greifen, wesentlich schneller. Updates bei vorhandenen DB Inhalten gehen dann ebenfalls schneller. Meine DB ist durch die ganzen Bilder auf ca. 2,5GB Größe angewachsen...das stört den Betrieb nach den bisherigen Tests aber in keinster Weise.


    2. Scraper2VDR Plugin installieren: Das Plugin ist ebenfalls auf vdrdeveloper.org beheimatet kann hiermit aus dem Git heruntergeladen werden:


    git clone http://projects.vdr-developer.…r-plugin-scraper2vdr.git/ scraper2vdr-git


    Bitte unbedingt das beiliegende README oder das Wiki aufmerksam lesen...dort ist alles wesentliche zur Funktionsweise, insbesondere auch das Aufnahmehandling beschrieben, deshalb muss ich das hier nicht nochmal alles schreiben. Ältere Aufnahmen können, falls sie nicht gefunden werden, auch manuell per "scrapinfo" File einem Film oder einer Serie von den Online Diensten zugeordnet werden (analog zu XBMC und den info Files)...also README lesen ;)


    Eine Anmerkung jedoch zu den Modi des Plugins: das Plugin kann im "client mode" und im "headless mode" laufen. Im "client mode" sollte es auf allen "normalen" VDR clients betrieben werden, die auch eine Ausgabe an den TV machen. Der "headless mode" ist, wer hätte es gedacht, für headless VDR ohne eigene Ausgabe gedacht. Das hat den folgenden Grund: es werden ja auch Aufnahmen gescrapt...und das funktioniert am besten während die Aufnahme am laufen ist. Macht nun ein headless VDR eine Aufnahme, aber kein Client mit installiertem scraper2vdr läuft in dieser Zeit, dann gehen die gescrapten Informationen, die für das zu der Aufnahme zugehörige Event bereits vorhanden sind, ggf. verloren, da dieser Event irgendwann aus der Datenbank geschmissen wird. Deshalb der "headless mode", in dem das Plugin keine Daten für Live EPG aus der DB holt, sondern nur nach laufenden Aufnahmen schaut und diese ggf. in die DB schreibt.


    3. nOpacity updaten: Einfach ein "git pull" machen oder wie ihr auch sonst eure Plugins updated (im yaVDR testing ist wohl auch alles schon vorhanden, habe ich ein Vögelchen zwitschern hören ;) ). Anmerkung: den TVGuide werde ich demnächst auch scraper2vdr fähig machen, aktuell fehlt die Unterstützung hier noch.


    Fertig! Jetzt sollte eigentlich alles so weit passen. Falls Probleme auftreten oder Fragen...als her mit :)


    Bedanken möchte ich mich besonders bei Jörg (Horchi) für den tollen epgd und das Beantworten aller programmiertechnischer Fragen und bei Christian (CKOne) für die umfangreiche Unterstützung und den moralischen Beistand ;)


    Zum Schluss noch eine Anmerkung zum tvscraper: das Plugin wird es natürlich erst mal weiter geben, jedoch werde ich es nicht aktiv weiter entwickeln. Die Möglichkeiten im epgd sind einfach zu angenehm. Ob ich die tvscraper Unterstützung jedoch langfristig in nOpacity und tvguide drin behalte, muss ich mal schauen...der Code wird dadurch natürlich etwas unübersichtlich.


    So...dann mal viel Spass...ciao Louis

  • Auch von Jörg und mir vielen lieben Dank für die klasse Zusammenarbeit und das großartige Feature für das Projekt.


    Wir hatten schon lang das es nicht nur thematisch Super passt, daher war dieser Schritt nur eine Frage der Zeit: bist n super Typ Louis!


    Christian

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • Auch von mir Danke - hat echt Spaß gebracht!


    Jörg

  • Von mir auch ein Dankeschön. Läuft!

    - 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

  • Zum Schluss noch eine Anmerkung zum tvscraper: das Plugin wird es natürlich erst mal weiter geben, jedoch werde ich es nicht aktiv weiter entwickeln. Die Möglichkeiten im epgd sind einfach zu angenehm. Ob ich die tvscraper Unterstützung jedoch langfristig in nOpacity und tvguide drin behalte, muss ich mal schauen...der Code wird dadurch natürlich etwas unübersichtlich.


    Was genau heißt das jetzt? Soll das Plugin nicht länger in den Distributionen ausgeliefert werden?


    Ich habe das ganze schon kommen sehen (Andeutungen im Git usw.). Ich habe nur auf den Moment gewartet, an dem du es offiziell machst um hier rumzufluchen.
    Dumm nur, dass deine Erklärung schlüssig und nachvollziehbar ist :D


    Stattdessen bemühe ich mich gerade epgd richtig für VDR4Arch zu paketieren. Bin schon auf das Ergebnis gespannt.
    Tvscraper mit noch besserer Zuordnung klingt erstmal phänomenal.

  • Sehr schön. Wird sobald wie möglich installiert.
    @epgd
    brauchts ein aktuelles tvm-plugin, oder bleibt das mit dem letzten stand?


    Viele Grüße.
    Markus

  • Was genau heißt das jetzt? Soll das Plugin nicht länger in den Distributionen ausgeliefert werden?


    Denke mal, dass muss jede Distribution selbst entscheiden. Ist ja nicht so, dass das Plugin von jetzt auf gleich nicht mehr funktioniert.

    - 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


  • Zum Schluss noch eine Anmerkung zum tvscraper: das Plugin wird es natürlich erst mal weiter geben, jedoch werde ich es nicht aktiv weiter entwickeln. Die Möglichkeiten im epgd sind einfach zu angenehm. Ob ich die tvscraper Unterstützung jedoch langfristig in nOpacity und tvguide drin behalte, muss ich mal schauen...der Code wird dadurch natürlich etwas unübersichtlich.


    Ich weiß nicht in wiefern sich die API in Richtung Skin ähnelt aber eventuell wäre ja hier denkbar das tvscraper-Plugin API-mäßig gleichzuziehen.


    Ansonsten kann ich nur sagen, dass mir das ganze Konstrukt aus VDR, EPGD, irgendwelchen Plugins und auch noch einer externen EPG-Quelle zu dick aufgetragen ist.


    Ich mag einfache Lösungen und die war mit dem tvscraper bisher gegeben.

  • @epgd
    brauchts ein aktuelles tvm-plugin, oder bleibt das mit dem letzten stand?


    Jo, da hat sich was geändert, die Kategoriezuordnung und auch im xlst. Ich denke aber, das ist schon in der bekannten Quelle angepasst, falls nicht wird das sicherlich bald passieren. Vielleicht sagt da der "Hoster" was zu :D


    Ciao Louis

  • Hi,


    Ich weiß nicht in wiefern sich die API in Richtung Skin ähnelt aber eventuell wäre ja hier denkbar das tvscraper-Plugin API-mäßig gleichzuziehen.


    Ansonsten kann ich nur sagen, dass mir das ganze Konstrukt aus VDR, EPGD, irgendwelchen Plugins und auch noch einer externen EPG-Quelle zu dick aufgetragen ist.


    Ich mag einfache Lösungen und die war mit dem tvscraper bisher gegeben.


    Wenn dir am tvscraper so viel liegt, bist du gerne eingeladen, die alte tvscraper API an die neue vom scraper2vdr Plugin anzugleichen. Technisch sollte das kein Problem sein, ist allerdings einiges an Arbeit. Mir fehlt dazu einfach die Zeit und ausserdem ehrlich gesagt auch die Lust. Ich programmiere das, was mir Spass macht, und da gehört anpassen von "Altlasten" einfach nicht dazu...das ist mehr was für das Berufsleben, in der Freizeit muss das nicht sein ;)


    Ciao Louis

  • Rein technisch, könnte man bei beiden Plugins nicht die gleichen ServiceCalls einbauen? Dann braucht man nur noch schauen, welches der beiden Plugins geladen ist und dann den ServiceCall aufrufen. Nehme mal an, das ist mit API gemeint?! Machen kann und will ichs aber auch nicht - als begeisteter epgd Nutzer. ;)

    - 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

  • Wie wäre jetzt die Vorgehensweise, wenn ich die Bilder aus der Datenbank holen möchte um sie parallel zu den MKVs, die ich aus meinen Aufnahmen erzeuge, im Format für XBMC neben die Aufnahme zu stellen?


    Schreibe ich dafür ein Programm, dass auf die Datenbank zugreift und per Titel des Films die Bilder holt? Oder gibt es dafür schon etwas das ich anpassen kann? Ich würde das Programm dann in einem Recording Hook aufrufen.


    Grüße
    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

  • Hi Gerald,


    Wie wäre jetzt die Vorgehensweise, wenn ich die Bilder aus der Datenbank holen möchte um sie parallel zu den MKVs, die ich aus meinen Aufnahmen erzeuge, im Format für XBMC neben die Aufnahme zu stellen?


    Schreibe ich dafür ein Programm, dass auf die Datenbank zugreift und per Titel des Films die Bilder holt? Oder gibt es dafür schon etwas das ich anpassen kann? Ich würde das Programm dann in einem Recording Hook aufrufen.


    schau dir am besten mal die Tabellenstruktur in der MySQL DB an. Relevant sind "recordings", "series", "movie" und "series_media" und "movie_media". In "recordings" stehen die Aufnahmen, als Teil des PK wird der vollständige Pfad der Aufnahme verwendet, das würde ich als Selektionskriterium benutzen. In dieser Tabelle gibt es dann auch die FKs "series_id", "episode_id" und "movie_id". Darüber kannst du dir dann aus "series_media" und "movie_media" die Bilder selektieren...jedes Bild hat einen Typ zugeordnet, das siehst du am besten direkt im Code hier für Filme und hier für Serien.


    Nur mal so als Ansatz...bei weiteren Fragen helfe ich gerne :D


    Ciao Louis

  • PS @ Gerald: les dir bitte auch mal die Passagen im README des scraper2vdr Plugins bezüglich Aufnahmehandling durch...es dauert natürlich ein bisschen, bis eine gestartete Aufnahme auch gescrapt wird...


    Ciao Louis

  • PS @ Gerald: les dir bitte auch mal die Passagen im README des scraper2vdr Plugins bezüglich Aufnahmehandling durch...es dauert natürlich ein bisschen, bis eine gestartete Aufnahme auch gescrapt wird...


    Danke, mache ich.


    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

  • Ich verstehe es noch nicht ganz. Ich dachte der epgd scraped unabhängig vom scrape2vdr. Scrape2vdr brauche ich doch gar nicht, oder doch? Ich hatte das so im Hinterkopf, dass der epgd einfach alles scraped was er im epg hat. Ich muss dem epgd doch gar nicht sagen, dass ich die Aufnahme machen will. Ich hole mir die Bilder und wenn der epg sie danach einfach irgendwann vergisst ist es ja kein Problem.


    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

  • scraper2vdr holt die Infos aus der DB, um sie im Skin anzuzeigen. Ausserdem beamt es die Aufnahmen in die Datenbank, die epgd dann scraped (wenn gewünscht).


    Das Plugin brauchst Du theoretisch nicht, wenn Du das Zeug nicht im Skin haben willst. Glaub ich. :D

    - 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

  • Ich verstehe es noch nicht ganz. Ich dachte der epgd scraped unabhängig vom scrape2vdr. Scrape2vdr brauche ich doch gar nicht, oder doch? Ich hatte das so im Hinterkopf, dass der epgd einfach alles scraped was er im epg hat. Ich muss dem epgd doch gar nicht sagen, dass ich die Aufnahme machen will. Ich hole mir die Bilder und wenn der epg sie danach einfach irgendwann vergisst ist es ja kein Problem.


    Stimmt, so geht es auch...einfach die EventID aus dem zugehörigen RecoringInfo Objekt für die Aufnahme auslesen, und dann in der DB aus der events Tabelle dieses Event rausfischen, da steht dann auch die series_id, episode_id bzw. movie_id drinn, falls erfolgreich gescrapt. Aber Vorsicht...in der events Tabelle nicht "eventid" sondern "useid" benutzen, das ist die id, die im VDR für den Event benutzt wird ;)


    Ciao Louis

Jetzt mitmachen!

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