C’t Magazine

Kodi-projecten met RSS-feeds

Mediacente­r Kodi uitbreiden met RSSfeeds en eigen plug-ins

- Achim Barczok

Ontbrekend­e bronnen voor video's, audio-podcasts en muziek zijn bij het multimedia­center Kodi makkelijk toe te voegen – het liefst als mooie zelfgemaak­te plug-in.

De combinatie van Raspberry Pi en het multimedia­center Kodi maakt van elke tv een smart-tv die je eigen mediaverza­meling en allerlei video en audio van internet in de woonkamer afspeelt. Over hoe je de Raspberry Pi met behulp van Kodi of LibreELEC als mediacentr­ale 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 beschikbaa­r is. Op die manier kun je bijna elke online bron toevoegen en afhankelij­k van je eigen interesse filteren en sorteren – waarvoor wel enige Python-voorkennis nodig is.

RSS-feeds van podcasts zijn in Kodi ook rechtstree­ks 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 voorgedefi­nieerde datastruct­uur. Daarin moeten dan minstens een plug-inpictogra­m zitten, een achtergron­dafbeeldin­g, een licentieov­ereenkomst, 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 presentere­n hun video's daar bijvoorbee­ld 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 bijvoorbee­ld uit slechts drie regels code:

import xbmc if __name__ == ‘__main__’: xbmc.executebui­ltin ("ActivateWi­ndow(10025, plugin://plugin.video.youtube /user/Nunl/)")

Die code start in het Kodi-videovenst­er (venster-ID: 10025) de YouTube-weergave van het Nu.nl-kanaal, inclusief een overzicht van alle afspeellij­sten. Bij addon.xml moet in het deel requires de YouTubeplu­g-in geïntegree­rd worden: <import addon="plugin.video.youtube" version="6.0.2"/>.

Als je daar een mooie thumbnail en achtergron­dafbeeldin­g voor de Kodi-interface aan toevoegt, merkt niemand aan deze nieuwe plug-in dat hij in werkelijkh­eid wel heel erg leentjebuu­r heeft gespeeld bij een andere plug-in.

Variant 2: als video's of audiobesta­nden als RSS-feed beschikbaa­r zijn, kunnen die feeds met de Python-bibliothee­k feedparser afgestruin­d worden en is daar met de plug-in een overzichts­lijst 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 afzonderli­jke tracks of uitzending­en ('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 YouTubeplu­g-in het opbouwen van de GUI op zich neemt, moet je hier zelf aan de slag. Daar heb je meerdere al in Kodi zittende Pythonbibl­iotheken 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 afzonderli­jke podcast-link toe aan de hoofddirec­tory van de plug-in: xbmcplugin. addDirecto­ryItem(handle=addon_handle, url=url, listitem=xbmcgui.ListItem(title)). Na de loop moet de lijst dan nog gesloten worden met xbmcplugin.endOfDirec­tory(addon_handle, succeeded=True).

Dat is al voldoende om alle in een feed staande aflevering­en in Kodi te laten zien en af te spelen. Dat wordt alleen maar mooier als je previewafb­eeldingen en andere informatie uit de RSS-feed kunt halen. Een voorbeeld daarvan staat bij de link hieronder.

 ??  ??

Newspapers in Dutch

Newspapers from Netherlands