KodiDisplayInfo - Movies and music infos on TFT displays

KodiDisplyInfo is a little Python/Pygame program, which the Kodi Media Center JSON-RPC API uses to display actually information of the just running movies or music on the little TFT Display. Due to the disposition of limited quantity of pixels on the display, often 320x240 on 2.8" or 480x320 on 3.5" displays, only a few information such as runtime and title or thumbnail are displayed.

Startscreen

Logo of Kodi
and the time.

Runtime

Top: Current time, end time.
Middle: Runtime and length.
Bottom: Title.

Movie thumbnail

Shows posters and times

Music thumbnail

Shows cover and time data

Application example: Mediaplayer Box with Kodi and Raspberry Pi or UP Board

MediaPlayer Box hardware 2014:
Raspberry Pi 2 B + TinyLCD 3.5" + OpenDisplayCase + Hard drive.

Raspberry Pi - Mediaplayer Box

Kodi and KodiDisplayInfo
running parallel on the
Raspberry Pi or UP Board.

MediaPlayer Box hardware 2016:
UP Board + Adafruit PiTFT 3.5" + OpenDisplayCase + Hard drive.

UP Board - Mediaplayer Box

Installation guidelines

System requirements

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

or for Python 3

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

Quellcode

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

Settings config.txt

Change into the (sub)-directory "KodiDisplayInfo" and rename the file "sample.config.txt" to "config.txt". Then edit the file with an editor.

[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

# 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

Calling

python displayinfo.py

The call does not work via SSH! (pygame.error: Unable to open a console terminal)

NO KODI ACCESS! The webserver of Kodi must be activated and the access settings must be correct.

To run "KodiDisplayInfo" and "Kodi" parallel at boot you must setup a startup script.

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

Comments:

Allowed HTML-Tags: <strong>, <a href="">, <em>
Info: Comment will be shown shortly after processing.
  • icon_user

    18.08.2023 13:58 - maht

    Tested it with raspberry pi4, raspbian 64bit and noname 3.5 tft (waveshare type), and it still work. Nontheless, i had to struggle a bit, find out that using this line at the begining of the script :

     

    os.putenv('SDL_VIDEODRIVER', 'fbcon')

     

    to force use of the tft screen make it works ! (without this line, pygame opened a pygame window in raspbian.)

    It might help someone.

  • icon_user

    29.03.2021 09:57 - Mateh

    It doesnt work for RPI 3.5 inch display XTP 2046

  • icon_user

    11.12.2017 11:59 - MarbleMad

    very thanks for your KodiDisplayInfo python/pygame software. Work fine in recalbox and good base for my recalbox ultimate box project with spi infos screen ;)

  • icon_user

    04.05.2017 13:01 - Dave

    Hi Björn, I've followed the steps you gave. The program is working and giving the correct Kodi information. However this is not shown on the little TFT Display, but in a separate python/pygame window in Ubuntu. How do I get it to be displayed on the TFT Display? Bye the way, I noticed that my sound is also no longer working. So perhaps there is a problem with the UP board kernel.

  • icon_user

    05.05.2017 13:11 - Björn

    I have currently no device here to test UP-Board and Ubuntu with KodiDisplayInfo. In two weeks I can look.

  • icon_user

    11.04.2017 00:00 - Sergh

    Hi there. It is working fine. No matter if I define fb1 or fb2 in the config file, the display is always showing on primary display (HDMI). TFT has no picture. Could you assist with that please? Tnanks in advance.

  • icon_user

    14.01.2017 08:59 - Ivars Borsteins

    Is it possible to run kodi on another PC than KodiDisplayInfo?

    I have tried setting webserver to IP of my kodi system but it isnt connecting.

  • icon_user

    14.01.2017 09:03 - Björn

    I had also tried this. On the system where Kodi ran, the firewall was the problem.

  • icon_user

    31.12.2016 22:20 - Marty Duncan

    Would this offer control of Kodi if I were using an adafruit 3.5 tft with touch for things like pressing play and pause or fast forward?

  • icon_user

    01.01.2017 09:57 - Björn

    No, when kodi is started, the touch function is missing on the small tft.

  • icon_user

    31.12.2016 05:33 - Uni

    Is it possible to get Kodi to output to dev/fb1 instead of dev/fb0? I want to play movies on the TFT.

  • icon_user

    08.11.2016 19:51 - Kenneth Ekman

    Hi,

    I have been looking out for something like this, but my main usecase is for showing the currently playing song info while steraming music from my NAS with Kodi (17).

    Does it support showing info about artist / album / song while playing music?

    / Kenneth

  • icon_user

    09.11.2016 09:05 - Björn

    Currently, there is no separate audio info display.

  • icon_user

    10.11.2016 20:46 - Kenneth Ekman

    Do you know if the info is extractable from Kodi? I am a programmer and have used a bit of Python....