[erledigt] kodi21 stinkend langsam beim parsen der filme ... utf8 vs. utf-8

  • jaja, schon wieder ich.

    jetzt ist der kodi meiner holden dran ... liegt auf einem shield röllchen, ohne anbindung an meine db - also quasi lokal bis auf die medien.

    Code
    2024-04-10 18:06:42.610 T:6838  warning <general>: Parse: "UTF-8" charset was used instead of detected charset "UTF8" for XML data
    2024-04-10 18:08:25.225 T:6838    error <general>: customConvert: iconv_open() for "UTF8" -> "UTF-8" failed, errno = 22 (Invalid argument)

    kommt zu jedem film. der ist dann zwar da, aber das dauert halt.

    wer 'ne idee zu?

  • auch hier neue erkenntnisse:

    serien war auch betroffen, allerdings hat er die alle gefressen - alles ist da und funzt.

    bei den filmen haben rund 20 stk ohne grafiken und texte dahin vegetiert.
    das lustige: in der bibliothek waren die filme richtig benannt und auch mit grafiken vorhanden.
    als workaround (gibt sicher bessere wege) hab ich mal dumm und dämlich jeden film angegriffen, informationen aufgerufen und dort neu eingelesen - juhuu sie haben wieder ihre infos.

    bliebe also die fragen: was is das nu wieder, wo liegt der fehler und wie kann ich ihn in zukunft vermeiden?

  • was is das nu wieder, wo liegt der fehler und wie kann ich ihn in zukunft vermeiden?

    Und du meinst, dass können wir dir so ohne debuglog beantworten? ;)

    Der Schnippsel oben sagt ja recht wenig aus. Du bist doch nun wirklich schon lange genug dabei um zu wissen, dass ohne das Log nichts geht. ;)

    Wertschätzung kostet nichts, aber sie ist von unschätzbarem Wert.

  • Der Fehler kommt von hier:

    xbmc/xbmc/utils/XBMCTinyXML.cpp at Omega · xbmc/xbmc
    Kodi is an award-winning free and open source home theater/media center software and entertainment hub for digital media. With its beautiful interface and…
    github.com

    Ich würde denken, da bei dir "detected" und nicht "suggested" im Log steht, dass deine XML-Dateien UTF8 kodiert sind, aber Kodi UTF-8 verwenden möchte.

    Weitere Vermutung: Wenn du deine Daten UTF-8 kodierst, dann wird Kodi da auch nicht mehr meckern und es könnte schneller gehen. Aber das ist wirkllich nur geraten.

    Wertschätzung kostet nichts, aber sie ist von unschätzbarem Wert.

  • Ich würde denken, da bei dir "detected" und nicht "suggested" im Log steht, dass deine XML-Dateien UTF8 kodiert sind, aber Kodi UTF-8 verwenden möchte.

    Hmm, kannst du bitte erläutern, was der Unterschied zwischen UTF8 und UTF-8 sein soll. Ich habe das bislang immer als synonym wahrgenommen, wobei die korrekte Schreibweise UTF-8 sein sollte. Von UTF8 ohne Bindestrich lese ich beispielsweise im Wikipedia-Artikel zu Unicode nix. Unicode – Wikipedia. Und Suchwort UTF8 in Wikipedia wird direkt weitergeleitet auf UTF-8 – Wikipedia

    Deutet das Log-Schnipsel von the ratman nicht eher auf einen Bug hin? Und auch der von dir, DaVu, genannte Code kennt halt "UTF-8" (wenn auch Variablen und Funktionsnamen "UTF8" nutzen, aber das ist unbedeutend, die könnten auch ...UTFEight... heißen). Deutet für mich darauf hin, dass da irgendwo anders im Code von Kodi ein - sagen wir mal - Tippfehler ist, der UTF-8 falsch schreibt als UTF8. Vielleicht mache ich mich mal auf die Suche ... Oder dass vielleicht eine von the ratmanerstellte Eingabe-Datei UTF8 stehen hat, wo UTF-8 stehen sollte (könnte z.B. eine .nfo Datei sein?). Oder in einem Addon. Wenn irgendwo was Ähnliches steht wie

    XML
    <?xml version="1.0" encoding="UTF8" standalone="yes" ?>

    statt

    XML
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

    könnte das die Logmeldung triggern. Die erste Variante ist einfach falsch.

    Ob das die Verlangsamung des Scrapens erklärt - keine Ahnung. Würde eher spekulieren, nein.

    Selbst hatte ich auch schon von einer Verlangsamung vor einiger Zeit (wenige Jahre) berichtet. Insbesondere wenn es nix zu Scrapen gibt, lief das bei vielleicht Kodi 17 bei mir rasend schnell durch, und ist immer noch ok bei Windows. Android und FireTV haben sich da um Größenordnungen verlangsamt. Im Log fand ich nix. Persönlich kann ich damit leben - ich warte halt nicht auf das Ergebnis, sondern schaue nach einer Weile wieder vorbei, z.B. am nächsten Morgen.

    Kodi 21.0, 17.6, 20.5, 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).

    2 Mal editiert, zuletzt von buers (10. April 2024 um 23:29)

  • Keine Ahnung ob das Bug ist.

    Is there a difference between en_US.utf8 and en_US.UTF-8?
    Server info (DNS and IPs removed): cat /proc/version &amp;&amp; uname -a &amp;&amp; java -version Linux version 2.6.16.33-xenU (*************) (gcc version…
    serverfault.com

    So wie ich das verstehe und mir auch mal eine von Kodi exportierte NFO-Datei anschaue:

    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

    Dann hätte Kodi wohl gern "UTF-8" als Schreibweise (was auch korrekt zu sein schein, denn selbst dein verlinktes Wiki sagt ja nichts zu "UTF8") und nicht UTF8. Ich würde gern mal eine der NFO-Dateien sehen. Vielleicht gibt das mehr Aufschluss darüber.

    Der "error" kommt dann vom CharsetConverter:

    xbmc/xbmc/utils/CharsetConverter.cpp at Omega · xbmc/xbmc
    Kodi is an award-winning free and open source home theater/media center software and entertainment hub for digital media. With its beautiful interface and…
    github.com

    Was iconv da aber macht, kann ich nicht beantworten

    Wertschätzung kostet nichts, aber sie ist von unschätzbarem Wert.

  • the ratman was liegt denn da genau auf der platte und wie scrapst du ?

    Aka: liegen da nur mediendatein, mp4, mkv oder halt auch metadatan .nfo dateien oder xml geraffel ?

    Weil: Wo findet Kodi das "UTF8" - was ja wohl falsch ist. Bei Dir auf der Platte oder beim scrapen auf irendeinem metadaten-server ?

    Das iconv with ja wohl automatisch von kodi gestartet weil er dieses unbekannte UTF8 auf seinen Standard UTF-8 wandeln will und dann mag das iconv halt UTF8 auch nicht. Aber man sieht ja nicht, auf welcher datei er das machen will.

  • So wie ich das verstehe und mir auch mal eine von Kodi exportierte NFO-Datei anschaue:

    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

    Dann hätte Kodi wohl gern "UTF-8" als Schreibweise (was auch korrekt zu sein schein, denn selbst dein verlinktes Wiki sagt ja nichts zu "UTF8") und nicht UTF8.

    Genau, exakt das hatte ich ja auch geschrieben, inkl. der identischen xml Zeile. Ging mir oben um ein (meines Erachtens) kleines Missverständnis deinerseits. "dass deine XML-Dateien UTF8 kodiert sind, aber Kodi UTF-8 verwenden möchte." Es gibt keine unterschiedlichen UTF-8 und UTF8 Kodierungen. Das sind nur unterschiedliche Schreibweisen. Im Kontext xml ist nur die erste Schreibweise korrekt. In anderen Kontexten (sagen wir Codepages, Environment-Variablen, andere Programmier-Sprachen/Fileformate) mag durchaus auch die zweite Schreibweise korrekt sein. Insbesondere sind in vielen Programmiersprachen oder Kontexten ja Minuszeichen nicht in Bezeichner-Namen erlaubt.

    Ein rekursives grep (falls das vorhanden ist bei the ratman ) sollte leicht die Zeichenkette "UTF8" in .nfos finden. Unter Windows tut's auch find statt grep, Rekursion ist dann bisschen schwieriger. Wenn du die Zeichenkette nicht schnell findest, kann man dir hier bestimmt auch einen konkreten Tipp geben, wie die Eingabe aussehen sollte, wenn wir Betriebssystem kennen.

    Kodi 21.0, 17.6, 20.5, 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).

  • Hi.

    Unter Windows kann man das gleich automatisch suchen und ersetzen lassen, für alle Filme/Serien auf einen Rutsch. Dazu Notepad++ starten und das Menü "Suchen in Dateien" öffnen.

    Wenn man dann das eignen Verzeichnis angibt (meines wird bei euch natürlich nicht passen), werden alle "falschen" .nfo mit einem Mausklick "repariert".

    Ich denke, für andere OS gibt es ähnliche Editoren wie Notepad++ unter Windows... Ich habe jedenfalls schon oft meine .nfo auf diese Art geändert, z.B. auf neue Versionen geupdatet. Hat bisher jedes Mal einwandfrei funktioniert.

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

  • Der Schnippsel oben sagt ja recht wenig aus. Du bist doch nun wirklich schon lange genug dabei um zu wissen, dass ohne das Log nichts geht.

    das ist das log *bg* bei vielen filmen, die er eingelesen hat, hat er die 2 zeilen geworfen.
    fazit: das log besteht nur aus immer den selben 2 zeilen.

    Ich würde denken, da bei dir "detected" und nicht "suggested" im Log steht, dass deine XML-Dateien UTF8 kodiert sind, aber Kodi UTF-8 verwenden möchte.

    Weitere Vermutung: Wenn du deine Daten UTF-8 kodierst, dann wird Kodi da auch nicht mehr meckern und es könnte schneller gehen. Aber das ist wirkllich nur geraten.

    das verwirrt mich dann noch mehr, weil das sind genau dieselben filme/serien, die auf meiner nas liegen und die auch die anderen kodis kriegen, die sich alle nicht aufregen und alle jetzt omega haben.

    was liegt denn da genau auf der platte und wie scrapst du ?

    ich hab 2 platten an der nas. eine für filme, eine für serie. alles so, wie kodi das gerne will und ich schon seit kodi 17 oder 18 fahre.
    scrappen tu’ ich das ganze mit dem mediaelch. die div. kodis greifen dann mit "local information only" ab.
    der einzige unterschied der kodis: 2 teilen sich eine mysql datenbank, der letztere, der das mimimi macht, ist "stand alone".
    die beiden ersten sind eine shield pro und ein shield röllchen. der beschwerde-kodi ist auch ein shield röllchen.

    Unter Windows kann man

    auf jeden fall stimmt die aussage *g* ich hab mal mit und ohne strich im utf8 in den .nfo


    FRAGE: ich trau’ mich nur nicht umschreiben, weil was machen dann die anderen kodis, die sich bisher nicht beschwert haben?

    nachtrag: weiß wer, ob der mediaelch eventuell einstellungen für die kodierung hat? finden tu ich mal nix - aber ich bin jo a schaaßaugat *g*

  • gut, dann wirds lustig

    das mit den anfürungsstrichen stimmt auch? bei mir sind nämlich alle utf mit hochkomma

    der vollständigkeit halber:
    Suche "encoding='utf8'" (533 Treffer in 533 Dateien von 751 gesucht) [Normal]
    F:\Filme\xxx\xxx.nfo (1 Treffer)
    Zeile 1: <?xml version='1.0' encoding='utf8'?>

    und der aktuellste, vom elch bearbeitete hats richtig:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

    falls also noch wer den elch verwendet ...


    nachtrag: so, fatitsch und kein kodi schreit um sein leben *g*
    einzig lustiges: ich hab 1 film und rund 200 episoden, wo er weder "utf8","utf-8",'utf8','utf-8' findet.

    wer 'ne idee, was da noch stehen könnte? hab so derartig wenig lust 4000 episoden zu durchforsten und für 'ne suche mit regex bin ich sowieso zu blöd.

    fux, wie lautet ein regex, der mir alle files findet, in denen nicht utf-8 vor kommt? ich bin echt lost bei dem zeug!

  • Also bei mir sieht ausnahmslos in jeder .nfo (egal ob Serie, Episode, Film, Musikvideo, Artist.nfo,...) die allererste Zeile exakt so aus:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

    Egal wie alt die .nfo auch schon ist. Und genau so muss sie auch aussehen. Aber ich verwende ja auch Media-Buddy und nicht Media-Elch...

    Übrigens hat Media-Buddy eine Funktion zum Massen- Aktualisieren der .nfo bei Serien eingebaut. Ob die allerdings dabei auch die erste Zeile korrigiert bekommen, kann ich grade nicht sagen. Das Problem ist bei mir noch nie aufgetreten. Gedacht ist das, wenn sich z.B. der Status einer Serie von Continuing nach Ended verändert hat. Dann wird das in allen Episoden- .nfo genau so geändert, wie es in der tvshow.nfo steht, die man direkt vorher geändert hat. Man kann so auch die FSK Einträge korrigieren, die des Studios, usw... Müsste ich glatt mal im Quellcode nachschauen.

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

  • naja, wie g'sagt: ich brauch’ eh nur noch wen, der mir mit meiner "negativ-regex" hilft. dann wäre die sache gegessen.

    die aktualisierungen auf der shield meiner holden gehen jetzt eh wieder sehr flott. bereinigen der db ist sogar noch nie so schnell gegangen - hoffe, das ist ein nebeneffekt von dem ganzen.
    nur hätt' ich's jetzt gerrne perfekt *g*

  • Omega ist das letzte Zeichen des Alphabets. Das Ende ist nah. Die Ratten werden ueberleben.

    Note to self: Muss mir mal "The Omega Man" anschauen. War wohl Vorbild fuer "I am Legend".

    Aeh, falsch abgebogen, sorry. Wo ist denn hier die Klatsch & Tratsch Sektion.

    [ap]

  • das ist das log *bg* bei vielen filmen, die er eingelesen hat, hat er die 2 zeilen geworfen.
    fazit: das log besteht nur aus immer den selben 2 zeilen.

    Ziemlich einfach...entweder ich sehe das komplette log oder ich bin hier raus ;)

    Sorry, wenn ich das mal so grob sagen muss, aber dafür ist mir einfach meine Zeit zu schade

    Wertschätzung kostet nichts, aber sie ist von unschätzbarem Wert.

  • naja, wie g'sagt: ich brauch’ eh nur noch wen, der mir mit meiner "negativ-regex" hilft.

    Nicht sicher, wie du genau "negativ-regex" definierst ... Wenn alle deine .nfos eine Versions-Zeile haben, aber halt mal UTF8, mal UTF-8, mal Gänsefüßchen, mal Hochkommata (die falsch sind) und auch wirklich alle UTF-8 kodiert sind, könntest du einfach die erste Zeile jeweils austauschen. Möglichkeiten wären Kombination aus Unix find und echo (die erste Zeile) tail (alle Zeilen bis auf die erste) oder sed. Weil vorhin notepad++ genannt wurde, dort sollte funktionieren (auf eigene Gefahr und ohne dass ich die FIle/Directory Auswahl gemacht habe):

    sed wäre halt bisschen mühsam, u.a. weil Quotes im Replace-Text stehen. Das kriegt man auch hin, müsste ich aber sicher bisschen üben bis es korrekt ist.

    Ich könnte mir vorstellen, dass Kodi da die Verarbeitung der .nfos etwas strikter gemacht hat. Früher war vielleicht UTF-8 Default und alles Unbekannte oder auch ohne die Kodierungszeile wurde UTF-8 interpretiert. Im Kodi-Wiki bei Combination-NFO ist immer noch ein Beispiel ohne Kodierung (das auch zeigt, dass .nfo keine echten xml sind, da wäre die letzte Zeile nicht erlaubt, jeder korrekte xml-Parser müsste die anmahnen). https://kodi.wiki/view/NFO_files/Combination

    Nach dem strikter machen fallen nun leicht inkorrekte .nfos auf die Schnauze. Ist auch nicht wirklich ein User-freundliches Format sondern meines Erachtens nur praktikabel bei automatisierter/Tool-gestützter Verarbeitung. Andere sehen das noch etwas extremer ...

    "XML is crap. Really. There are no excuses. XML is nasty to parse for humans, and it's a disaster to parse even for computers. There's just no reason for that horrible crap to exist." - Linus Torvalds

    Im allgemeinen werden Regular Expressions auch nicht gut und verlässlich mit xml funktionieren. Mein Beispiel oben sollte es aber für so einen eingeschränkten Fall tun.

    Kodi 21.0, 17.6, 20.5, 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).

  • nach deinem shot fände ich ja alles. auch alles mit utf-8.

    ich hab ja jetzt das meiste schon richtig umbenannt dank dir. um genau zu sein: es waren 533 filme falsch und rund 2 x 1000 episoden.

    was ich weiß ist, dass folgende begrifflichkeiten dort nicht mehr vorkommen, bzw. richtig sind:
    "utf8" <-- gibt es nicht mehr
    'utf8' <-- gibt es nicht mehr
    "utf-8" <-- suche ich nicht mehr
    'utf-8' <-- gibt es nicht mehr

    ich muss also was anderes finden, bzw. alles, wo die richtige version utf-8 nicht vor kommt.

    Ich könnte mir vorstellen, dass Kodi da die Verarbeitung der .nfos etwas strikter gemacht hat.

    viel anders kann es ja ned sein. wobei dann immer noch die frage bliebe: warum haben sich meine 2 anderen kodis beim updaten auf 21 nicht beschwert?
    und warum beschwert sich ein 3. kodi - der greift ja auf genau dieselben .nfo zu wie die ersten beiden, hängt dann nur nicht in der mysql db mit drinnen.

Jetzt mitmachen!

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