Beiträge von _Andy_

    Ich nutze dazu ein selbst programiertes tool in .NET. Das liesst die imdb oder tmbd aus der Kodi Datenbank und kann dann auf verschieden Seiten automatisch suchen und herunterladen sowie in das richtige Verzeichnis legen.

    Ich unterscheide aber nicht ob Deustcher oder Eng. Trailer. Somit habe ich bei über 90% meiner Filme automatisch den Trailer geladen. Die restlichen par Filme habe ich dann von Hand mit youtube gemacht.
    Dazu ist in dem Programm eine Automatik enthalten. Ich kopiere nur die URL aus youtube und der Trailer wird wieder automatisch geladen und in das richtige Verzeichnis gelegt.

    Zum Anzeigen der Trailer nutze ich das Script TVTunes welches ich aber umgeschrieben habe. In dem Script sind keine Downloadoptionen mehr enthalten. Auch das ganze Tracking usw. ist entfernt.
    Alles Böse aus dem Script ist entfernt. Das Script zeigt nur ganz stumpf die Trailer an, mehr nicht.

    Es kann sein das der Befehl concat in SQLite nicht zu Verfügung steht oder das Deine Datenbank nicht kodivideodatabase_107 heisst.
    Den Namen musst Du anpassen. Das war nur ein copy/paste aus meinem MySQL.
    Ich denke es reicht wenn Du den Namen komplett rauslässt.

    SQL
    SELECT c00 as Moviename,concat(strPath,strFilename) as Filename FROM movie_view where playCount > 0 order by lastPlayed ASC


    sollte das immer noch nicht gehen nimm auch den concat raus und probiere dann

    SQL
    SELECT c00,strPath,strFilename FROM movie_view where playCount > 0 order by lastPlayed ASC


    aber irgendwo in Deinem Editor steht auch eine Fehlermeldung warum keine Zeilen rauskommen.

    Wenn ich mich jetzt nicht ganz irre in die Abfrage noch plot mit abfragen. Also $json = 'http://'.$kodi_user.':'.$kodi_pass.'@'.$kodi_ip.':'.$kodi_port.'/jsonrpc?request={"jsonrpc":"2.0","method":"Player.GetItem","params":{"properties":["title","fanart","thumbnail","streamdetails","plot"],"playerid":1},"id":0}';
    Dann mittels $kodi_plot = $data["result"]["item"]["plot"]; den Wert auslesen. Evtl musst Du die Zeilenumbrüche noch in <BR> umwandeln.

    Jub. Ich würde sagen die ganze Verarbeitung dauert auf dem Pi viel zu lang. Das Abrufen und das Verarbeiten. Ich weis jetzt nicht wie ob der Pi evtl. alles im Speicher macht oder sogar auf die Platte bzw. auf die langsame SD auslagern muss währen der Verarbeitung.
    Dazu kommt dann noch das Präsentieren über den Webserver zum Browser, wo vermutlich auch teilweise wieder auf die SD gecached wird. Ich habe damals den Shield verkauft, da der mir viel zu langsam war mit der CPU. Die GPU war super aber der Rest :( Deswegen bin ich wieder auf einen "normalen" HTPC zurück.

    Leider habe ich dazu keine Antwort wie man das verbessern kann. Da das Script über einen normalen PC blitzschnell ausgeführt wird, musst Du wohl damit leben.

    Das sieht irgendwie komisch aus aber der Logik nach muesste es so funktionieren. Die Gesamtzeit des Scriptes wäre dann aber $time7 - $time1
    Ich habe die Messung mal bei mir gemacht. Das einzige was überhaupt eine Zeit erbbracht hat war das abrufen des JSon Strings von Kodi. Das hat bei mir 0.0780sek gebraucht. Alles andere geht in der Messung unter, da es so schnell geht und die Differenz immer 0 ist. Ich habe nochmal curl gegen file_get_contents getestet. curl war fast immer doppelt so schnell.

    Lass bitte nochmals mein Script hier ablaufen und poste mal die Zeiten.

    Meine Zeiten bei dem Test sehen so aus:

    Code
    1 :0
    2 :0
    3 :0
    4 :0.015599966049194
    5 :0
    6 :0
    7 :0
    8 :0
    9 :0.015599966049194

    Die Gesamtlaufzeit des Scriptes sind also so um die 0.016sek. Das ist das was gemessen werden kann innerhalb von PHP.

    Ok. Da ich jetzt nicht weis was Du schon an dem Script umgebaut hast, ist es einfacher nur das Prinzip zu zeigen oder Du kopierst alles was Du gemacht hast einmal hier hin, dann ändere ich das eben selber ab.
    Wenn Du wissen willst wie lange es dauert um den String von kodi zu empfangen, mache folgendes:

    Code
    ///// Start
    $time1 = microtime(true);
    ///// der Befehl der gemessen werden soll //////
    $json_response = GetURLAsString($json);
    ///////////////////////////////////////////
    $time2 = microtime(true);
    echo "time:".($time2 - $time1)."<br>";
    //// Ende


    Also im Prinzip mus Du jede Zeile die Du berechnen lassen willst mit den oben gezeigen Codeblock umschliessen. Dann wird ausgegeben wie lange die Zeile gebraucht hat. Eine Zeile wird entweder stark herrausbrechen oder es braucht genrell alles sehr viel Zeit. Du kannst ja noch zusätzlich ganz am Angang und am Ende des Scriptes messen.

    Falls Du die Anzeige der Bilder noch aktiviert hast, vermute ich das das so lange dauert. Wenn Du die Bilder schon rausgenommen hast, kann es sein das tatsächlich das dekodieren so lange dauert oder irgend ein Netzwerkprocess dauert lange.

    Falls Du es genauer wissen willst, kann ich zum testen eine Stoppuhr einbauen, die zeigt wie lange jeder Befehl braucht.

    Sicher, Du bekommst keinen Support mehr im Kodi Forum sowie auch hier im Kodinerds Forum. Den Support bekommst Du jetzt aber auch schon nicht in beiden Foren, wenn Du illegale Addons usw verwendest. Was auch korrekt
    ist.
    Es gibt genügend Seiten wo alles angeboten wird. Da schert sich niemand ob dies untersagt ist oder nicht. Wenn dann irgendwo eine Kodi Version angeboten wird die "besser" mit illegalen Inhalten funktioniert, dann würde das auch weiterhin passieren, egal ob Trademark oder nicht.

    Solange alles Open Source ist und jeder auch an die Quellen rankommt, wäre es "dumm" etwas in den Code hereinzuprogrammieren. Man verschwendet Zeit darauf, die Illegalen Inhalte zu erkennen und Warnhinweise oder dann den Stream oder Addon zu blockieren. In diesem Fall würde es dann auf den einschlägigen Seiten eine Version geben, wo diese Ereknnung rausprogramiert wurde.
    Die meisten Leute "da" draussen sind zwar nur "Script Kiddies" und einfache User aber es gibt auch genug Leute die etwas mehr draufhaben und sowas dann entfernen können und dann auch anbieten.

    Sowas würde dann nur Sinn machen, wenn Kodi closed Source wird und evtl. zu einem kommerziellen Produkt verändert wird.

    Aber mal ehrlich. Möchte das Irgendjemand von uns? Ich finde es super so wie Kodi ist. Ich kann in die Quellen hineinschauen und mir selber Versionen kompilieren. Ich halte mich von den illegalen Quellen und Addons fern.
    Wenn etwas nicht funktioniert oder mir etwas in Kodi oder den Addons nicht passt, dann ändere ich es. So z.B. bei dem Addon TVTunes. Ein tolles Ding aber die Weitergabe von Daten bzw. der Download von "komischen" Quellen, sowie die eindeutige Identifizierung mittels einer UUID ist induskutabel. Also habe ich mir selber eine Version gemacht, wo nur die Kernfunktionen enthalten sind aber der ganze Download und Upload Mist ist raus.

    So etwas würde bei Closed Source nicht gehen.

    Das hatte ich schon versucht kurz zu erklären. Beim dekodieren der JSON Antwort ergibt sich nach dem ["video"] noch ein Array. Dieses Array ist aber nicht assoziiert. Erkennbar an
    "video":[{"aspect":2.3762381076812744,"codec":"h264","duration":5643,"height":808,"stereomode":"","width":1920}] also explizit an [{"aspect.


    Wenn das Array nicht assoziiert ist, kannst Du nicht mit einem key also z.B. ["video"] darauf zugreifen, sondern nur über den Index. Der erste Teil eines Array beginnt ja mit 0 als Index. Daher die 0.

    Danach befindet sich man wieder in einem Array welches dann aber wieder assoziiert ist. Deswegen kann man dann wieder mittels ["duration"] darauf zugreifen.


    Benötigst Du noch etwas? Falls noch Fragen oder Verbesserungen offen sind, versuche ich gerne die zu lösen.

    Mist, ich muss mal genauer hinschauen. Der decode ergibt noch ein nicht assoziiertes array. Von daher muss man vorher einmal dahin abbiegen, bevor man wieder auf das assoziierte zugreift.

    $kodi_duration = $data["result"]["item"]["streamdetails"]["video"][0]["duration"];

    Ok. Mir lässt sowas dann keine Ruhe :)
    Probier dann morgen das Beispiel hier aus. Damit sollte auch Benutzer/Passwort funktionieren.

    Es scheint mir so, als wenn in Deiner PHP Version auf dem Pi einiges nicht mit einkompiliert oder disabled ist. So wie es aussieht funktioniert der Aufruf mit file_get_contents nicht.
    Mit dem Aufruf bekommt PHP den Inhalt einer Webseite oder in diesem Fall das Ergebnis einer JSON Abfrage als Variable zurück. Wenn das schon nicht geht, kann der Rest auch nicht gehen.

    Was für eine PHP Version ist denn da installiert?

    Nein, es hat sich zwar etliches in der json api von 16 nach 17 geändert aber so eine einfache Abfrage geht auch mit Kodi 16.

    Teste nochmal diese Beispiel und poste mal die Ausgaben (Trage in das Script die IP von Deinem Kodi ein)

    Bei mir steht dann z.B folgendes im Browser

    Code
    http://192.168.1.70:8080/jsonrpc?request={"jsonrpc": "2.0", "method": "Player.GetItem", "params": { "properties": ["title"], "playerid": 1 }, "id": "VideoGetItem"}
    {"id":"VideoGetItem","jsonrpc":"2.0","result":{"item":{"label":"King Kong","title":"","type":"unknown"}}}
    Array ( [id] => VideoGetItem [jsonrpc] => 2.0 [result] => Array ( [item] => Array ( [label] => King Kong [title] => [type] => unknown ) ) ) 1
    King Kong

    Dann stimmt aber irgendwie etwas nicht. Ich habe den Inhalt in eine Datei namens kodi.php geschrieben und auf meinen Webserver gelegt.
    Dann habe ich diese Datei mit meinem Browser aufgerufen. In meinem Fall http://192.168.1.40/kodi.php
    Als Ergebnis bekomme ich dann den abgespielten Titel von Kodi.
    Das klappt definitiv. Das ist aber auch nur ein ganz einfaches Beispiel. Da ist keine Fehlerbehandlung enthalten.

    Hier ein gaaaaanz einfaches Beispiel: