Beiträge von DanCooper

    Wenn ich das richtig weiß, macht Kodi runtime in Minuten

    Nein, KOdi speichert den Wert in Sekunden, zumindest in der Tabell streamdetails. Es gibt noch ein Feld c09 in der Tabelle episode, dieses Feld ist vom Typ String und wird wohl nur inital für den Wert aus der NFO verwendet, bis Kodi das File selbst analysiert hat. Ich denke dort kann man auch z.B. "1min 39 Sekunden" reinschreiben.
    Verzeichenbehaftete Typen gibt's in SQLite nicht, ich glaube man kann so ziemlich alles in ein Feld schreiben, unabhängig vom definierten Typ. Also auch String in ein Integer. Ziemlich wirr, aber der Entwickler von SQLite wird wohl seine Gründe gehabt haben :) Bei MySQL wird das wohl nicht gehen.

    Hi,
    hattest du schon eine Chance dir das anzuschauen?

    Ja, hab heute endlich Zeit dafür gefunden. Sorry, dass es so lange ging.

    Ich hab folgenden Runtime-Wert gefunden, die auf jeden Fall für diesen Fehler sorgt, da der Wert für einen Integer zu hoch ist (und eine Laufzeit von 136.1 Jahren ist wohl auch eher unwahrscheinlich ;) ) :


    Guck dir mal an, was in Ember unter Laufzeit gespeichert ist, ändere das auf einen vernünftigen Wert, damit die NFO neu geschrieben wird. Falls die neue Laufzeit aus Ember nicht gesynct werden kann bitte danach die NFO in Kodi von Hand neu laden (i und dann Refresh Button drücken). Die restlichen Integer-Werte scheinen alle in Ordnung zu sein.

    11 ist höher als 9, das ist dir schon bewusst? Ein Downgrade ist nicht möglich, nur Upgrades. Wenn du eine ältere Version nutzen willst musst du die aktuelle zuerst komplett deinstallieren bzw. alle Ordner und Dateien löschen.

    Betreffend Tempo beim Scrapen:

    • Deaktivieren alle Trailer-Scraper ausser Videobuster.de und lade dir für diesen Scraper den Hotfix runter (funktioniert nur unter 1.11.1): Link
    • nutze den Daten-Scraper IMDb nur dann, wenn du ihn auch wirklich brauchst bzw. verwenden willst.

    Gibt es die Möglichkeit, dass man bis 756p alles auf DVD und hoher auf BD geändert bekommet?

    Nicht direkt, aber mit einem eigenen Filter und der Funktion "Datenfelder löschen oder ersetzen" gehts recht einfach. Ich würde jetzt behaupten, die maximale Auflösung einer DVD liegt bei 720×576 und nicht 756p. Ausserdem würde ich bei solchen Filtern immer nach der horizontalen und nicht vertikalen Auflösung gehen, da die vert. Auflösung ja je nach Seitenverhältnis unterschiedlich ist.

    Als erstes erstellst du dir zwei Filter unter Einstellungen => Diverses => Medialisten-Editor:
    Bei Typ stellst du movie ein, ins Feld neben CREATE VIEW gibst du einen Namen für den Filter ein, z.B. DVD. Ins grosse Feld darunter folgendes:

    SQL
    SELECT DISTINCT 
      movielist.*
    FROM
      movielist
      LEFT OUTER JOIN MoviesVStreams ON (movielist.idMovie = MoviesVStreams.MovieID)
    WHERE
      CAST(MoviesVStreams.Video_Width AS INTEGER) <= 720

    Danach Hinzufügen drücken.

    Danach nochmals das selbe mit anderem Namen und folgender Query:

    SQL
    SELECT DISTINCT 
      movielist.*
    FROM
      movielist
      LEFT OUTER JOIN MoviesVStreams ON (movielist.idMovie = MoviesVStreams.MovieID)
    WHERE
      CAST(MoviesVStreams.Video_Width AS INTEGER) > 720


    Der erste Filter zeigt nun alle Filme mit bis zu 720 Pixeln horizontaler Auflösung, der zweite alles darüber.
    Danach die Einstellungen schliessen und unter der Filmliste im Filterpanel die Liste auf einen der beiden Filter einstellen. Danach kannst du mit STRG+A alle gefilterten Filme selektieren und über Kontextmenü => Datenfelder löschen oder ersetzen => Videoquelle den Wert entsprechend setzen.

    Wenn du willst kannst du auch die Filme ausschliessen, bei denen der Wert bereits stimmt indem du bei der Query entsprechend änderst (im Medienlisten-Editor oben eine bereits vorhandene Liste auswählen. danach die Query ändern und wieder Hinzufügen drücken... oder gleich von Anfang an so machen):

    SQL
    SELECT DISTINCT 
      movielist.*
    FROM
      movielist
      LEFT OUTER JOIN MoviesVStreams ON (movielist.idMovie = MoviesVStreams.MovieID)
    WHERE
      CAST(MoviesVStreams.Video_Width AS INTEGER) <= 720 AND 
      movielist.VideoSource <> "dvd"

    Können die Bilder der Filme auch angezeigt werden wenn die Quellen offline sind

    Nein, es gibt keinen Cache für Bilder.

    Bei mit liegen die Bilder für die Filmsets alle in einem Ordner. Diesen habe ich unter Filmsets > Experten (ist aktiviert) auch angegeben, sowie <filename>-poster.jpg und <filename>-fanart.jpg für die Bilder.

    Die Korrekte Angabe bei Filmsets ist <settitle> und nicht <filename>. Wenn du das korrekt eingestellt hast musst du über Tools => Alle Filmsets neu laden den Ordner durchsuchen lassen. NFOs sind nicht nötig, der Filmset Plot kann auch in die Film-NFOs gespeichert werden.

    Kann ja nur heißen, dass es noch auf andere Ressourcen, außerhalb des Emberordners, zugreift, die beim Desktop-PC Probleme bereiten.

    Naja, das .NET Framework, auf welchem Ember basiert, wird durch Windows bereitgestellt. Alles andere befindet sich im Ember Verzeichnis. Alle Komponenten und Ember selbst laufen noch unter .NET 4.5, somit auf einer sehr alten Version, welche schon lange keine Änderungen mehr erhalten hat. Könntest mal versuchen, dieses Frramework neu zu installieren. Wie das geht kann ich dir leider auch nicht sagen. Aber ich denke sowieso, das Problem liegt irgendwo anders (Anti-Virus, Firewall...).

    Ich vermute, das heißt, tmdb ist wieder mal nicht zu erreichen? Hab es vor zwei Tagen schon mal erfolglos probiert.

    Bei mir (Schweiz) ist die API erreichbar. Ich frag mich manchmal, ob gewisse ISPs die Seiten blocken, weil jemand das Gefühl hab, dass darüber illegal Filme runtergeladen werden können. Mehr kann ich aktuell leider nicht sagen, ich lieg mit Corona im Bett seit Anfang Woche und bin geistig nicht gerade auf der Höhe.

    @Kraxel
    Ok, dann versuchen wir mal zu schauen, was Kodi bei der Anfrage zurückgibt. Wenn bei dir im Kodi-Log nur diese Anfrage zu sehen ist, die du gepostet hast, dann gibt diese schon eine Antwort, die Ember nicht passt. Gib ein einem Webbrowser mal folgende Adresse ein und ersetzte "KODI-IP" durch die IP Adresse, welche der Kodi Client hat:

    Code
    http://KODI-IP:8080/jsonrpc?request={"jsonrpc": "2.0", "id": 1, "method": "VideoLibrary.GetTVShows", "params": { "properties": ["rating","year","playcount","episode","premiered","votes","lastplayed","season","watchedepisodes","dateadded","userrating","ratings","runtime"] } }

    Ich hab hier nur die "properties" aufgeführt, die meiner Meinung nach ein Integer zurückgeben sollten. Das Ergebnis kannst du auf pastebin.com hochladen oder als Textfile anhängen (bitte nicht direkt posten, das Ergebnis ist viel zu lange).

    @h9rst @eric1905
    Videobuster hat die Webseite etwas geändert, weshalb der alte Scraper nicht mehr funktioniert. Ich hab die Änderungen bereits übernommen und es funktioniert wieder. Ich muss mal schauen, ob ich den Scraper als Update hochladen kann, da ich mit dem nächsten Ember Release immer noch nicht soweit bin.

    Betreffend YouTube: Bei den meisten Videos ist das Bild und der Ton getrennt und die beiden "Spuren" werden getrennt heruntergeladen. Danach werden sie zusammengeführt und als mkv gespeichert. Ich hab sbis jetzt noch nicht hingekriegt, dass das YouTube Addon gleichzeitig mehrere Verbindungen zum Download benutzt, damit diese nicht ewig dauert.

    Betreffend NFO-Trailer: Klingt so, als würdest du Trailer-Scraper als NFO-Trailer-Link Quelle nutzen. Ich hab das mal als schnellen Workaround eingebaut, damit man die Links nicht immer über den Trailer-Select-Dialog von Hand auswählen muss. Ich bin gerade dabei, die Scraper zu bereinigen, damit die Ergebnisse etwas konstanter und nachvollziehbarer sind. Ich schau mir bei der Gelegenheit auch gleich an, was als Trailer-Link Ergebnis verwendet wird und korrigiere die Einträge wenn nötig.

    @Kraxel
    An der Menge solltes es nicht liegen. Laut Log soll ein Int64 in ein Int32 konvertiert werden. Nur gibt es laut Kodi RPC keine Felder mit Int64 sondern nur welche mit Int32. Int32 ist eine Zahl zwischen −2.147.483.648 und (+)2.147.483.647. Neben den fortlaufenden IDs für jede Epsiode, Serie, Staffel, Film und z.B. Datei gibt es noch einige weitere Zahlenwerte wir Runtime, UserRating und Year in der DB. Bei keinem dieser Felder sollte jedoch ein so hoher Wert zustande kommen. Selbst wenn du alle Episoden mehrmals aus der DB gelöscht und wieder hinzugefügt hast dürfte kein solch hoher Wert zustande kommen. Das einzige, was mir noch einfallen würde ist ein Datum, welches in Kodi als Klartext und in Ember als Zahl im Unix-Timestamp Format (Anzahl Sekunden seit dem 1. Januar 1970, 00:00) gespeichert wird. Das höchst mögliche Datum dafür ist bei Int32 der 19. Januar 2038 um 3:14:08. Falls also irgendwo z.B. ein Premiered Datum mit 2040-02-01 angegeben ist könnte dieses Datum nicht mehr in einen Int32 umgewandelt werden. Das sollte aber alles nicht vorkommen...


    Ich würde nun versuchen das letzte in Kodi abgerufene Element zu ermitteln und zu analysieren, bevor Ember crashed. Dafür wären folgende Schritte nötig:

    1. In Kodi unter Einstellungen => System => Logging folgendes aktivieren:
      Enable debug logging
      Enable component-specific logging
      Specify component-specific logging => Verbose logging for JSON-RPC requests
    2. Danach rausfinden, wo das Kodi-Log abgelegt wird: Link
    3. In Ember den gesehen-Status von allen Episoden abrufen und warten, bis der Fehler passiert.
    4. Nun das Kodi-Log auf den Rechner kopieren und z.B. mit Notepad++ oder dem normalen Editor öffnen.
    5. Nun im Kodi-Log vom Ende her nach oben die letzte JSONRPC Anfrage suchen. Dies sollte dann die Anfrage sein, welche ein ungültiges Ergebnis geliefert hat. Die sollten in etwa so aussehen:

    Je nachdem sind das dann alle Episoden einer bestimmten Staffel einer Serie oder die Staffeln selbst. Im Falle von VideoLibrary.GetEpisodes kennt man nun die tvshowid und die season. Nun müsste die Kodi Datenbank (lokale SQLite Datei oder MySQL, je nach EInstellungen) geöffnet werden und filtert dort die Tabelle episode nach den Spalten idShow und c12 (Staffelnummer). In dieser gefilterten Liste sucht man nun nach Zahlenwerten über 2.147.483.647 bzw. einem Datum nach dem 19. Januar 2038 um 3:14:08.

    Du musst aber trotzdem in Kodi die Quelle anlegen, den Inhalt angeben und einen Scraper auswählen. Als Scraper würde ich den "local Info only" nehmen, der liest dann nur die von Ember erstellten NFOs ein und scrapt nichts selber.
    Wenn du bei einer Quelle keinen Inhalt und Scraper festlegst weiss Kodi auch nicht, was dort überhaupt liegt und wo die Daten in der DB gespeichert werden sollen.