User Tools

Site Tools


servio_plugins

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
servio_plugins [2011/11/04 23:06]
zip Added note about Atom feeds
servio_plugins [2017/06/24 21:44] (current)
techwhizz Just a minor change for users to be aware if they have the Serviio patch correct or not.
Line 3: Line 3:
 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.  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 [[http://www.serviio.org/index.php?option=com_content&view=article&id=42|plugins announcement]] page describes the feature in some detail.+This feature was made available as part of Serviio 0.6, the plugins [[http://www.serviio.org/index.php?option=com_content&view=article&id=42|plugins announcement]] page describes the feature in some detail as well as this [[serviio_groovy_plugins_explained|wiki page]].
  
 Serviio doesn't include any plugins as part of the install but you can... Serviio doesn't include any plugins as part of the install but you can...
Line 10: Line 10:
    * read the [[http://forum.serviio.org/viewforum.php?f=22|plugin development forum]] and have a go at developing your own plugin.      * read the [[http://forum.serviio.org/viewforum.php?f=22|plugin development forum]] and have a go at developing your own plugin.  
    
-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!+From version 0.6.1 Serviio supports plugins for **RSS/Atom feeds** and other **Web Resources**. 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. Plugins help Serviio locate the exact location of the media streams as the feed often links to html pages rather than the stream.
  
 ====== Installation ====== ====== Installation ======
-   1. Download the plugin +  -  Download the plugin 
-   2. Copy the plugin to the plugins folder +  -  Copy the plugin to the plugins folder (eg to /usr/bin/serviio-0.6.2/plugins on linux) 
-   3. Configure Serviio with at least one url to an RSS feed.  This is done using the serviio console.+  -  Configure Serviio with at least one url to an RSS feed.  This is done using the serviio console using the Online Sources Tab which is found on the Library tab.
  
 After up to 5 mins the streams should be available to view.  On the DLNA client look for a new folder called "Online Sources" After up to 5 mins the streams should be available to view.  On the DLNA client look for a new folder called "Online Sources"
Line 25: Line 25:
 Read the [[http://forum.serviio.org/viewtopic.php?f=22&t=3274|Guide to plugin development]] Read the [[http://forum.serviio.org/viewtopic.php?f=22&t=3274|Guide to plugin development]]
  
-Tips:+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 [[http://rtmpdump.mplayerhq.hu/|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. You can also define whether the content is a live stream or static content. 
 + 
 +<note tip>   
    * Look at existing plugins, there may be a plugins that can be adapted with only minor changes    * Look at existing plugins, there may be a plugins that can be adapted with only minor changes
    * The plugins can be largely tested outside of serviio (to speed up development).      * The plugins can be largely tested outside of serviio (to speed up development).  
Line 32: Line 37:
          * test2: when given a link from an rss item, does the plugin correctly determine the media?          * test2: when given a link from an rss item, does the plugin correctly determine the media?
    * Once the tests above pass it's time to install the plugin and do some final testing     * Once the tests above pass it's time to install the plugin and do some final testing 
 +</note>
  
 A plugin can be tested outside of groovy by running: A plugin can be tested outside of groovy by running:
  
 __On Windows:__ __On Windows:__
-groovy -cp "C:\Program Files (x86)\Serviio\lib\serviio.jar;C:\Prog +Please make sure the Serviio folder is located in either Program Files or Program Files (x86). 
-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 ( +groovy -cp "C:\Program Files (x86)\Serviio\lib\serviio.jar;C:\Program Files (x86)\Serviio\lib\slf4j-api.jar;C:\Program Files (x86)\Serviio\lib\slf4j-log4j12.jar;C:\Program Files (x86)\Serviio\lib\log4j.jar" "C:\Program Files (x86)\Serviio\plugins\CNN.groovy" 
-x86)\Serviio\plugins\CNN.groovy"+ 
 +I suggest to create a MS-DOS batch file (ex: "{{ :pluginstest.zip | PluginsTest.bat}}" ) with following content, then drag&drop the groovy over the batch file (%1 variable will be replaced by groovy file path): 
 +<code> 
 +@echo off 
 +@ set ServiioPath="C:\Program Files (x86)\Serviio" 
 +@echo "Testing %1 plugin" 
 +%GROOVY_HOME%\bin\groovy.exe -cp "%ServiioPath%\lib\serviio.jar;%ServiioPath%\lib\slf4j-api.jar;%ServiioPath%\lib\slf4j-log4j12.jar;%ServiioPath%\lib\log4j.jar;%ServiioPath%\lib\org.restlet.jar" "%1" 
 + 
 +rm "If this did not compile, check the ServiioPatch in this file to make sure the Serviio folder is in Program Files (x86) or in Program Files." 
 +@pause 
 +</code> 
 + 
  
 __On Linux:__ __On Linux:__
-groovy -cp lib/serviio.jar:lib/slf4j-api.jar:lib/slf4j-log4j12.jar:lib/log4j.jar S4c.groovy+From your serviio install folder (eg /usr/bin/serviio-0.6.2) and with a S4c.groovy file installed in plugins:
  
-And of course you can use the [[http://forum.serviio.org/viewforum.php?f=22|Plugin development forum]] if you get stuck+<code> 
 +groovy -cp lib/serviio.jar:lib/slf4j-api.jar:lib/slf4j-log4j12.jar:lib/log4j.jar:lib/org.restlet.jar plugins/S4c.groovy 
 +</code>
  
 +Or with Java and groovy-all.jar:
 +
 +<code>
 +java -cp lib/serviio.jar:lib/slf4j-api.jar:lib/slf4j-log4j12.jar:lib/log4j.jar:lib/org.restlet.jar:lib/groovy-all.jar groovy.ui.GroovyMain plugins/S4c.groovy
 +</code>
 +
 +And of course you can use the [[http://forum.serviio.org/viewforum.php?f=22|Plugin development forum]] if you get stuck
 ====== Logging ====== ====== Logging ======
 Logging is configured through conf/log4j.xml.  You could change the priority of all packages to DEBUG but this is very verbose. Logging is configured through conf/log4j.xml.  You could change the priority of all packages to DEBUG but this is very verbose.
Line 65: Line 92:
    <category name="org.serviio.library.online">    <category name="org.serviio.library.online">
      <priority value="DEBUG"/>      <priority value="DEBUG"/>
-   </category></note>+   </category>
  
  
servio_plugins.1320447988.txt.gz · Last modified: 2011/11/04 23:06 (external edit)