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/
  • Habe mich inzwischen mal noch ein wenig an Jellyfin versucht und das gerade noch fix bereit gestellt ;)

    Jetzt muss ich aber schon wieder ein wenig an der GUI schrauben, denn es wird immer voller :D

    Aber wie gesagt: Jellyfin jetzt auch erstmal integriert, GUI Anpassung kommt nach ...

  • Ich habe da mal was für plex vorbereitet ;)

    Stelle das aber erstmal nur im test branch / test build bereit. Also wenn jemand das Image docker.io/effex7/kinder:test mal ausprobieren würde wäre das cool! Um das zu nutzen müssen noch die URL korrekt via KT_PLEX_URL gesetzt werden (Slash am Ende nicht vergessen) und KT_PLEX_API_KEY wobei eine Anleitung wie man einen Token bekommt unter https://www.plexopedia.com/plex-media-ser…ral/plex-token/ zu finden ist.

    Freue mich auf Feedback.

    ps: uU muss auch KT_PLEX_TIMEOUT hochgesetzt werden. Ist standardmäßig auf 2 (Sekunden), aber je nach Auslastung kann das ggf zu eng sein.

  • Vielleicht eine etwas blöde Frage, aber was muss ich tun, um es auf einem Raspberry Pi 2 zum laufen zu bekommen?

    Bekomme folgende Fehlermeldung:

    Code
    docker pull effex7/kinder:test
    test: Pulling from effex7/kinder
    no matching manifest for linux/arm/v7 in the manifest list entries
  • Das image wird nur für amd64 (="normale" Desktop/Laptop Rechner) und arm64 (=zB RaspberryPi 5) bereit gestellt.

    Ich hatte das schon mal für ältere arm Architekturen (zB armv7) versucht zu bauen, dabei sind aber leider Fehler geflogen.

    Lange Rede kurzer Sinn: Leider aktuell nicht Raspberry Pi 2 lauffähig.

  • Du könntest noch versuchen es nativ zum laufen zu bringen. Ich vermute zwar dass Du an die selben Probleme stoßen wirst, die mir auch beim Bauen des images begegnet sind ... aber ein Versuch wäre es wert.

    Grober Ablauf wäre:

    • python3 python3-pip, python3-dotenv installieren (vermutlich sudo apt install python3 python3-pip python3-dotenv)
    • git clone https://github.com/FX7/kinder.git
    • python3 -m vent ./app && ./app/bin/activate && pip install -r ./app/requirements.txt
    • python3 ./app/app.py

    Wie gesagt, dass ist nur grob skitziert und letztlich nur quick und dirty dass was das Dockerimage macht. Beim Erstellen des Images treten die Probleme beim pip install auf.

    Schreibe gerne falls Du noch Fragen dazu hast.

    Ansonsten halt einfach einem beliebigen amd64 (also Desktop / Laptop) Rechner starten ;)

  • Fenderman Habe mich nochmal ein wenig dran versucht, das ganze auch für armv7 bereit zu stellen. Ist jetzt nicht wirklich die schönste Lösung (mal gucken ob ich das nochmal sauber angehe), aber der test build ( docker.io/effex7/kinder:test ) sollte jetzt auch armv7 lauffähig sein. Ich konnte nur gucken dass es baut, starten konnte ich es nicht. Also wenn Du das mal ausprobieren würdest und mir sagst ob es geklappt hat, wäre cool. :)

  • Ich weiß, ich bin zu ungeduldig :D

    Aber da ich jetzt doch zu viele Dinge in der pipeline habe und hier sonst die Übersicht über meine branches verliere, habe ich jetzt alles gemerged.

    Das heißt folgende Dinge sind jetzt gemerged und in main/latest verfügbar:

    • Plex; Nutzung siehe https://github.com/FX7/kinder/blob/main/README.md
    • Intere Überarbeitung der GUI, um wiederum:
    • GUI zum Erstellen einer Session überarbeitet. Hauptziel ist es mehr Platz zu schaffen für weitere (kommende) Einstellungen
    • armv7 Image in latest verfügbar. In diesem Image sind nicht alle Features verfügbar, hauptsächlich das Abrufen von lokalen Bildern via Samba
    • Im Zuge dessen die Abhängigkeiten generell ein wenig aufgeräumt. Hier waren noch 2 - 3 Abhängigkeiten, die gar nicht benötigt wurden

    Ich hoffe, das ich vor allem durch Punkt 2, die interne Überarbeitung der GUI nichts (oder zumindest nicht zu viel ;) ) kaputt gemacht habe. Bitte gebt mir bescheid, wenn sich hier Fehler eingeschlichen haben.

    Fenderman Du brauchst dann also gar nicht mehr das :test image zu nehmen / testen, sondern kannst direkt mit dem :latest starten.

    bennySB Auch Du kannst jetzt zum testen von Plex das :latest image nehmen.

    Freue mich wie immer auf euer Feedback!

  • Guten Morgen :)

    Was wäre ein Sonntag ohne frisches K-inder update? Richtig: Ein ausgeschlafener :D

    Aber anstatt ausschlafen ein neues Feature: Der Startscreen (also Erstellen / Joinen einer Session) hat nochmal ein paar kleinere Änderungen erfahren:

    • Create / Join Tabs sind nun immer zu sehen. Join Tab ist ohne vorhandene Session aber inaktiv (= nicht anklickbar)
    • Nachdem jemand anderes eine Session erstellt hat
      • Wird der Join Tab aktiviert (und die Auswahlliste der vorhandenen Sessions entsprechend aktualisiert)
      • Wird ein Toast angezeigt über den man direkt die soeben erstellte Session joinen kann
    • Minimale Änderungen in der Platzierung des Info-Icons und des Create/Join Buttons. Create/Join Button jetzt unten rechts, damit besser (für Rechtshänder) auf Handydisplay erreichbar.
  • Ich habs jetzt zum Laufen bekommen und kann das Webinterface erreichen und auch der Plex Zugriff scheint zu funktionieren:

    Code
    2025-07-28 19:57:19 - api.sources.plex - INFO - Plex API reachable => will be enabled!


    Allerdings zeigt mir das Web Interface unten folgende Fehlermeldung an:

    Code
    General Master error!
    Received a big error!
    Please double check your settings in KODi (ist the api enabled?)
    Are all environment variables correct, are the credentials right?
    
    Internal Server Error
    The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

    In den Logs sieht man:

  • Das hat geholfen! Es kommt zwar immer noch ab und zu die erste Fehlermeldung von meinem Post aber ich komme in den Voting Prozess.

    Gibt es denn die Möglichkeit die Auswahl auf ungesehene Filme zu beschränken?

  • Moin.

    Schön dass es jetzt grundsätzlich geht. Was genau meinst Du mit "Es kommt zwar immer noch ab und zu die erste Fehlermeldung"? War doch alles Timeout bedingt, oder?

    Zu Deiner Frage bzgl gesehen Status: Das ging bei KODi halt sehr direkt und einfach (und ist dort auch entsprechend umgesetzt), bei allen anderen selbsthostern (emby, jellyfin und plex) ist das ein wenig komplizierter, da dies alles mutli User Systeme sind. Dass heißt hier müsste irgendwie erstmal festgelegt werden was als "gesehen" gewertet wird. Irgendein User? Alle User? Ein zuvor festgelegter User? Pro Session, nur Umgebungsvariable?

    Wenn das geklärt wäre, müsste ich es auch noch für jedes System einzeln implementieren. Da ich aber keines der Systeme nutze (wenn dann vlt jellyfin) ist das erstmal Recht weit hinten auf der Agenda ...

  • Da ich podman user bin, habe ich auf den verwendeten Nutzer im container nicht so sehr acht gegeben. Da dass bei docker aber durchaus noch eher von Relevanz ist, habe ich mal noch ein "rootless" image bereit gestellt.

    Es gibt jetzt also das docker.io/effex7/kinder:latest und docker.io/effex7/kinder:latest-rootless image. Wenn man frisch anfängt empfiehlt es sich durchaus das rootless image zu nutzen. Hier muss man natürlich beim binden von Verzeichnissen auf die Rechte achten. Falls man vom latest auf das latest-rootless wechseln möchte muss man ebenfalls ggf. die Rechte entsprechend richtig setzen.

    Viel Spaß beim weiteren K-indern ;)

  • Soll weiter zwischen rootless und latest Image unterschieden werden? 3

    1. Nein, dass kann gerne zu einem Image zusammengeführt werden. (3) 100%
    2. Ja, bitte weiterhin zwei Images anbieten. (0) 0%

    Ich hatte ja in meinem vorherigen Post geschrieben, dass ich nun auch ein rootless Image bereit stelle.

    Eigentlich gibt es nur zwei Gründe, warum ich weiterhin dass "rootfull" Image anbieten sollte:

    • Migration. Das heißt Leute die ggf ihren Cache weiter nutzen wollen oder ihre logs ... Halt bisherige Daten müssten beim umstellen auf rootless ggf Zugriffsrechte anpassen.
    • Ähnliches Spiel beim Aufsetzen. Beim rootless muss man ggf. dafür sorgen, dass die Rechte der eingebundenen Verzeichnisse korrekt gesetzt sind.

    Ich habe eine Prüfung eingebaut die den Start mit entsprechender Fehlermeldung quittiert. Allerdings keine automatisches setzen von Rechten. Dass geht auch nicht ohne weiteres bzw kommt hier wieder podman vs docker zum tragen.

    Daher also hier die kleine Umfrage, wie es hier im Forum aussieht? Würde dass in eurem Setup ggf zu Verwerfungen führen wenn ich das umstelle?

  • Ich habe gerade nochmal ein kleines Update bereit gestellt.

    Die Overlays sind nun pro Session setzbar. Die bisherigen Umgebungsvariablen dienen nun als Vorgabe für die Session Auswahl.

    Zuvor hatte ich auch noch das "Join session" ein wenig überarbeitet. Dort habe ich (eher schlecht als Recht), eine etwas detailiertere Übersicht, was für einer Session man da beitritt (sprich: Wer hat sie erstellt, welche Filter greifen ...)

  • Also ich habe jetzt das extra rootless image entfernt. das :latest ist jetzt rootless. Wie gesagt, hier muss man ggf auf korrektes setzen der Rechte achten.

    Ich habe übrigens die Liste der zufälligen Benutzernamen extrahiert. Diese werden in /data bereitgestellt. Das heißt ihr könnt dort nun auch eure eigenen zufälligen Namen hinterlegen ;)

    Ausserdem bei den pro Session zu setzenden Overlays noch ein paar mini Anpassungen in der GUI, sowie eine Umgebungsvariable KT_FILTER_HIDE_OVERLAY um die Einstellungen auszublenden.

  • Ein nächstes größeres Update steht an.

    Die Steuerung der Filmliste für Streamer ist nun deutlich mächtiger. Während bisher eigentlich nur die zu Grunde liegende Sortierung beeinflusst werden konnte, kann man nun noch deutlich mehr beeinflussen. Folgende Einstellungen (= Umgebungsvariablen) gibt es nun:

    • KT_TMDB_API_DISCOVER_SORT_BY : Gab es bisher schon. Entspricht der basis Sortierung. Vorgabe ist popularity. Gültige Wete sind: popularity|original_title|revenue|primary_release_date|title|vote_average|vote_count
    • KT_TMDB_API_DISCOVER_SORT_ORDER : Auf oder absteigend sortieren. Vorgabe ist absteigend.
    • KT_TMDB_API_DISCOVER_RELEASE_YEAR_START : Filme die vor diesem Jahr veröffentlicht wurden, werden ignoriert. Vorgabe ist 1900
    • KT_TMDB_API_DISCOVER_RELEASE_YEAR_END : Filme die nach diesem Jahr veröffentlicht wurden, werden ignoriert. Vorgabe ist nicht gesetzt, was wiederum dem aktuellen Jahr entspricht
    • KT_TMDB_API_DISCOVER_VOTE_AVERAGE : Filme unter diesem Bewertungsdurchschnitt werden ignoriert. Vorgabe ist leer, was keiner Beschränkung entspricht
    • KT_TMDB_API_DISCOVER_VOTE_COUNT : Filme mit weniger als so vielen Bewertungen werden ignoriert. Vorgabe ist leer, was keiner Beschränkung entspricht
    • KT_TMDB_API_DISCOVER_TOTAL : Gesamtanzahl der zur Wahl zu stellenden Filme. Vorgabe ist 200

    Im Zuge dieser Änderungen habe ich das ganze auch als Session basierte Einstellung (anstatt Systemweit) hinterlegt. Allerdings habe ich noch keine GUI dafür bereit gestellt. Das kommt "demnächst".

    Das heißt aber, dass die bisherigen Datenbanken leider (mal wieder :/ ) verworfen werden müssen. Ich habe aber die Struktur zum einen so umgestellt, dass ich in Zukunft deutlich felxibler auf Datenbankänderungen reagieren kann und beim starten der Applikation bekommt man nun ggf. einen Hinweis (im Log), dass man die Datenbank verwerfen muss.

    Wenn man aber zB nur Filme der 1980er und 1990er sehen will, dann setzt man KT_TMDB_API_DISCOVER_RELEASE_YEAR_START auf 1980, KT_TMDB_API_DISCOVER_RELEASE_YEAR_END auf 1990. Will man nur Filme mit mindestens 7 Punkten (tmdb vergibt Punkte zwischen 0 und 10) sehen will, setzt man KT_TMDB_API_DISCOVER_VOTE_AVERAGE auf 7. Hier sollen aber vlt nur Filme mit mindestens 10 Bewertungen berücksichtigt werden, also setzt man KT_TMDB_API_DISCOVER_VOTE_COUNT auf 10.

    Wie gesagt: Eine "schlaue" GUI dafür gibt es noch nicht, also auch wenn das gnaze bereits pro Session gespeichert wird, kann man das ganze bisher nur Instanzweit beeinflussen.

    Viel Spaß beim "tunen" eurer Einstellungen ;)

  • Und noch ein kleines Update fertig gestellt. Jetzt gibt es noch einen share Link, über den man einen direkten Link zur Session weitergeben kann.

    Mit einem Desktop Browser kopiert sich der Link lediglich in die Zwischenablage. Mit einem Handy Browser öffnet sich ggf. das "Teilen" Menü. Das geht aber wiederum nur bei https Verbindungen.

    Über den Link joined man direkt in die entsprechende Session. Der Nutzername wird dabei ggf. zufällig generiert. ggf heißt: Sollte man zuvor bereits einer Session beigewohnt haben, wird dieser Nutzername genommen.

Jetzt mitmachen!

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