KodiDisplayInfo - Film und Musik Infos auf einem TFT Displays

KodiDisplayInfo ist ein kleines Python/Pygame Programm, welches die Kodi Media Center JSON-RPC API nutzt um aktuelle Information vom gerade laufenden Film oder Musik auf einem kleinen TFT Display anzuzeigen. Da auf den Displays nur eine begrenzte Anzahl von Pixeln zur Verfügung stehen, meist 320x240 bei 2.8" bzw. 480x320 bei 3.5" Displays, werden nur wenige Information wie Laufzeit und Titel oder Thumbnail angezeigt.

Startscreen

Aktuelles Logo von Kodi
und die Uhrzeit.

Laufzeit

Oben: Aktuelle Uhrzeit, Ende.
Mitte: Laufzeit und Länge.
Unten: Titel.

Film Thumbnail

Zeigt Poster und Zeitangaben

Musik Thumbnail

Zeigt Cover und Zeitangaben

Anwendungsbeispiele: Mediaplayer Box mit Kodi und Raspberry Pi oder UP Board

Mediaplayer Box Hardware 2014/2016/2019:
Raspberry Pi 2/3/4 B + TinyLCD 3.5" + OpenDisplayCase + Festplatte.

Raspberry Pi - Mediaplayer Box

Kodi und KodiDisplayInfo
laufen parallel auf dem
Rapberry Pi oder UP Board.

Mediaplayer Box Hardware 2016:
UP Board + Adafruit PiTFT 3.5" + OpenDisplayCase + Festplatte.

UP Board - Mediaplayer Box

Installationsanleitung

Systemvoraussetzungen

  • Geeignetes Endgerät z.B. Raspberry Pi 5
  • 2.8, 3.5, 4.0 (320x240 bis 480x320) TFT IPS Display: Waveshare 4.0" SPI 125MHz
  • Kodi Media Center
    - v20 Nexus (Matrix, Leia, Krypton, Jarvis, Isengard, Helix, Gotham, Frodo)
    - inkl. Webserver - JSON-RPC API
  • Packete: git, python, pygame
pi@raspberrypi ~ $ sudo apt-get -y install git python3 python3-pygame python3-pil

oder für old Python 2

pi@raspberrypi ~ $ sudo apt-get -y install git python python-pygame python-pil

Quellcode

git clone https://github.com/bjoern-reichert/KodiDisplayInfo.git

Einstellungen config.txt

Wechsel in das (Unter-)Verzeichnis "KodiDisplayInfo" und benenne die Datei "sample.config.txt" in "config.txt" um. Danach mit einem Editor die Datei bearbeiten.

[CONFIG]
#Screen Modus: time (default), thumbnail
SCREENMODUS_VIDEO = thumbnail
#Time format: minutes (default), short (mm:ss), long (hh:mm:ss)
FORMATTIME_VIDEO = short

#Screen Modus: thumbnail (default)
SCREENMODUS_AUDIO = thumbnail
#Time format: short (mm:ss) (default), long (hh:mm:ss)
FORMATTIME_AUDIO = short

#Disk size {"NAME":"PATH"} -> JSON-Format: {"HDD1":"/mnt/HDFilme"}
LOCALMOUNTPATHS = {}

#Count Media (video,songs,album) {"NAME":"MEDIA"} -> JSON-Format: {"Movies":"video"}
LOCALMEDIATOTAL = {}

[DISPLAY]
# Possible resolutions: 320x240 (default) or 480x272 or 480x320
RESOLUTION = 480x320
# Set to your Framebuffer /dev/fb1 or /dev/fb2
FBDEV = /dev/fb1
# Write to fbdev: DIRECT or SDL_FBDEV (old)
WRITETODISPLAY = DIRECT

# Setting find unter: Kodi : System → Settings → Services → Webserver → Allow control of Kodi via HTTP
[KODI_WEBSERVER]
# Set it to localhost or IP (192.168.2.101)
HOST = localhost
# Port of the Kodi Webserver
PORT = 8080
# Username
USER = kodi
# Password
PASS = 

[COLOR]
# Color for background
BLACK = 000000
# Color for font
WHITE = FFFFFF
# Color for error message
RED = FF0000
# Color for progress bar background
GREEN = 87D31E
# Color for progress bar improvement
ORANGE = E07018

Aufruf

python displayinfo.py

Der Aufruf funktioniert nicht über SSH! (pygame.error: Unable to open a console terminal)

NO KODI ACCESS! Der Webserver von Kodi muss aktiviert werden und die Zugangs-Einstellungen müssen stimmen.

Um beim booten "KodiDisplayInfo" und "Kodi" parallel laufen zu lassen wird ein Start-Script benötigt.

Big Bunny Buck - (c) copyright 2008, Blender Foundation / www.bigbuckbunny.org

Kommentare:

Erlaubte HTML-Tags: <strong>, <a href="">, <em>
Info: Kommentar wird nach Bearbeitung zeitnah freigeschaltet.
  • icon_user

    05.04.2021 17:01 - Peter

    Hallo Björn,

    Erst mal danke für das tolle KodiDisplayInfo. Habe das jetzt mit meinem ausgedienten joy-it 3,5" Display umgesetzt. Ich habe meine mp3's schön mit Tag's und Bildern gepflegt. Komisch ist, dass nur bei den wenigsten CD's die Thumbnails angezeigt werden. Was sind die Voraussetzungen, dass die Bilder angezeigt werden (Format, Grösse, Auflösung)?

    Danke für Deine Antwort

    Peter

  • icon_user

    06.04.2021 19:43 - Björn

    hi, ich benutze eigentlich nur den Film-Bereich. Was bei Musik Kodi in die DB unter thumbnail dann rein schreibt / liest müsste ich mir mal anschauen - liegt schon 5 Jahre zurück als ich mir dies angeschaut habe :).

    Anmerkung: Das Cover muss als folder.jpg im Ordner drin liegen.

  • icon_user

    05.09.2018 07:12 - Ronny

    Hallo, genau das würde ich gerne unter Libreelec zum laufen bringen, das problem ist das apt-get unter Libreelec nicht zugelassen wird. Gibt es einen Weg dies zu umgehen?

  • icon_user

    04.07.2018 19:28 - matthias

    hallo,

    hab das nach anleitung installiert. /dev/fb1 ist auch vorhanden. aber er zeigt auf dem display nichts an. stattdessen geht immer ein fenster auf dem hdmi bildschirm auf, mit dem inhalt der auf dem adafruit angezeigt werden soll.

    hab ich da irgendwas vergessen ?

  • icon_user

    11.07.2018 17:29 - Björn

    Dies ist korrekt, vom Desktop aus lässt sich dies nicht starten, Du benötigst ein startskript wir z.B. hier erklärt: Autostart Skript was beim booten dies erledigt.

  • icon_user

    09.04.2018 18:28 - Max

    Hallo. So etwas ähnliches suche ich! Kann man das Ganze(abgeändert?) auch für einen LCD der 2 oder 3 x 16 Zeilen darstellen kann nutzen?

  • icon_user

    11.04.2018 10:48 - Björn

    Nein, KodiDisplayInfo ist graphisch für TFT Display ausgerichtet. Das was Du suchst ist wahrscheinlich LCDproc.

  • icon_user

    14.03.2018 09:56 - Chris

    Hallo! Toll was Du da gezaubert hast. Kennst Du dieses Projekt: github.com/vitalogy/script.kodisplay

    Der dortige Autor hat glaublich einen anderen Ansatz, aber bringt offenbar auch Senderlogos, Temparatur und Fanart auf den Display. So wie ich die Lösung von viatology verstanden habe, muss aber Kodi und der Display auf dem selben Raspi laufen (was ich nicht so toll finde). So wie ich dein script verstanden habe, kann es sich bei Kodi und den "DisplayRaspi" um zwei unterschiedliche Maschinen handeln (was ich weit besser finde), da du das ganze über den webserver gelöst hast.

    Vielleicht finden sich in dem Projekt von viatology ansätze die du verwenden kannst um weitere infos (Temparatur,Fanart und Senderlogos) am Display darstellen zu können

  • icon_user

    15.03.2018 21:21 - Björn

    Das Projekt von vitalogy ist ein Kodi Addon. Ja, Kodi und KodiDisplayInfo kann auf der selben bzw. auch auf unterschiedlichen Endgeräten laufen - dazu sind die entsprechenden Einstellungen in der config.txt unter [KODI_WEBSERVER] vorhanden. PVR habe ich keine Test Möglichkeit zwecks Senderlogos und die weiteren freien Flächen sind mit anderen Infos verplant.

  • icon_user

    13.03.2018 19:25 - Björn

    Ich habe keine Funktionen/Buttons etc. integriert, da wenn KodiDisplayInfo und Kodi auf dem selben SBC gestartet werden, fehlt die Touch-Funktion auf dem kleinen TFT.

  • icon_user

    13.03.2018 22:11 - Mofapilot

    Ich wollte ein Radio bauen, bei dem der kleine LCD die Hauptbedienfläche ist, wäre dann die Touch-Funktion denkbar?

  • icon_user

    09.02.2018 20:20 - Rick Rivers

    Hi, finde deine Seite super. Leider benutzt ich eine aktuelle LibreELEC (official): 8.2.3 (RPi2.arm) Version. Und die kapiert leider keine git befehle. Kann Du mir sagen ob ich die displayinfo.py per Hand auf meinen Pi laden kann. Vielen Dank im Voraus

  • icon_user

    21.09.2017 22:52 - Aiello

    Hallo... Find das echte Sahne was du hier gebaut hast, so stell ich mir das auch vor :), aber leider bekomme ich dies nicht Installiert.. Habe ein Raspberry pi3...und libreelc drauf...kann mir das einer weiter Helfen bitte.. oder habt ihr das in Ubuntu laufen oder so? Würde mich riesig um ein wenig Hilfe freuen... Display ist dieses hier Waveshare 3.5 oder Kuman 3.5 Vielen Dank... LG Aiello

  • icon_user

    22.09.2017 17:58 - Björn

    openlec, libreelec funktionieren die Displays nicht, weil entsprechende Module fehlen. Ich empfehle immer das Raspian für RPi. Ob das Kuman 3.5 schon unter Raspbian Stretch funktioniert weiß ich nicht (habe dieses Display nicht), die Anleitung ist hier github.com/goodtft/LCD-show. Für weitere Probleme/Fragen musste Google fragen!

  • icon_user

    02.05.2017 22:09 - Matze

    Hab alles soweit eingefügt und eingestellt. Nun geht es trotzdem leider nicht.

    Das meldet das System als Fehlermeldung. Was kann ich tun?

    ImportError: No module named pygame

  • icon_user

    26.04.2017 18:24 - icedeath82

    Hi ich bin begeistert... Ich nutze eine ganze Zeit schon LCDHype doch das ist recht umständlich in meiner Konfiguration, mein kleines TFT wollte ich schon immer nutzen und siehe da ich habs gefunden... Ich würde gerne helfen denn es wäre schön wenn das Programm zb den PVR bereich erkennen würde und das Layout ändern würde zb. sender-logo, channel name, die Sendung die läuft... desweiteren wäre es super wenn das Menü angezeigt wird eine Eingabe ich ja nicht mal von Nöten... nur das man weiß wo man rum geistert.... Ich habe vor langer zeit den Entwickler von LCDHype beim plugin für kodi geholfen wäre toll wenn man hier was drehen kann.. ich denke dies hier hat auf dauer großes potenzial.

  • icon_user

    26.04.2017 19:02 - icedeath82

    Bei der Wiedergabe von Files bekomm ich ein Error... kann das jemand bestädigen ?? Kodi 17.1

    log

    Traceback (most recent call last):

    File "displayinfo.py", line 215, in

    main()

    File "displayinfo.py", line 186, in main

    draw_videotime.drawProperties(media_title, time_now, speed, media_time, media_totaltime)

    File "/home/pi/KodiDisplayInfo/classes/DrawToDisplay_VideoTime.py", line 129, in drawProperties

    last_space = video_title.rindex(' ', 0, max_word_count);

    ValueError: substring not found

  • icon_user

    11.02.2017 14:20 - Chris

    Bekomm es einfach nicht zum laufen. Bin genau nach Anleitung vorgegangen, aber bei starten erhalte ich den Fehler : Parse Config

    Traceback (most recent call last):

    File "displayinfo.py", line 132, in

    if configParser.get('DISPLAY', 'FBDEV')!="":

    File "/usr/lib/python2.7/ConfigParser.py", line 330, in get

    raise NoSectionError(section)

    ConfigParser.NoSectionError: No section: 'DISPLAY'

  • icon_user

    10.02.2017 19:33 - Schumi

    Hört sich alles sehr gut an. Genau danach suche ich. Nur schade, das das mit der Bedienung über den Touch nicht funktioniert. Dann wäre alles perfekt. Gibt es so eine Art Tutorial für Dummi`s? Ich habe leider auch nicht den Durchblick bei Linux und Python. Hier wird immer davon erzählt, was man noch aktivieren muss und was man zusätzlich noch benötigt. Muss ich noch einen Treiber für das Display installieren und wenn ja, wohin?

  • icon_user

    20.01.2017 19:58 - Uwe

    Hallo, klasse Sache. Gibt es sowas auch für einen ganz "normalen" TFT Bildschirm, der als zweiter Bildschirm am PC angeschlossen ist? Der Bildschirm wird als VGA Bildschirm am PC an den zweiten Monitorausgang angeschlossen. Das wäre sooo genial... :-)

  • icon_user

    20.01.2017 17:36 - noxx

    Werden auch Menüsbezeichnungen angzeigt, so das man über das Display navigieren kann?

  • icon_user

    20.01.2017 18:51 - Björn

    Nein, wenn KodiDisplayInfo und Kodi auf dem selben SBC gestartet werden, fehlt die Touch-Funktion auf dem kleinen TFT.

  • icon_user

    21.01.2017 10:21 - noxx

    danke. funktioniert nun alles. hatte ein rechte problem, mit sudo python displayinfo.py gehts.

    das display zeigt mir den mauszeiger an, wie wird der deaktiviert?

  • icon_user

    05.01.2017 11:26 - Markus

    Hallo,

    finde dein kleines Programm hier echt super. :-)

    Aber wirst du demnächst die Variante mit der Anzeige der Thumbnails online stellen?

    Gruß, Markus

  • icon_user

    28.12.2016 19:22 - Siggi

    Hi,

    bei mir läuft das Script leider nicht.

    Ich habe in der config.txt folgendes für FBDEV eingrtragen: FBDEV = /dev/fb1

     

    Führe ich das Script nun aus passiert folgendes:

    kodi KodiDisplayInfo # python2 displayinfo.py

    [info] Parse Config

    [info] Screen Setup 320x240

    [info] Start: KodiDisplayInfo

    Traceback (most recent call last):

    File "displayinfo.py", line 214, in

    main()

    File "displayinfo.py", line 147, in main

    screen = pygame.display.set_mode(getattr(draw_default, 'Screen'+_ConfigDefault['display.resolution'])(), 0, 32)

    pygame.error: No available video device

     

    Ich kenne mich nicht gut mit python aus, aber kann es sein das die Option FBDEV aus der config gar nicht geparst wird?

  • icon_user

    05.07.2016 07:15 - Basti

    Hey,

    schöne Sache!

    Hat sich jemand schonmal gedanken gemacht wie man das an einem Normalen PC nutzen könnte? Evtl über usb arduino + display und die daten über serielle Kommunikation rüberschicken? Denkt ihr das das funktionieren könnte?

  • icon_user

    15.03.2016 14:54 - EaZeE

    Hallo Björn,

    weiß nicht ob ich es hier reinschreiben soll, aber ich mach das jetzt einfach mal ganz frech. ;-)

    Ist es denn möglich den Filmtitel in 2 "Zeilen" aufzuteilen oder vielleicht sogar noch besser von rechts nach links scrollen zu lassen? Bei langen Filmtiteln bspw. LiveTV würde das durchaus Sinn machen.

  • icon_user

    16.03.2016 17:32 - Björn

    Der Screen wird jede Sekunde komplett neu gezeichnet, deshalb wird es nichts mit einer Laufschrift.

    Ich schaue mal, das ich eine weitere Konfiguration einbaue, damit der Filmtitel in 2 Zeilen erscheint oder die Schrift minimal kleiner wird.

  • icon_user

    17.03.2016 23:18 - EaZeE

    Danke für dein Feedback!

    Habe auch mal nach diversen Python "Befehlen" gesucht, bekomme es aber momentan nicht richtig hin, den Titel in 2 Teile zu teilen.

  • icon_user

    29.03.2016 12:10 - EaZeE

    Hallo Björn,

    habe jetzt auch noch ein bisschen rumgespielt, habe den Filmtitel jetzt in 3 Zeilen aufgeteilt.

    Habe mich auch mal an der Coveranzeige versucht, aber daran arbeitest du ja bestimmt schon. TV-Logos funktionieren soweit, bloß mit den Cover aus der Bibliothek hapert es noch ein bisschen, aber wie gesagt, ich kann auch kein python programmieren. ;-)

  • icon_user

    04.04.2016 09:07 - Björn

    Habe nun die Option integriert um den Filmtitel in zwei Zeilen aufzuteilen, bei Filmtitel wie "Die Tribute von Panem 3 - Mockingjay" oder "Die Entführung von Bus 657" klappt dies sehr gut.

    Die "Film Thumbnailanzeige" habe ich nur mal Testweise angefangen, das Interesse ist jetzt auch nicht so stark - mal schauen.

  • icon_user

    12.03.2016 16:51 - EaZeE

    Hallo!

    Sehr gute Idee, genau danach habe ich seit langem gesucht. Funktioniert auch alles soweit einwandfrei, nur eins ist mir aufgefallen.

    Bei Live-TV wird der Filmtitel nicht aktualisiert, Zeiten und die errechneten Zeiten werden alle angepasst. Hab mal in den Code geschaut, kann aber im Prinzip kein Python. :-(

    Ist ja alles nicht allzu schwer nachzuvollziehen, aber ich kann nicht sehen warum der Titel nicht aktualisiert wird.

    Hat da jemand eine Idee?

    Danke schonmal! :-)