Kodi Datenbank wird nicht richtig bereinigt

  • Hi.

    Danke für die Anregungen und Tests. Viel Zeit habe ich heute nicht. Gleich muss ich zur Krankengymnastik und heute Nachmittag zur Arbeit. Die Sache mit dem Single File Export muss ich unbedingt mal ausprobieren. Vielleicht komme ich so einfacher an die Playcounts als direkt aus der DB.

    Doppelte Einträge sind mir mit der aktuellen Kodi Version 21.1 auch noch nicht passiert. Meine "richtige" DB ist allerdings erheblich älter als Kodi 21. In sofern vermute ich, das es sich um einen Bug in einer alten Kodi Version gehandelt hat, der inzwischen gefixt wurde. War mir bisher nur noch nicht aufgefallen, da ich in der Regel nicht direkt in der Datenbank herum stochere.

    -------------------------------------
    Danke fürs lesen, Claus

  • Also ich hab inzwischen mal die Kodi DB als eine große XML Datei ausgeben lassen. Sind über 300 Megabyte, für eine reine Text Datei schon ganz ordentlich groß. Aber um die DB zu entschlacken müsste es tatsächlich reichen, die exportierte DB wieder in eine bis dato leere DB einzulesen. Ich würde nur die Playcounts der nicht kategorisierten Videos verlieren. Dafür ist ohnehin keine schnelle Lösung in Sicht.

    Um die Playcounts für Serien und Spielfilme zu ermitteln, könnte man die Datei wohl mit einem XML Parser verwenden. Es steht alles Relevante drin. Bei anderen Sachen funktioniert das aber nicht. Nicht kategorisierte Videos stehen erst gar nicht drin und Musikvideos haben (zumindest bei mir) keine eindeutige ID.

    Es wäre ja zu schön, wenn man über den Dateinamen gehen könnte, dann müsste man nur eine Abfrage in der Tabelle "files" machen. Nur leider ist der Dateiname nicht eindeutig. Ich habe z.B. ganze 17 mal die Datei "S01E01 - Episode 1.mkv", bei "S01E01 - Pilot.mkv" sind es "nur" 15 verschiedene Exemplare mit identischen Dateinamen. Derartige Fälle gibt es unzählige.

    Der Pfad sollte eigentlich nicht damit verknüpft sein, denn sonst kann man nichts mehr umstellen. Bei Filmen und Serien kann man das über die UniqueID (TVDB/IMDB) unterscheiden. Die "sonstigen" Videos werde ich wohl trotzdem über den Pfad auseinander halten müssen, weil es keine andere eindeutige Unterscheidung gibt. Schön wäre ja etwas wie eine MD5 Checksumme, die dann immer eindeutig wäre. Doch die gibt es in der Kodi DB nicht.

    Mal sehen, was ich da jetzt genau mache. Bisher weiß ich es noch nicht.

    -------------------------------------
    Danke fürs lesen, Claus

  • Hi.

    Inzwischen steht mein Plan. Ein zentraler Bestandteil ist das Addon "Watchedstate NFO Updater" von PvD aus der Kodinerds Repo. Das Addon schreibt Veränderungen am Playcount (sowohl Richtung Gesehen als auch Nicht Gesehen) sofort in die entsprechenden .nfo bei Filmen und Serien. Im Gegensatz zu der Kodi- eigenen Datenbank- Export Funktion passiert das in Echtzeit und daneben wird sonst rein gar nichts an den .nfo verändert. Wenn man das von Kodi selbst machen lässt, sind die .nfo hinterher zerstört durch das unsinnige Eintragen der Media- Infos des Videos. Diese Sachen können sich doch leicht mal ändern, werden dann aber nie wieder in die eigentliche DB übernommen, da sie in den .nfo festzementiert sind. Um jetzt die Playcounts der schon vor dem Einsatz des Addons gesehenen Episoden und Filme in die .nfo zu bekommen, werde ich letztmalig das Addon "WatchedList" verwenden. Das werde ich deinstallieren und alle dazugehörenden Daten löschen (lassen). Wenn es nun neu installiert wird, kann es nichts kaputt machen, was es sonst gerne tut, da es ungefragt die DB überschreibt, auch wenn man zwischendurch manuell Änderungen vorgenommen hat. Nachdem ich WatchedList neu installiert habe, lasse ich es einmal laufen. Dann habe ich ein Backup vom dem Zustand, der grade aktuell ist. Nun lösche ich die Kodi- DB und setze sie komplett neu auf. Sind alle Serien und Filme wieder drin, lasse ich WL laufen. Da nun aber vorher das Addon "Watchedstate NFO Updater" bereits aktiv ist, wird jede Änderung, die WatchedList vornimmt, direkt in den .nfo gespeichert. Somit habe ich alle .nfo auf dem aktuellen Stand und kann ab dann die Playcounts jederzeit aus den .nfo in die Kodi DB einlesen lassen.

    Das hat beim Testen mit einer kleinen Mediensammlung mehrfach einwandfrei funktioniert. Deswegen werde ich das die Tage wirklich mal mit der "richtigen" Bibliothek machen.

    Leider trägt das Addon von PvD den Playcount nicht in .nfo von nicht kategorisierten Videos ein. Wobei ich auch gar nicht weiß, ob Kodi das überhaupt lesen würde, wenn es da drin steht. Meine nicht kategorisierten Videos haben alle Poster, Fanart und .nfo. In sofern wäre das hilfreich, zumindest für mich.

    Deswegen werde ich dieses Mal die Playcounts der sonstigen Videos opfern. Bis zum nächsten Mal habe ich dann aber ein Programm geschrieben, womit ich auch diese Playcounts absichern und zurückschreiben kann. Im Gegensatz zu Filmen und Serien tut es das aber nur, wenn der komplette Pfad identisch ist. Anders bekommt man das nicht gelöst. Das Ganze wird ziemlich kompliziert, wenn man nur die nicht Kategorisierten Videos ausfiltern will. Eine einfach Unterscheidung gibt es in der DB dafür nicht. Man muss zunächst die Basis- Pfade der Serien, Filme und Musikvideos aus der DB auslesen. Das ist noch recht einfach. Aber sobald es Unterverzeichnisse gibt (bei Serien quasi Pflicht und auch bei Filmen üblich), kann man diese nicht mehr von den nicht kategorisierten Videos unterscheiden, so lange man sie nicht mit der Liste der Basis- Pfade vergleicht. Dann muss man File für File durchgehen und vergleichen, ob der Pfad einen der Basis- Pfade enthält. Falls nicht, sollte es sich um ein nicht kategorisiertes Video handeln. Ist dann der Playcount größer als 0 so wird das Video mit komplettem Pfad in eine Liste eingetragen. Beim Zurückschreiben wird diese Liste mit Einträgen in der Kodi DB vergleichen und sofern eine Übereinstimmung da ist, der Playcount auf 1 gesetzt. So weit die Theorie. Das Ganze in die Praxis umzusetzen wird aber noch dauern.

    -------------------------------------
    Danke fürs lesen, Claus

  • Inzwischen habe ich mal manuell den Playcount in eine .nfo von einem nicht kategorisierten Video eingefügt. Wird leider von Kodi nicht gelesen. Also braucht es auch nicht in die .nfo eingetragen werden.

    -------------------------------------
    Danke fürs lesen, Claus

  • Wird leider von Kodi nicht gelesen.

    Der Playcount wird nur mit eingelesen wenn Du das in der advancedsettings.xml vorgibst.

    Code
    <videolibrary>
    <importwatchedstate>true</importwatchedstate>  <!-- import previously exported playdate and playcount from .nfo files. Defaults to false -->
    <importresumepoint>true</importresumepoint>  <!-- import previously exported resume point from .nfo files. Defaults to false -->
    </videolibrary>

    Wobei wenn ich das richtig in der Wiki lese sollte dies bei Kodi ab v20 Standard sein.

    --------------
    Guides nicht mehr verfügbar wegen Youtube unvermögen guten von schlechten Kodi Videos zu unterscheiden.

  • Wobei wenn ich das richtig in der Wiki lese sollte dies bei Kodi ab v20 Standard sein.

    Genau, inzwischen müsste man das in der as.xml extra ausschalten, wenn man das nicht will. Aber darum geht es hier nicht. Das betrifft sowieso nur die Export- Import Funktionen der Kodi DB, nicht den Alltagsbetrieb. Es geht mir um die Videos, die weder Serie noch Film oder Musikvideo sind. Auch da speichert Kodi den Playcount in der DB, liest aber nichts von einer eventuellen .nfo ein. Eigentlich kein Wunder, denn Kodi selbst erzeugt auch keine .nfo für solche Videos, auch wenn man die Kodi DB in .nfo exportieren lässt. Meine .nfo wurden von Media-Buddy erzeugt, nicht von Kodi. Und Media-Buddy kann auch .nfo für nicht kategorisierte Videos erzeugen. Nur kann Kodi damit scheinbar wohl nichts anfangen.

    -------------------------------------
    Danke fürs lesen, Claus

  • Unkategorisiert werden die Daten halt nicht in die Datenbank aufgenommen als Videofilme/Serien/Whatever sondern nur für fileinformation gespeichert, denke ich.

    --------------
    Guides nicht mehr verfügbar wegen Youtube unvermögen guten von schlechten Kodi Videos zu unterscheiden.

  • Die werden in exakt dieselbe Tabelle ("files") der Datenbank eingetragen wie Spielfilme oder Serien Episoden, in der ja auch der Playcount abgespeichert wird. In sofern wäre da kein Unterschied. Aber Kodi ex- und importiert nur Datenbank- Einträge für Serien, Spielfilme und Musikvideos. Alles andere wird beim Ex-Import einfach ignoriert. Man müsst die nicht kategorisierten Videos als Filme in die DB aufnehmen, um das zu umgehen. Dann tauchen diese Videos aber mitten zwischen den Filmen im GUI auf und man könnte sie dort nicht so einfach auseinander dividieren.

    An sich ist die Unterteilung in Filme/Serien auf der einen und nicht kategorisierten Videos auf der anderen Seite ja nicht schlecht. Es ist nur schade, das diese Sachen, genau wie etwa Bilder in Kodi nur sehr stiefmütterlich behandelt werden.

    -------------------------------------
    Danke fürs lesen, Claus

Jetzt mitmachen!

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