I have a large photo collection with lots of metadata that I wanted the kodi slideshow screensaver to display. With lots reading, experimenting, and trial-and-error, I’ve finally got a reasonable system that shows what I was hoping for.
The main file for the slideshow screensaver is located (on windows) in \Users\%Username%\AppData\Roaming\Kodi\addons\screensaver.picture.slideshow\resources\lib and is called gui.py
If you know some python you can make all kinds of modifications to this file. Below are what I made to show information about the author, camera, and where and when the picture was taken. I get the location from the folder name as I keep all my photos in a folder with an 8‑character date at the start (YY-MM-DD) followed by the place or event name.
after line 163, added the following null values for camera and author
1 2 | camera = ‘unknown camera’ artist = ‘unknown’ |
after line 173, added the following to get the camera and author from exif
1 2 3 4 | if exiftags.has_key(‘Image Model’): camera = str(exiftags[‘Image Model’]).decode(‘utf‑8’) if exiftags.has_key(‘Image Artist’): artist = str(exiftags[‘Image Artist’]).decode(‘utf‑8’) |
changed line 183 to start the process or reformatting the date
1 | time = datetime{10:].split(‘:’) |
replaced line 187 to create a better formatted date
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | if date[1] == ‘01’: date[1] = ‘Jan’ elif date[1] == ‘02’: date[1] = ‘Feb’ elif date[1] == ‘03’: date[1] = ‘Mar’ elif date[1] == ‘04’: date[1] = ‘Apr’ elif date[1] == ‘05’: date[1] = ‘May’ elif date[1] == ‘06’: date[1] = ‘Jun’ elif date[1] == ‘07’: date[1] = ‘Jul’ elif date[1] == ‘08’: date[1] = ‘Aug’ elif date[1] == ‘09’: date[1] = ‘Sept’ elif date[1] == ‘10’: date[1] = ‘Oct’ elif date[1] == ‘11’: date[1] = ‘Nov’ elif date[1] == ‘12’: date[1] = ‘Dec’ datetime = date[2] + ‘-’ + date[1] + ‘-’ + date[0] + ’ at’ + time[0] + ‘:’ + time[1] |
replaced line 228 to output the new data
1 2 3 4 5 | ROOT, FOLDER = os.path.split(os.path.dirname(img[0])) galname = FOLDER if (galname or ‘x’)[1].isdigit(): galname = FOLDER[9:] self.datelabel.setLabel(galname + ‘. Taken with ’ + camera + ’ on ’ + datetime + ‘. © ’ + artist + ‘.’) |
Think we've missed something? Let us know by commenting below. If you would like to subscribe please use the subscribe link on the menu at the top right. You can also share this with your friends by using the social links below. Cheers.
Leave a Reply