This is an old revision of the document!
Serviio plugins provide access to online sources such as Youtube or Regional Catchup TV services (e.g. BBC Iplayer). A DLNA client will be able to browse these streams in a similar fashion to local movies and music.
This feature was made available as part of Serviio 0.6, the plugins plugins announcement page describes the feature in some detail.
Serviio doesn't include any plugins as part of the install but you can…
Currently the plugins mechanism only works with online sources that expose their content as RSS / Atom feeds. Note some feeds that link directly to media require no plugin at all!
Plugins help Serviio locate the exact location of the media streams as the feed often links to html pages rather than the stream.
1. Download the plugin 2. Copy the plugin to the plugins folder 3. Configure Serviio with at least one url to an RSS feed. This is done using the serviio console.
After up to 5 mins the streams should be available to view. On the DLNA client look for a new folder called “Online Sources”
Read the Guide to plugin development
Online content is usually served via http or rtmp protocol. The former is very easy to consume. The latter is mostly used by Adobe Flash servers and used in many online video services and FFmpeg compiled with libRTMP is necessary for playback. Some rtmp streams require swf verification (not implementing that usually means the stream is cut after a period of time, like 1 minute).
Feed item URLs can expire with time, if that is the case you will have to provide the expiry date so that Serviio can re-run the URL extraction when that happens and get a valid URL when necessary.
Tips:
A plugin can be tested outside of groovy by running:
On Windows:
groovy -cp “C:\Program Files (x86)\Serviio\lib\serviio.jar;C:\Prog
ram Files (x86)\Serviio\lib\slf4j-api.jar;C:\Program Files (x86)\Serviio\lib\slf
4j-log4j12.jar;C:\Program Files (x86)\Serviio\lib\log4j.jar” “C:\Program Files (
x86)\Serviio\plugins\CNN.groovy”
On Linux:
groovy -cp lib/serviio.jar:lib/slf4j-api.jar:lib/slf4j-log4j12.jar:lib/log4j.jar S4c.groovy
And of course you can use the Plugin development forum if you get stuck
Logging is configured through conf/log4j.xml. You could change the priority of all packages to DEBUG but this is very verbose.
I've found adding the following gives me useful additional info for plugin development:
<category name="org.serviio.external"> <priority value="DEBUG"/> </category> <category name="org.serviio.upnp.webserver"> <priority value="DEBUG"/> </category> <category name="org.serviio.renderer"> <priority value="DEBUG"/> </category> <category name="org.serviio.delivery"> <priority value="DEBUG"/> </category> <category name="org.serviio.library.online"> <priority value="DEBUG"/> </category></note>