Kodi-projecten met RSS-feeds
Mediacenter Kodi uitbreiden met RSSfeeds en eigen plug-ins
Ontbrekende bronnen voor video's, audio-podcasts en muziek zijn bij het multimediacenter Kodi makkelijk toe te voegen – het liefst als mooie zelfgemaakte plug-in.
De combinatie van Raspberry Pi en het multimediacenter Kodi maakt van elke tv een smart-tv die je eigen mediaverzameling en allerlei video en audio van internet in de woonkamer afspeelt. Over hoe je de Raspberry Pi met behulp van Kodi of LibreELEC als mediacentrale gebruikt, is op internet genoeg te vinden.
In dit artikel laten we zien hoe je Kodi met eigen plug-ins uitbreidt met online content die bij Kodi (nog) niet beschikbaar is. Op die manier kun je bijna elke online bron toevoegen en afhankelijk van je eigen interesse filteren en sorteren – waarvoor wel enige Python-voorkennis nodig is.
RSS-feeds van podcasts zijn in Kodi ook rechtstreeks als muziek- of videobron toe te voegen, maar een eigen plug-in kan duidelijk meer. Je kunt die bovendien in de officiële Kodi-repository zetten en daardoor ook anderen ervan laten profiteren.
YouTube of RSS
Plug-ins onder Kodi zijn zip-pakketten met een voorgedefinieerde datastructuur. Daarin moeten dan minstens een plug-inpictogram zitten, een achtergrondafbeelding, een licentieovereenkomst, het bestand addon.xml met de metadata en de eigenlijke Python-code. Die code wordt normaal gesproken onder de naam addon. py opgeslagen.
Variant 1: het gaat heel eenvoudig als de gewenste video's op YouTube staan. Veel vloggers presenteren hun video's daar bijvoorbeeld in een eigen kanaal. Kodi heeft al een YouTube-plug-in, waar je in je Python-code mee kunt beginnen. Een plug-in voor de video's van Nu.nl bestaat bijvoorbeeld uit slechts drie regels code:
import xbmc if __name__ == ‘__main__’: xbmc.executebuiltin ("ActivateWindow(10025, plugin://plugin.video.youtube /user/Nunl/)")
Die code start in het Kodi-videovenster (venster-ID: 10025) de YouTube-weergave van het Nu.nl-kanaal, inclusief een overzicht van alle afspeellijsten. Bij addon.xml moet in het deel requires de YouTubeplug-in geïntegreerd worden: <import addon="plugin.video.youtube" version="6.0.2"/>.
Als je daar een mooie thumbnail en achtergrondafbeelding voor de Kodi-interface aan toevoegt, merkt niemand aan deze nieuwe plug-in dat hij in werkelijkheid wel heel erg leentjebuur heeft gespeeld bij een andere plug-in.
Variant 2: als video's of audiobestanden als RSS-feed beschikbaar zijn, kunnen die feeds met de Python-bibliotheek feedparser afgestruind worden en is daar met de plug-in een overzichtslijst van samen te stellen. Feedparser zit al in Kodi, maar moet nog wel aan addon.xml toegevoegd worden met <import addon="script.module. feedparser" version="5.1.3"/>.
De plug-in leest uit de audio-RSS-feed de titels en de bestands-url's van de afzonderlijke tracks of uitzendingen ('item') in een loop uit. Feedparser vindt de gewenste informatie op de volgende manier:
import feedparser d = feedparser.parse ('http://www.bbc.co.uk/radio1
/rss/rss_radio1.xml') for item in d['entries']: title = item['title'] url = item.enclosures[0].href Daar waar bij de eerste variant de YouTubeplug-in het opbouwen van de GUI op zich neemt, moet je hier zelf aan de slag. Daar heb je meerdere al in Kodi zittende Pythonbibliotheken voor nodig (sys, xbmcplugin, xbmcgui). Eerst stel je de proces-ID van de plug-in vast en dan plaats je de plug-in in het audiodeel van Kodi:
addon_handle = int(sys.argv[1]) xbmcplugin.setContent(addon_handle,
'audio') Binnen de loop voegt de code elke afzonderlijke podcast-link toe aan de hoofddirectory van de plug-in: xbmcplugin. addDirectoryItem(handle=addon_handle, url=url, listitem=xbmcgui.ListItem(title)). Na de loop moet de lijst dan nog gesloten worden met xbmcplugin.endOfDirectory(addon_handle, succeeded=True).
Dat is al voldoende om alle in een feed staande afleveringen in Kodi te laten zien en af te spelen. Dat wordt alleen maar mooier als je previewafbeeldingen en andere informatie uit de RSS-feed kunt halen. Een voorbeeld daarvan staat bij de link hieronder.