Habe mehrere Kodi 18 Leia auf RPI. Diese greifen per SMB auf einen Server mit mehr als 5000 Videos zu. Läuft alles perfekt. Jedes Kodi hat eine lokale Datenbank, das soll auch so bleiben. Suche nach einem Script, welches im RPI läuft und eine Liste der Videos erzeugt, die schon mal gesehen wurden. Ausgabeformat ist egal und wird später zum Löschen verwendet.
Gibt es dafür eine einfache Lösung?
Suche Datenbank Liste 'Gesehen'
-
helmuel -
13. August 2019 um 18:54 -
Erledigt
-
-
Brauchst du es als Datei exportiert oder innerhalb von Kodi?
In Kodi kannst du ganz leicht eine "Intelligente Wiedergabeliste" erstellen.
-
-
Wenn Du Windows irgendwo benutzt nimmst du den DB Browser for SQLLite öffnest die Datenbank auf dem Pi (per SMB Freigabe userdata - Ordner Databases - Datei Moviedbxx.db, musste aktivieren).
Dann machst Du rechtsklick auf:Dort ist dann in der Tabelle die Spalte Playcount und da tippst du bei Filtern ein >0
Dann kannst Du in der Zeile daüber mit einen Klick auf Exportieren das als CSV speichern. -
Vielen Dank für die schnellen Antworten.
TehTux: Ich benötige das als exportierte Liste und die soll dann unter Windows 10 weiter bearbeitet weren, wahrscheinlich auf dem Server, auf dem auch die Videos liegen.
SkyBird1980: Den DB Browser for SQLite habe ich jetzt auf dem Windows Rechner installiert. Allerdings finde ich auf dem RPI die Moviedbxx.db nicht was evtl. daran liegt, dass ich die Standard Datenbank verwende und nich SQLite. Somit komme ich damit auf die schnelle nicht weiter.
Bei mir läuft eigentlich alles unter Windows, der RPI mit Kodi ist das einzige Linux, und entsprechend wenig bis gar nicht kenne ich mich damit aus. -
-
Allerdings finde ich auf dem RPI die Moviedbxx.db nicht was evtl. daran liegt, dass ich die Standard Datenbank verwende und nich SQLite.
Standard-Datenbank ist SQLite!
Hast du denn den Database-Ordner gefunden? "userdata" liegt je nach Betriebssystem an unterschiedlichen Stellen, siehe https://kodi.wiki/view/Userdata
Die Datei soll "MyVideos116.db" heißen. (Die Zahl im Dateinamen ist abhängig von der verwendeten Kodi-Version.)
-
Die Datei habe ich gefunden. Der Inhalt (über Browser)schaut auch plausibel (nach meinen Videos) aus.
Werde dann morgen versuchen eine Verbindung vom Windows herzustellen und mit dem SQL Browser zugreifen.
Vielen Dank ! -
-
So, kann nun vom Windows mit dem SQL Browser auf die Datenbank zugreifen. Erkenne auch einige Einträge wieder.
Wie kann ich denn nun eine externe Datei (CSV oder sonstiger Text)erzeugen mit einer Zeile pro Video, welche möglichst nur den Pfad, den Titel und das Gesehen Flag enthält ? -
Man müsste nun einen eigenen View der nur diese 3 Zeilen enthält.
Du kannst einzelne Spalten mit Rechtsklick auf den Spaltennamen ausblenden.Hab heute früh leider keine Zeit etwas zu machen.(Work Work Work..)
Vieleicht kann da jemand anderes unterstützen um einen eigenen View zu erstellen mit weniger Spalten. -
-
Hallo @helmuel,
die View z.B. 'Filme_gesehen' könnte so aussehen:
CodeDROP VIEW IF EXISTS Filme_gesehen; CREATE VIEW Filme_gesehen AS SELECT movie.c22 AS Pfad, movie.c00 AS Filmtitel, files.playCount AS gesehen FROM movie, files WHERE movie.idFile = files.idFile AND files.playCount >= 1;
Diesen SQL Befehl einfach unter dem tab 'SQL ausführen' eingeben und laufen lassen. -
Bin etwas weiter gekommen. Unter Ansicht movie_view sehe ich einen Teil (598) meiner Videos, insgesamt sind allerdings 5672 auf dem Server und werden auch am Kodi angezeigt. Von diesen 598 ist nur eine mit einem Lastplayed Datum und der playcount ist trotzdem NULL. Das Lastplayed Datum würde allerdings für meine Zwecke ausreichen. Frage ist erstmal die, warum ist nur ein Teil der Videos in der Tabelle ?
-
-
JakeB: Danke für die View. Habe ich laufen lassen, findet aber nichts, weil nirgends count drin ist.
-
Das kann mit dem 'playcountminimumpercent' zusammenhängen. Der default Wert ist sehr gering, so dass ich es bei mir auf 90% gesetzt habe.
[definition='2','1']advancedsettings[/definition].xmlCode<[definition='2','1']advancedsettings[/definition]> <video> <playcountminimumpercent>90</playcountminimumpercent> </video> </[definition='2','1']advancedsettings[/definition]>
Sobald ein Video angespielt wird erscheint ein Eintrag unter 'files.lastPlayed'.
Der Eintrag '1' wird dann erst ab 90% unter 'files.playCount' gesetzt.Das kann bedeuten, dass einige Filme wurden gestartet aber nicht zu Ende gesehen oder es wurde schnell wieder abgebrochen.
Natürlich könnte man auch nach 'files.lastPlayed' filtern:
-
-
Der leicht abgeänderte View:
DROP VIEW IF EXISTS Filme_gesehen4;
CREATE VIEW Filme_gesehen4 AS
SELECT movie.c00 AS Filmtitel, files.lastplayed AS gesehen, movie.c22 AS Pfad
FROM movie, files
WHERE movie.idFile = files.idFile
AND files.lastplayed >= 0;bringt dann folgendes Ergebnis:
Bei Anruf Mord 2019-02-25 12:03:25 smb://192.168.2.124/Video/Helmut/Bei Anruf Mord 2013-01-01 15-10-00 arte --VS2--.mpg Das wäre es eigentlich. Dann gäbe es nur noch das Problem mit den zu wenigen Videos.
-
Sind denn alle Filme indexiert oder nutzt du nur die Dateiliste?
-
-
Frage ist erstmal die, warum ist nur ein Teil der Videos in der Tabelle ?
Weil die nicht in der Datenbank sind oder Serien sind.
Die Liste jetzt gibt nur Filme in der Datenbank aus.Wie gehst Du denn in deine Filme?
Über den Punkt Filme im Hauptmenü oder über den Punkt Videos -> Dateien?
2. Zeigt alles an auch wenn es nicht in der Datenbank ist.@JakeB Danke fürs übernehmen
-
Ich gehe über Dateien, weil ich die Filme auf dem Server in verschiedene Folder abgelegt habe, und damit der Zugriff am einfachsten ist.
Trotzdem werden die gesehenen Videos im Kodi entsprechend markiert. Bewusst habe ich nichts in die Datenbank eingefügt. -
-
Ich gehe über Dateien, weil ich die Filme auf dem Server in verschiedene Folder abgelegt habe, und damit der Zugriff am einfachsten ist.
Nicht in der Filmdatenbank -> nicht in dem View. Woher soll Kodi denn auch wissen das das Filme sind?
-
Woher Kodi die Info hat ist mir nicht klar. Aber in der Datenbank wird scheinbar vieles mehr abgelegt. Die Query:
DROP VIEW IF EXISTS Filme_gesehen9;
CREATE VIEW Filme_gesehen9 AS
SELECT movie.c22 AS Pfad,movie.c00 AS Filmtitel, files.lastplayed AS gesehen,files.playCount AS Wieoft
FROM movie, files
where files.lastPlayed IS NOT NULL
and playcount > 0;
bringt insgesamt 173.420 Einträge, davon sind viele doppelt, aber auf jeden Fall mehr als bei der ersten Query. -
-
Jup ganz normal
WHERE movie.idFile = files.idFile
schränkt die liste auf die Filme ein die auch in der Datenbank erfasst sind.
-
-
-
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!