Daten auslesen und Datenbank erstellen

  • Hallo Forenfreunde,

    ich habe mir, als ich mit Kodi anfing, für FIlme und Serien eine Excel Liste erstellt, in der ich Filmnamen, Dateigröße, FIlmqualität und ein paar andere Dinge mit eingetragen habe. Für jeden Film und für jede Serienfolge. Ein Grund für mich war, dass ich in dieser Liste die Filme und Serien auch nach Qualität markieren konnte um so zu sehen, wo ich bei Zeit noch einmal nachbessern muss. Es ist aber natürlich auch ein gewisser Aufwand, gerade bei Serien.

    Bietet Kodi die Möglichkeit dazu, mir ebenso eine Datenbank zu erstellen?

    Ich habe über Datenbank exportieren (einzeln) bereits die .xml Datei erstellen lassen.
    Kenne mich aber zu wenig damit aus. Kann man diese (oder eine andere Liste) auch als wirkliche Datenbank erstellen mit zum Beispiel einer übersichtlichen Sortierung von Name, Speichergröße, Filmqualität usw usw?

  • Ich habe über Datenbank exportieren (einzeln) bereits die .xml Datei erstellen lassen.

    Ich habe mir die xml-Datei noch nicht angesehen. Hast du dir aber mal die Option, die Datenbank in separate NFO-Dateien ausgeben zu lassen, angesehen? Vielleicht stehen dann noch mehr Informationen drin.

    Wenn du in Kodi deine Filme anspielst, werden die "Streamdetails" ausgelesen. Kodi hat dann Informationen darüber in welchem Format der Film vorliegt und welche Audiospuren in welchem Format dabei sind. Exportierst du dann deine Datenbank (nachdem du die Filme abgespielt hast ...ein paar Sekunden reichen dafür), dann stehen diese "Streamdetails" in den NFO-Dateien. Mit ein wenig Magie und einem passenden Script, könntest du dir da eine schöne Liste bauen, deren Einträge mit Semikolon separiert ist und du dann diese Liste in Excel importieren kannst.

    Weiter könntest du dich auch mit der JSON API auseinander setzen. Diese kann dir alles schön im JSON-Format ausgeben. In Verbindung mit jq ( https://stedolan.github.io/jq/ ) kannst du dann ganz wunderbar nach den entsprechenden Einträgen, die du brauchst, filtern und dir so auch eine schöne Excel deiner Filme bauen.

    Nur für den Fall, dass es keine Software gibt, die die Kodi-DB auslesen kann und dir dann daraus eine Excel macht.

  • Ich habe sowas ähnliches schon gemacht - Excel aus Kodi xml-Export. Geht schon. Wenn man es selbst machen will, ist es halt auch abhängig von eigenen Programmierkenntnissen und der genutzten Programmiersprache. Parsen von xml "von Hand" ist nicht so trivial, und auch die Nutzung einer Library ist nicht zwingend einfach.

    Ich habe mir die xml-Datei noch nicht angesehen. Hast du dir aber mal die Option, die Datenbank in separate NFO-Dateien ausgeben zu lassen, angesehen? Vielleicht stehen dann noch mehr Informationen drin.

    Als ich das geprüft hatte, sah ich keine Vorteile. Und für ein selbstgemachte Tool ist sicherlich eine xml einfacher handzuhaben.

    Ich hatte für mich Tool geschrieben, was aus xml eine csv. baut und die Info da mit meiner Excel-Tabelle zusammenführt. Nutze ähnlich wie du eine Excel-Tabelle für meine Medien, wo ich für mich noch bisschen mehr Info speichere, z.B. der Fernsehsender, von dem ich aufgenommen habe und Stream-Eigenschaften, die ich mit mediainfo als Kommandozeilen-Tool auslese - mit Auflösung, Bitrate, vorhandenen Audio-Streams und Eigenschaften (stereo, 5.1) hat man dann durchaus auch objektive Qualitätskriterien.

    Das sind die Felder, die du aus Kodi generierter xml auslesen kannst (jedenfalls die, die ich ausgelesen hatte)

    Spoiler anzeigen


    season
    episode
    showtitle
    title
    originaltitle
    sorttitle
    set name
    overview
    country
    director
    Writer/Credits
    year
    genre
    studio
    rating default
    votes default
    rating imdb
    votes imdb
    rating themoviedb
    votes themoviedb
    userrating
    outline
    plot
    tagline
    Actor (Role)
    runtime
    mpaa
    id
    ID IMDB
    ID TMDB
    ID Unknown
    aired
    premiered
    dateadded
    lastplayed
    playcount
    filenameandpath

    Neben dem Tool, das @darkside40 nannte, kannst du auch mal nach sqlite-Viewer googlen. Viele der Viewer bieten Excel-Export an. Paar Sverweise und das kannst du mit den vorhandenen Daten "mischen". Wie es halt so ist mit dem internen Aufbau von Datenbanken, sind manche Tabellen nicht so ganz leicht nutzbar, sondern sind halt IDs, die wiederum in anderen Tabellen nachgeschlagen werden müssen. Aber wenn du in der MyVideosxx.db von Kodi im userdata/Database Ordner stöberst, siehst du schon, was auf dich zukommt.

    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).

  • Der Unterschied einer *.nfo Datei zur *.xml Datei ist die Endung. Der Dateiaufbau ist dabei identisch.

    Magst du mir erklären, warum das Parsen einer großen xml-Datei leichter ist als das Parsen vieler nfo-Dateien bei denen ich am Dateinamen ggf schon den Filmtitel festmachen kann? Bei der großen XML muss ich auch noch den Titel parsen und dann feststellen wo der eine Eintrag anfängt und aufhört. Das geht doch bei einzelnen Dateien leichter. Zumindest in meinem Kopf und in der Theorie ;)

    Im Endeffekt gebe ich dir aber Recht. XML Parsen ist ätzend. Ich würde es auch eher mit JSON versuchen. Mit "getMovieDetails", den entsprechenden Properties und "jq" ist da einiges möglich und es wird nicht so knifflig. Da ist ggf schon Bash als Scriptsprache möglich. Python ist mit Sicherheit effektiver.

    SQL Viewer verwende ich selbst oft. Ob der aber nein CSV-Export macht weiß ich gar nicht. Das wäre vielleicht wirklich das einfachste.

  • Zu deiner Frage, an mich. Zunächst was ich schrieb:

    für ein selbstgemachte Tool ist sicherlich eine xml einfacher handzuhaben.

    "handhaben"

    Magst du mir erklären, warum das Parsen einer großen xml-Datei leichter ist als das Parsen vieler "

    Deine Frage bezieht sich allerdings rein auf das Parsen (und ich hatte nicht behauptet, dass sich das Parsen vereinfacht. Um aber seine ganze Medienkollektion zu "handhaben" (im Sinne dieser Diskussion) gehört dann bei den einzelnen Dateien auch noch dazu, dass man sich durch die Directorys hangeln muss, das entfällt bei einzelner xml.

    Zu dem "nfo-Dateien bei denen ich am Dateinamen ggf schon den Filmtitel festmachen kann" kann ich mir nicht verkneifen, auf deine hier mehrfach wiederholten Empfehlung keine "Sonderzeichen" in Dateinamen zu verwenden. (Anführungszeichem, weil jetzt Sonderzeichen nicht auf Anhieb definiert ist). Dann wird es praktisch ohne KI Tool unmöglich "echten" Titel mit dem Dateinamen zu verbinden. Und in der xml steht schon der korrekte Titel ganz perfekt mit allen Sonderzeichen. Wenn man die xml parst, wird das zwingend (nebenbei) eh gelesen.

    Ist übrigens in manchen Sprachen durchaus möglich nach Sprachstandard (d.h. sehr einfach und hochgradig portabel) xml zu parsen. Directory-Handling allerdings nicht. Beispielsweise gibt es in Standard-C keine Funktionen, sich den Inhalt eines Verzeichnisses anzuzeigen. Unter Unix macht man das typischerweise mit POSIX, unter Windows beispielsweise mit FindFirstFile-API.

    Klar, man könnte auch ein Skript um einen Parser von "Ein-Film-XMLs" (nfos) bauen. Aber auch da muss man dann halt irgendwie das Directory-Handling skripten, was bei 1-Datei-XML für alle Filem entfällt.

    Kommt man noch auf die Idee, dass man in seinem Tool Filmübergreifende - sagen wir mal - Analyse/Auswertung zu machen, geht es auch nicht mehr leicht mit Skript, das ein Tool steuert, das nur "Ein-Film-XML" auswertet.

    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).

  • Zu dem "nfo-Dateien bei denen ich am Dateinamen ggf schon den Filmtitel festmachen kann" kann ich mir nicht verkneifen, auf deine hier mehrfach wiederholten Empfehlung keine "Sonderzeichen" in Dateinamen zu verwenden. (Anführungszeichem, weil jetzt Sonderzeichen nicht auf Anhieb definiert ist). Dann wird es praktisch ohne KI Tool unmöglich "echten" Titel mit dem Dateinamen zu verbinden. Und in der xml steht schon der korrekte Titel ganz perfekt mit allen Sonderzeichen. Wenn man die xml parst, wird das zwingend (nebenbei) eh gelesen.

    In der NFO steht der "echte" Titel ebenfalls. Wie schon erwähnt enthält die *,nfo Datei einen ähnlichen aufgebauten Inhalt wie die *.xml Datei. Dazu gehört auch der <title></title>-Tag. "Handhaben" (im Sinne dieser Diskussion) verstehe ich so.... Daten einlesen und irgendwie in Excel verfügbar machen. Denn das ist die Fragestellung in dem Thread hier. Somit ist "handhaben" auch "parsen" in meinen Augen. Und dann ist es doch einfacher wenn ich weiß, wo die Datei aufhört ohne das ich eine Logik dafür einbauen muss. Habe ich einzelne Dateien, dann mache ich einfach ein:

    Bash
    for i in $(find <pfad> -name "*.nfo"); do
      echo "Film: $i wird geparst"
      while read -r line; do
        .....
        ....some magic mit $line......
      done < $i
      echo "mache mit nächsten Film weiter
    done

    Directory-handling wird in dem Fall schon von "find" gemacht, da es mir den kompletten Pfad von meinem aktuellen Standpunkt her ausgibt. Ich muss mich also um nicht mehr soo viel kümmern. Aber ja...das ist halt unter Linux so.

    Ein GUI Tool muss das natürlich anders händeln. Das stimmt. Und ja, da ist es einfacher, wenn man die Logik einbaut und dem Tool eine einzelne Datei hin wirft.

    Zu deiner Theorie in Bezug auf die Sonderzeichen, muss ich dir leider sagen, dass du da falsch liegst. Ich habe gerade mal einen "single"-Export gemacht:

    Das ist auch in der NFO nicht anders. Als Ordername haben ich einfach "Ace_Ventura-Jetzt_wirds_wild". Du kannst dir jetzt aussuchen, was leichter lesbar ist ;)

    Übrigens....Bei Kodi ist es nicht empfohlen den "Import" (was auch ein "handhaben" ist) über diesen "Single"-File zu machen, da in dieser Datei auch der Pfad zum Film steht (was bei der NFO nicht der Fall ist, da sie immer neben der Filmdatei liegen sollte und Kodi so den Pfad hat). Ändert sich der Pfad dann kann man mit dem Import aus einem Single-File recht wenig anfangen.

  • oookay....nach dem ich mir hier alles durchgesehen habe....und nicht über besondere Programmierkenntnisse verfüge....wäre ich aktuell zumindest weiter dabei meine Excel weiter per Hand zu pflegen.
    Bei den Filmen ist es auch nicht so dramatisch, da habe ich eh knapp 750 Filme drin und muss nur die letzten nachtragen. Bei den Serien ist es halt mühselig...

Jetzt mitmachen!

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