Auswertung mit MySQL möglich? Dopppelte finden (erledigt... Anleitung zum Schluss)

  • Hi, ich stehe vor dem Problem, dass ich wohl etliche doppelte Filme habe.

    So, wie ich es verstanden habe, soll die Datenbank von Kodi mit MySQL auswertbar sein.

    Geht das? Wenn ja, wie?
    Wo finde ich dann ggf. die Datenbankstruktur.

    Installiert ist:
    Emby auf NAS

    Kodi 21.1 auf FireTV und Computer Windows 10.

    Ich würde gerne eine Auswertung machen, die sich dann ggf. in Excel / Libreoffice Calc vollständig übernehmen lässt.
    Benötigt werden die Felder Titel , Jahr, Auflösung, Speicherort (kompletter Pfad)
    Es muss unbedingt der interne gespeicherte Titel sein, da manche Filme im Dateinamen sich unterscheiden (ein Grund, warum es zu doppelten gekommen ist)
    Wenn ich mich noch richtig an Excel erinnere, ist es dort möglich nur die doppelten anzuzeigen.

    Hat das schon jemand gemacht? Ggf. Ein Script? Oder Tipps?

    Wer bei mir Rechtschreibfehler findet, darf die gerne behalten. Ich kann mir jederzeit neue machen ;)

  • Da wirst Du zweistufig ran müssen. Denn maximal der Titel wird mehr als einmal in der Datenbanktabelle auftauchen.

    Das würde ich über eine Abfrage suchen und über einen count > 1 filtern. Mit dem Ergebnis dann die restlichen Informationen ausspucken lassen.

    Ich kann Dir allerdings nicht sagen wie für die EMBY die Datenbank aufgebaut ist.

  • So, wie ich es verstanden habe, soll die Datenbank von Kodi mit MySQL auswertbar sein.

    Hi.

    MySQL ist eine der beiden möglichen Datenbanken für Kodi. Die andere wäre SQLite. SQLite ist Standard, MySQL ist "experimentell", wenn man mehrere Kodi Instanzen mit derselben zentralen Datenbank haben will. Und die Emby Datenbank hat mit Kodi rein gar nichts zu tun, ist ein davon völlig unabhängiges eigenständiges System. Emby verwendet als Datenbank ebenfalls SQLite, so weit ich weiß. Ich bin aber kein Emby Nutzer, in sofern... Eine Datenbank besteht aus mehreren Tabellen, die jeweils mehrere Spalten und Zeilen umfassen. Im Gegensatz zu einer "Exel- Tabelle" sind in einer Datenbank eben viele Tabellen zusammengefasst, die untereinander in Beziehung stehen können, aber nicht zwingend müssen.

    Die beiden möglichen Kodi Datenbanken MySQL und SQLite können mit einer Abfragesprache, nämlich SQL (Structured Query Language) abgefragt und ausgewertet werden. Aber eben nicht mit MySQL, denn das ist eine Datenbank, keine Abfrage. Für SQLite gibt es viele Tools, um die Datenbank anzuschauen und auch auszuwerten. Ich selbst nutze bei SQLite unter Windows "SQLite Expert Personal", was sehr mächtig aber trotzdem in einer kostenlosen Version verfügbar ist. Für MySQL/MariaDB (ist im Prinzip dasselbe, nur das MariaDB die OpenSource Variante von MySQL ist) nehme ich HeidiSQL. Es gibt aber unzählige Tools für alle möglichen Betriebssysteme, um mit Datenbanken zu arbeiten.

    Zu SQL gibt es unzählige Bücher und Tutorials, um sich da mehr oder weniger intensiv einzuarbeiten. Eine einfache SQL Abfrage würde z.B. so aussehen können:' SELECT * from "table" WHERE "title" like "*James Bond*" AND "count" >1'. Womit alle Einträge(* ist eine Wildcard für alles) aus der Tabelle "table" bei denen "James Bond" im Titel vorkommt, ausgewählt werden, die häufiger als einmal vorkommen. Das würde so in der Kodi Datenbank aber nicht funktionieren, da sie erheblich komplizierter aufgebaut ist und man diverse Tabellen miteinander verknüpfen muss, um an die gewünschten Informationen zu kommen.

    Das Problem ist ja, wenn die Dateien unterschiedliche Pfade haben, werden sie in der Regel auch unterschiedlich in der DB gespeichert. Am ehesten geht es noch, wenn die Filme anständig eingelesen und mit der TT Nummer, also der IMDB-ID versehen sind. Die ist dann nämlich bei beiden Filmen dieselbe, wenn es sich wirklich um denselben Film handelt. Bei Kodi werden (mindestens) die Tabellen "uniqueid", "movie", "path" und "file" für dein Vorhaben gebraucht. Wie gesagt, gilt nur für Kodi direkt, nicht für Emby. Ist sicher möglich, aber längst nicht so trivial, wie du vielleicht denkst. Vermutlich geht es viel schneller, wenn du die Filme in Kodi einfach durchblätterst, um die Dubletten zu finden.

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

  • Hi, danke für die ausführliche Antwort.

    Wie ich schon sagte, ist Emby lediglich der Halter der Daten und zum finden des richtigen Titels (also sind alle Filme mit IMDB ID versehen.)
    Da ich alles mit Kodi abscanne, sollten diese Nummern eigentlich in Kodi wieder zu finden sein.

    Es ist im Prizip zwar doppelt gemoppelt, aber nach meiner Erfahrung, ist der Scan via Emby sauberer beim Zufügen.

    D.h, alle Auswertungen sollte ebenfalls in der Kodi Datenbank erfolgen.

    Du hast erwähnt, dass es SQLlite als Standard ist. Das würde mir die Sache deutlich vereinfachen. Es ist zwar schon irre lange her, dass ich mal Schulungen in SQL gehabt hatte, aber ich denke, das Prinzip sollte noch gleich sein.

    Gibt es irgendwo eine Datenbankbeschreibung für Kodi? Also mit allen Feldern und Tabellen?

    Ich hoffe, wir reden noch über die Standardinstallation von Kodi, die auf die von Emby generierten NFO Dateien zugreift beim Scan?
    Jeder Film liegt in einem eigenem Folder.

    Folder sind ensprechend in Unterorder dem Abc ...

    Beispiel:

    \\MediaII\Filmcloud\#A\.....

    Bei Kodi wie folgt eingetragen als Quelle:

    smb://192.168.2.???/Filmcloud/
    Damit sind alle Unterordner erfasst.
    Leider musst ich aus Platzgründen schon zum Teil auf USB an NAS ausweichen, wo dann der nächste Teil der Dateien liegt.
    smb:/192.168.2.???/usbshare1/ExtFilme/

    Wenn du sagst, dass die imdb ID der gemeinsame Nenner ist, sollte ich versuchen von dort zuzugreifen.

    Defacto nutze ich Emby nur für die Identifikation und zum Anlegen der jeweiligen NFO Datei.
    Kodi ist so eingestellt, dass er NUR diese Daten übernimmt und einen eigenen Scan nach Dateiinformationen unterlässt.
    Somit wäre sogar beim Komplettausfall von Emby noch alle notwendigen Daten auf der NAS in den jeweiligen Verzeichnissen.

    Phuuu... ich hoffe, das war nicht zu kompliziert

    Wer bei mir Rechtschreibfehler findet, darf die gerne behalten. Ich kann mir jederzeit neue machen ;)

  • Defacto nutze ich Emby nur für die Identifikation und zum Anlegen der jeweiligen NFO Datei.

    Dafür gibt es aber komfortableres und weniger aufgeblähtes als Emby. .nfo Dateien können von ganz vielen Programmen erzeugt werden.

    So wie du Kodi eingestellt hast, nutzt du tatsächlich Kodi und nicht Emby. Wenn du eine Standard- Kodi Installation ohne Umleitung der Datenbank per advancedsettings.xml gemacht hast, wird garantiert SQLite verwendet. Die Datenbank Datei myvideos121.db (bei Kodi 21, ältere Kodi Versionen habe hier kleinere Zahlen) ist im Kodi userdata/databases Ordner zu finden.

    Ob die Daten in der Datenbank nun aus .nfo Dateien oder aus Online Quellen eingelesen wurden, hat auf die Datenbank an sich gar keinen Einfluss. Das ist dafür völlig egal.

    Leider musst ich aus Platzgründen schon zum Teil auf USB an NAS ausweichen

    Macht doch gar nix. Wofür gibt es Links? Ich hab meine 40.000 Serien Episoden auf diversen HDD verteilt liegen. Ich sammele aber alle Serien- Ordner per Junction in einem einzigen Ordner. So muss ich in Kodi immer nur eine Quelle für die Serien anlegen und kann nun beliebig die Serien zwischen den einzelnen HDD verschieben. Danach muss ich nur den Link anpassen und für Kodi sieht es aus, als ob sich nie etwas getan hätte. Der große Vorteil bei dieser Methode ist, in Kodi bleibt der Gesehen Status so erhalten. Wenn man die Serie "herkömmlich" von Quelle zu Quelle verschiebt, muss Kodi sie anschließend neu einlesen. Dann ist wieder alles als "ungesehen" markiert.

    Da ich meine Filme ebenfalls in einzelnen Ordern mit den Grafiken, den .nfo und den Trailern gesammelt habe, geht hier dasselbe. Auch hier merkt Kodi gar nicht, wenn ein Film von einem auf ein anderes Laufwerk verschoben wird, sofern ich den Link entsprechend anpasse.

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

  • Ok. es geht nun ans Eingemachte.
    Ich habe mir den DB Browser unter Windows installiert.
    Die Datenbank habe ich entsprechend gefunden und in externen Ordner kopiert.
    Never test in running System... Da klingelt noch was aus grauen Vorzeiten.

    Ich ziehe das alles in Windows durch, da es wohl am konfortablesten ist.
    Ohne die DB Struktur zu kennen, wird es problematisch.... Aber ich suche mal, dann werd ich wohl schlauer.
    Zuletzt vor gut 35 Jahren mit dem Kram beschäftigt. Elegant fand ich es immer, wenn eine DB sich mit Excel abfragen lies.
    Es war schlicht übersichtlich und man konnte die Ergebnisse sofort sehen.

    Ich berichte, sofern ich weiter gekommen bin.
    Was mir einfiel. Ich habe bewusst das Rohformat im eigenen Ordner mit eigener nfo genommen, da über die Jahre es sich erwiesen hat, dass selbst die besten Programme irgendwann vom Markt verschwinden oder nicht mehr unterstützt werden. Wenn dass sozusagen alles in die Anwendung verlagert geworden ist, kann es durchaus problematisch werden.
    Da mit den Links habe ich bewusst nicht gemacht, da es in der Vergangenheit immer mal wieder Probleme damit gab.
    Eine Zeitlang hatte ich Linux, Windows und Android (notgedrungen) am Start. Ergo .... kleinsten gemeinsamen Nenner.
    Dazu kam, dass ich mit jedem Link immer eine (Kupplung) irgendwo in der Mitte habe. Gibt es Probleme, geht die Sucherrei los.
    Damals hatte mir einen etwas größeren Server mit Fachanwendung unter Unix aufs Auge gedrückt. Nett, aber vollständig undokumentiert.
    Immer mal husch husch Änderungen gemacht. Mit anderen Worten, Daten migrieren, auf ein sauberes System mit Fachanwendung ziehen.
    Sauarbeit... Never ever.

    So, zurück... mein olles Hirn will ja auch nicht mehr so, wie es soll.

    wenn es stimmt, sollte dies die aktuelle Datenbankbeschreibung sein?
    https://kodi.wiki/view/Databases/MyVideos#movie


    At last:

    Sollte hier ein Admin mitlesen.... Why to hell, funktioniert bei mir die Benachrichtigung nicht, sofern hier was geschrieben wird?
    Eigentlich sollte es doch bei mir so eingestellt sein. Grummel ;)

    Wer bei mir Rechtschreibfehler findet, darf die gerne behalten. Ich kann mir jederzeit neue machen ;)

  • Ich sehe mehrere Möglichkeiten.

    1. Vielleicht hilft dir diese Tool: MovielistGenerator - Tools für Windows/Linux/macOS - Kodinerds

    2. Export der db als *eine* (1) xml Datei in Kodi (Einstellungen -> Medien -> Bibiliothek ->Bibliothek exportieren, ggf. vorher auf Experte stellen). Dann daraus mit gutem Editor mit Regexp eine csv-Datei basteln. Erfordert Geschick/Erfahrung mit Editor/Regexp und Kenntnis des csv Formats bzw. Zeit sich das anzueignen. Selbst habe ich das schon gemacht - schätze < 15 Minuten Aufwand.

    3. Bin jetzt nicht zu Hause. In zwei Wochen könnte ich dir ein selbstgeschriebenes Tool schicken, das die Arbeit aus 2. macht (den Kodi xml-Export in csv wandelt). Habe das aber selbst schon lange nicht mehr genutzt und nicht mit aktueller Kodi Version getestet.

    4. Wurde ja schon mehr oder weniger genannt: SQL lernen, Kodis DB Struktur verstehen, und ab gehts mit den richtigen SQL Befehlen. Kommt mir ohne Vorkenntnisse am anspruchvollsten vor ...

    Wie du schon selbst schriebst - in Excel die Duplikate zu finden ist einfach (ohne zu testen, nehme ich an der erste Hit bei Google "Excel Duplikate finden" zeigt die Lösung.

    Kodi 21.1, 17.6, 21.1, 16, 20.5 on Windows 11 Pro, Android 6, Android 12, FireTV Box 2nd Gen, FireTV 4k Max 2nd Gen
    Media on NAS, OpenMediaVault 6 (Debian Linux).

  • Junge junge, geballtes Wissen hier vorhanden.
    buers Movielistgenerator installiert und lasse gerade laufen.... Bin gespannt. So, wie ich es verstanden habe, kann er doppelte erkennen. Wäre ja prima

    malvinas2 danke für den Tipp. Kommt zum Zuge, wenn ich mit dem Movielistgenerator keinen Erfolg habe.

    Dusselig ist, dass etliche Filme unter verschiedenen Namen gehandelt werden. (Welcher Depp auch immer sich das einfallen lässt)
    Bin gespannt, ob das zu einem brauchbaren Ergebins führt.
    Einige Filme sind definitiv doppelt, weil ich sie Jahre später in höherer Auflösung bekommen habe.
    (lass mit Youtv aufzeichen)
    Dann sollte der mit der SD Auflösung eigentlich raus. Aber ist man immer so konsequent? ;)
    Faulheit siegt...

    Wer bei mir Rechtschreibfehler findet, darf die gerne behalten. Ich kann mir jederzeit neue machen ;)

  • Dann sollte der mit der SD Auflösung eigentlich raus. Aber ist man immer so konsequent?

    Also ich schon. Ich hab mir sogar extra ein Programm geschrieben, mit dem ich meine Sammlung durchforsten und nach Codecs und Auflösung untersuchen kann. Bei Filmen habe ich für die ganz wenigen verbliebenen SD Filme einen eigenen Unterordner angelegt, so das ich auf einen Blick sehe, ob der Film noch in SD ist und ich ihn unbedingt austauschen muss, sobald er mal in den Mediatheken auftaucht.

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

  • Also ich schon. Ich hab mir sogar extra ein Programm geschrieben, mit dem ich meine Sammlung durchforsten und nach Codecs und Auflösung untersuchen kann. Bei Filmen habe ich für die ganz wenigen verbliebenen SD Filme einen eigenen Unterordner angelegt, so das ich auf einen Blick sehe, ob der Film noch in SD ist und ich ihn unbedingt austauschen muss, sobald er mal in den Mediatheken auftaucht.

    Ich warte jetzt erst einmal das Ergebnis vom Movilist Generator ab. (Hoffentlich hab ich den richtig eingestellt, dass er wirklich nur liest und nichts überschreibt...)

    Dann schaue ich, ob mir das reicht. Bin ja gespannt.

    Wer bei mir Rechtschreibfehler findet, darf die gerne behalten. Ich kann mir jederzeit neue machen ;)

  • Also ich schon. Ich hab mir sogar extra ein Programm geschrieben, mit dem ich meine Sammlung durchforsten und nach Codecs und Auflösung untersuchen kann. Bei Filmen habe ich für die ganz wenigen verbliebenen SD Filme einen eigenen Unterordner angelegt, so das ich auf einen Blick sehe, ob der Film noch in SD ist und ich ihn unbedingt austauschen muss, sobald er mal in den Mediatheken auftaucht.

    Kannst du das nicht für die suche nach doppelten Dateien modifizieren?
    Hab jetzt einen Tag den Movielistgenerator laufen lassen. Wirklich einen Tag. Ergebnis der doppelten Suche... mau. hat nur einen Bruchteil als doppelte gefunden. Allen Anschein NICHT die nfo ausgewertet. Der Weg ist definitiv verkehrt.

    Wer bei mir Rechtschreibfehler findet, darf die gerne behalten. Ich kann mir jederzeit neue machen ;)

  • Der TinyMediaManager erkennt Duplikate. Auch wenn Du ihn ansonsten nicht benutzt, ist die Installation und Einlesen der Filme möglicherweise schneller als die anderen Lösungen.

    Wenn ich es richtig verstehe, macht auch dieses Programm wieder einen Vollscan der Platte und erstellt von da her eine eigene Datei?
    Das ist eigentlich nicht, was ich möchte. Die von Kodi ist ja sauber. Also wollte ich mich darauf verlassen und eigentlich nur diese auswerten.

    Wer bei mir Rechtschreibfehler findet, darf die gerne behalten. Ich kann mir jederzeit neue machen ;)

  • Also, das Angebot von dir, zu zwei, nehme ich gerne an. Der Weg mit dem Movilistgenerator hat nicht geklappt.

    Wer bei mir Rechtschreibfehler findet, darf die gerne behalten. Ich kann mir jederzeit neue machen ;)

  • ERLEDIGT!
    Ich folgende Schritte gegangen, die auch jeder Laie durchziehen kann.
    Vorweg, mich interessierten NUR die doppelten Filme und deren Speicherort.
    Es sollten NUR die Einträge der Kodi Datenbank berücksichtigt werden.
    Die eigentliche Auflösung etc ist bei mir erst einmal zweitrangig, da ich vor dem Löschen eines Filmes eh erst mal anschaue, ob denn der andere fehlerfrei ist.

    Kodi Datenbank (unter Windows ) geortet und kopiert in ein anderes Verzeichnis.
    Installiert DB-Browser für SQLite Version 3.13.0.

    Für mich war interessant einzig die Tabelle Movie.
    dann auf Datei, Export als CSV Datei.

    Da ich liebreoffice auf dem Rechner habe, diese Datei mit Liebre Calc geöffnet.
    In den Spalten C und Z befinden sich die für mich wichtigen Informationen.
    Alle anderen habe ich gelöscht.
    (zwei Fehlversuche, da sonst beim sortieren, die Erweiterung die Spalte Z nicht mitnimmt. Es gibt dazwischen leere Spalten.!)

    Spalte C Aufsteigend sortiert mit automatischer Erweiterung. (Kontrollieren, ob der Pfad mit dem Filmnamen noch in der gleichen Zeile ist)
    Danach nach Spalte C eine Leere mit 2 cm Breite eingefügt. (Breite ist eigentlich egal, aber kleiner dient der Übersichtlichkeit)
    Diese Spalte sollte dann D heißen, wenn alles richtig gelaufen ist.

    In der Zeile D1 nachfolgende formel eingetragen:

    =WENN(ZÄHLENWENNS(C$1:C$XXXX;C1) > 1; "!"; "")

    XXXX steht für die Gesamtzahl der Zeilen, die durch die Datenbank ausgeworfen wurde.
    Diese Formel komplett bis zum Ende runter ziehen, dadurch wird der die Formel jeweils an die Zeile angepasst.

    Es sollten jetzt die doppelten mit einem ! markiert sein.
    Danach kurz nach Spalte D absteigend mit automatischer Erweiterung sortieren.
    Ergebnis sollte sein:

    In Spalte C der Filmname, wie in Kodi hinterlegt, in spalde D ! in Spalte E dann der komplette Pfad zur Datei.


    Vielen Dank an alle, die sich die Mühe gemacht haben...

    Ich mache mich mal nun munter ans Löschen. Und nebenbei bemerkt man auch, dass einige Filme angeblich doppelt sind, die wohl aber zwei verschiedene sind, die nur noch mal neu erkannt werden müssen.

    Na toll...
    Frohes Restwochenende.

    Wer bei mir Rechtschreibfehler findet, darf die gerne behalten. Ich kann mir jederzeit neue machen ;)

Jetzt mitmachen!

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