@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:
- 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 - Danach rausfinden, wo das Kodi-Log abgelegt wird: Link
- In Ember den gesehen-Status von allen Episoden abrufen und warten, bis der Fehler passiert.
- Nun das Kodi-Log auf den Rechner kopieren und z.B. mit Notepad++ oder dem normalen Editor öffnen.
- 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:
2022-09-30 10:41:21.003 T:10872 DEBUG <general>: JSONRPC: Incoming request: {
"jsonrpc": "2.0",
"method": "VideoLibrary.GetEpisodes",
"params": {
"tvshowid": 20,
"season": 4,
"properties": [
"title",
"plot",
"votes",
"rating",
"writer",
"firstaired",
"playcount",
"runtime",
"director",
"productioncode",
"season",
"episode",
"originaltitle",
"showtitle",
"cast",
"streamdetails",
"lastplayed",
"fanart",
"thumbnail",
"file",
"resume",
"tvshowid",
"dateadded",
"uniqueid",
"art",
"specialsortseason",
"specialsortepisode",
"userrating",
"seasonid",
"ratings"
]
},
"id": 36
}
Alles anzeigen
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.