Tinder für Kodi -> K-inder

Am Samstag (06.09.25) Vormittag werde ich ein Update der Forensoftware (inkl. aller Plugins) durchführen. Das Forum wird deshalb auf unbestimmte Zeit nicht verfügbar sein. Neuigkeiten wird es im Matrix Chat geben: https://www.kodinerds.net/thread/79927-freischaltung-matrix-chat/
  • Hallo in die Runde.

    Ich bin gerade dabei ein kleines Tool für meine Filmabende mit Freunden und Familie zu erstellen. Und würde mich über Feedback und Unterstützung freuen.

    Worum geht es? Wer kennt es nicht: Man hat eine riesige Auswahl an Filmen, aber sich mit seinen Freunden auf etwas zu einigen gestaltet sich als kompliziert. Und genau hier soll K-inder helfen.

    Mit K-inder kann man eine Abstimmung via Browser (z.B. am Handy) starten und alle Freunde können mitmachen. Jedem werden zufällig Filme aus der eigenen Kodi Datenbank präsentiert und man kann dafür oder dagegen votieren. In einer kleinen Übersicht sieht man die aktuellen Top und Flop Filme (Filme mit den meisten Pro Stimmen und Filme mit den meisten Contra Stimmen).

    Das ganze ist noch in einem sehr frühen Stadium und noch mit ein paar Einschänkungen verbunden. Mit meinem setup läut es aber so weit schon mal. Zu finden ist das ganze aktuell auf github unter https://github.com/FX7/kinder

    Ich würde mich sehr freuen, wenn sich Interessierte hier im Forum finden und sich das mal angucken könnten und mir Feedback geben könnten!

    Wünsche viel Spaß beim nächsten gemeinsamen Filmabend! [ab]

  • Jetzt wird ein fertiges docker image bereit gestellt. Der bisherige Schritt das ganze selbst zu erstellen entfällt also.

    Unter

    docker.io/effex7/kinder:latest

    wird es bereitgestellt. Anleitung im repository ist entsprechend angepasst. Hoffe damit lässt sich arbeiten ;)

  • ja sau cool, danke :) Ich teste das auch mal! Gefällt mir jetzt schon :)

    es sind die kleinen Dinge, alltägliche Taten von gewöhnlichen Leuten, die die Dunkelheit auf Abstand halten. Einfache Taten aus Güte und Liebe.


    Dune HD ATV14 | Pioneer A 504R Bj. 96
    OMV NAS - NAS | Emby Server | LogitechMediaServer
    3x Logitech SqueezeBox & 3x RasPi PiCorePlayer
    Unifi Netzwerk | Sophos XGS Firewall | Agfeo TK | Kentix Security
    Loxone SmartHome

  • Im Repository habe ich lediglich den Befehl zum "normalen" Starten hinterlegt.

    docker run -it --rm -e KT_KODI_USERNAME=kodi -e KT_KODI_PASSWORD=kodi -e KT_KODI_HOST=192.168.0.100:8080 -e KT_SMB_USER=movies -e KT_SMB_PASSWORD=movies -p 5000:5000 docker.io/effex7/kinder:latest

    Um ein paar mehr Log-Infos zu sehen kann das Log-Level erhöt werden. Dazu muss die folgende environment Variable hinzugefügt werden:

    -e KT_LOG_LEVEL=DEBUG

    Das heißt also der obige Befehl sieht dann wie folgt aus:

    docker run -it --rm -e KT_KODI_USERNAME=kodi -e KT_KODI_PASSWORD=kodi -e KT_KODI_HOST=192.168.0.100:8080 -e KT_SMB_USER=movies -e KT_SMB_PASSWORD=movies -e KT_LOG_LEVEL=DEBUG -p 5000:5000 docker.io/effex7/kinder:latest

    Ausserdem wird in dieser Variante bei jedem Start eine neue Datenbank angelegt (das heißt Sessions und die damit verbundenen Votes) bleiben nicht über Starts erhalten. Wer das ändern möchte (und somit auch gleich Zugriff auf die Log-Datei erhällt) muss noch den folgenden Parameter hinzufügen:

    -v ./data:/data

    Hierbei wird vorausgesetzt, dass ihr im Verzeichnis in dem ihr den Befehl ausführt ein Verzeichnis "data" angelegt habt. Dann würde der komplette Befehl also wie folgt aussehen:

    docker run -it --rm -e KT_KODI_USERNAME=kodi -e KT_KODI_PASSWORD=kodi -e KT_KODI_HOST=192.168.0.100:8080 -e KT_SMB_USER=movies -e KT_SMB_PASSWORD=movies -e KT_LOG_LEVEL=DEBUG -v ./data:/data -p 5000:5000 docker.io/effex7/kinder:latest

    Vielen Dank fürs Testen und ich freue mich auf euer Feedback!

  • Hmm. Bedeutet das, Inhalte eigentlich privater Datenbanken miteinander abzugleichen oder gar Inhalte untereinander zu streamen? Puuh. Sehe ich sehr skeptisch.

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Nein. Einfach nur eine interne Webseite die die interne kodi DB abgreift um am Handy zu sagen der Film gefällt und der nicht. Sobald ein "match" entsteht hat man also etwas gefunden das alle sehen wollen.

    Kein streaming oder so.

    Einfach nur eine Abstimmungsseite für welchen Film schauen wir heute

    es sind die kleinen Dinge, alltägliche Taten von gewöhnlichen Leuten, die die Dunkelheit auf Abstand halten. Einfache Taten aus Güte und Liebe.


    Dune HD ATV14 | Pioneer A 504R Bj. 96
    OMV NAS - NAS | Emby Server | LogitechMediaServer
    3x Logitech SqueezeBox & 3x RasPi PiCorePlayer
    Unifi Netzwerk | Sophos XGS Firewall | Agfeo TK | Kentix Security
    Loxone SmartHome

  • Hmm. Bedeutet das, Inhalte eigentlich privater Datenbanken miteinander abzugleichen oder gar Inhalte untereinander zu streamen? Puuh. Sehe ich sehr skeptisch.

    Nein, hier wird weder etwas extern gespeichert, noch nach extern "gestreamt". K-inder streamt die Videos nirgendwohin, sondern zeigt lediglich die Filmtitel (sofern möglich via Poster) zur Abstimmung. Hierzu wird auf die lokale Kodi-API zugegriffen und das ganze wird natürlich auch nur lokal verfügbar gemacht.

    Theoretisch ist natürlich mit entsprechender Netzwerk-Expertise auch ein Zugriff von extern möglich. Das hat aber nichts mit K-inder zu tun, sondern ist eine Eigenschaft von IP-Netzwerken, NAT, Portforwarding etc. im allgemeinen.

    Also nochmal klar und deutlich: Ich (oder sonst jemand ausserhalb eures Netzwerkes) bekommt keinen Zugriff auf eure KODi Datenbank! Nichts wird "nach Hause telefoniert" und es werden keinerlei Änderungen an eurer KODi Datenbank vorgenommen!

  • Nein. Einfach nur eine interne Webseite die die interne kodi DB abgreift um am Handy zu sagen der Film gefällt und der nicht. Sobald ein "match" entsteht hat man also etwas gefunden das alle sehen wollen.

    Kein streaming oder so.

    Einfach nur eine Abstimmungsseite für welchen Film schauen wir heute

    Danke für die Klarstellung ... da warst Du schneller als ich ;)

  • Wofür braucht man da denn smb? Sollte doch alles über die API gehen oder nicht? Ansonsten coole Idee 👍

    Zunächst mal: Braucht man aller Voraussicht nach nicht.

    Allerdings sind meine Filme über ein Samba-Share in Kodi eingebunden. Die Query an die Kodi Api sieht wie folgt aus:

    Code
    {
      "jsonrpc": "2.0",
      "method": "VideoLibrary.GetMovieDetails",
      "params": {
        "movieid": 0,
        "properties": ["title", "plot", "thumbnail", "year", "genre", "art"]
      },
      "id": 1
    }

    (movieid wird natürlich entsprechend korrekt gesetzt). Bei thumbnail bekomme ich dort Samba URLs zurück. Da ich nur samba URLs bekomme (wie gesagt: Bei mir sind die Filme per Samba eingebunden) kommt da nichts anderes zurück und entsprechend kann ich da nichts anderes testen ... Nicht zuletzt daher die Bitte um Hilfe ;)

    Und bevor Du jetzt sagst: "Und was ist mit 'art'?". Ja, das gucke ich mir auch gerade an. Da kommt das folgende JSON zurück:

    Code
    {
     'fanart': 'http url,
     'icon': 'image://DefaultVideo.png/',
     'poster': 'http url'
    }

    Sprich: externe URLs für die Bilder. So weit so gut. Aber bei mir geben die alle nur ein 404 zurück :-/

    Lange Rede kurzer Sinn: Wenn Du weißt, mit welcher Query ich von Kodi die "richtigen" Bilder zurück bekomme, dann bitte her mit der Info :)

  • Ein wenig konnte ich es gerade noch eingrenzen. Es scheint, dass vor allem bei älteren Filmen (also Filme die ich schon vor längerer Zeit zu Kodi hinzugefügt habe) dort tote URLs zurück kommen. Bei einigen neueren Filmen kommen dort valide URLs zurück.

    Lange Rede kurzer Sinn: Ich werde gleich mal eine Version bereit stellen, die zunächt die URL aus dem 'thumbnail' Feld versucht abzufragen. Sollte diese nicht vorhanden sein / es nicht klappen, wird die URL aus art.poster versucht aufzulösen :)

    Dann bräuchte man also aller Voraussicht nach kein Samba mehr für die Bilder.

    Ich hoffe weiter auf eure Unterstützung :D Vielen Dank auf jeden Fall schon mal so weit!

  • Wenn Artwork keine valide URL zurückbringt - also beim Aufruf derselben einen 404 bringt - kannst Du anhand der TMBD-Id (die sollte ja existent sein) eben die TMDB-API nach Artwork befragen. Durch die TMBD-Id ist die Zuordnung auch recht eindeutig.

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Wenn Artwork keine valide URL zurückbringt - also beim Aufruf derselben einen 404 bringt - kannst Du anhand der TMBD-Id (die sollte ja existent sein) eben die TMDB-API nach Artwork befragen. Durch die TMBD-Id ist die Zuordnung auch recht eindeutig.

    Danke für den Tip. Das gucke ich mir bei Gelegenheit nochmal an ... aber nicht mehr heute ;)

  • Gerade eine neue Version bereitgestellt:

    Es können nun "disabled genres" ausgewählt werden. Das heißt Filme mit diesem Genre werden nicht zur Auswahl gestellt. Gerade hier in der Familienrunde sehr praktisch, so können z.B. die Horror und Kriegsfilme gleich aussortiert werden ;)

  • Danke für den Tip. Das gucke ich mir bei Gelegenheit nochmal an ... aber nicht mehr heute ;)

    PvD Prinzipiell eine gute Idee, aber ich habe bisher nicht herausgefunden, wie das geht. In der Doku habe ich das nicht gefunden und chatgpt bringt mir immer wieder neue Vorschläge ... die alle nicht funktionieren :D Also wenn Du da mehr weißt, dann gerne raus mit der Sprache.

  • Coole Sache, ich bleib mal hier bei um den (K)koreanischen-inder zu testen. [af]


    (sorry, der wortwitz musste sein)

    NAS: Gehäuse: Jonsbo G3, Mainboard: MSI B460M PRO, CPU: Intel Pentium G6400, OS: OMV 6

    Client: NVIDIA Shield Pro 2019

  • Zunächst brauchst Du einen API-Key, ohne dem kannst Du keine Anfragen machen. Dann habe ich das seinerzeit mal für das PVR Artwork Modul programmiert, welches sich für TV-Sendungen die passenden Poster besorgt. Den TMDB-Wrapper findest Du hier: https://github.com/b-jesch/script…ter/lib/tmdb.py Einstiegspunkt ist diese Funktion: https://github.com/b-jesch/script…etadata.py#L443

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Gerade nochmal ein kleines Update bereit gestellt :)

    • Der Benutzername wird nun für 14 Tage in einem cookie gespeichert. Das heißt man muss ihn nicht zu jeder neuen Session eingeben, oder nach einem reload / rejoin.
    • Die Top/Flop Sortierung wurde etwas angepasst. Während aktuell der erste match immer oben blieb, wird nun immer der neueste match angezeigt. Wenn man also (aus welchen Gründen auch immer) immer weiter voted, bleibt diese Liste nicht mehr starr, sondern ändert sich laufend.

    Für den letzten Punkt musste die Datenbank ein wenig angepasst werden. Das heißt eine bereits vorhandene Datenbank ist damit nicht mehr kompatibel.

Jetzt mitmachen!

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