2008-12-20, 22:42
Library Plugin Support
I have been spending the past few days thinking of the best way to integrate RTMP streaming sites such as Hulu.com into the library, right along side of the content I have on my home network. I have tossed a couple ideas around but have realized that this would best be supported via Python.
Library Plugin support would allow for scripts to be written that can populate movies and tv shows into the Library (video database) from alternate locations such as RTMP streaming sites like Hulu.com. Having this extended ability available via a Python would make it completely optional and prevent the dev's from having to partake in coding library updates for features that may only target a limited audience. Leaving this more custom feature development where it belongs, in the Python/Plugin/Scripter community.
The idea is that a Python coder could develop a script which would scan a site such as Hulu.com for available episodes and add them to the library if an entry for that episode was not already found.
The path to the episode would be stored as a plugin:// path with the name of the video plugin coming after plugin:// (ex: pligin://HuluEpisodePlayer/), and the filename column in the files table would hold the episode identifying information needed to pass as parameters to the plugin to tell it which episode to play when called.
The database would be populated like so:
Storing the show information in a standard format used for filenaming (ex: "30.Rock.S01E09") would allow for existing scrapers to be used without any alterations to the underlying code.
Calling Plugins from Library Entries
This will add support for calling a plugin when a video is launched from library mode where the plugin to call and parameters to pass are stored in place of normal filepath information. The database would be populated like so:
Storing the show information in a standard format used for filenaming (ex: "30.Rock.S01E09") would allow for existing scrapers to be used without any alterations to the underlying code.
When a user is viewing content in Library mode and they select a plugin entry like the example above, the code behind it will parse the plugin name from the strPath value, then pass the episode information to the deciphered plugin in order for that plugin to build the RTMP url and load the streaming video.
I have boiled this down to two TRAC tickets:
http://trac.xbmc.org/ticket/5517 - Library Plugin Support
http://trac.xbmc.org/ticket/5518 - Calling Plugins from Library Entries
Looking for feedback:
I have been spending the past few days thinking of the best way to integrate RTMP streaming sites such as Hulu.com into the library, right along side of the content I have on my home network. I have tossed a couple ideas around but have realized that this would best be supported via Python.
Library Plugin support would allow for scripts to be written that can populate movies and tv shows into the Library (video database) from alternate locations such as RTMP streaming sites like Hulu.com. Having this extended ability available via a Python would make it completely optional and prevent the dev's from having to partake in coding library updates for features that may only target a limited audience. Leaving this more custom feature development where it belongs, in the Python/Plugin/Scripter community.
The idea is that a Python coder could develop a script which would scan a site such as Hulu.com for available episodes and add them to the library if an entry for that episode was not already found.
The path to the episode would be stored as a plugin:// path with the name of the video plugin coming after plugin:// (ex: pligin://HuluEpisodePlayer/), and the filename column in the files table would hold the episode identifying information needed to pass as parameters to the plugin to tell it which episode to play when called.
The database would be populated like so:
Code:
Path Table:
idPath strPath
x "plugin://PluginName/"
Files Table:
idFile idPath strFilename
y x "30.Rock.S01E09"
Storing the show information in a standard format used for filenaming (ex: "30.Rock.S01E09") would allow for existing scrapers to be used without any alterations to the underlying code.
Calling Plugins from Library Entries
This will add support for calling a plugin when a video is launched from library mode where the plugin to call and parameters to pass are stored in place of normal filepath information. The database would be populated like so:
Code:
Path Table:
idPath strPath
x "plugin://PluginName/"
Files Table:
idFile idPath strFilename
y x "30.Rock.S01E09"
Storing the show information in a standard format used for filenaming (ex: "30.Rock.S01E09") would allow for existing scrapers to be used without any alterations to the underlying code.
When a user is viewing content in Library mode and they select a plugin entry like the example above, the code behind it will parse the plugin name from the strPath value, then pass the episode information to the deciphered plugin in order for that plugin to build the RTMP url and load the streaming video.
I have boiled this down to two TRAC tickets:
http://trac.xbmc.org/ticket/5517 - Library Plugin Support
http://trac.xbmc.org/ticket/5518 - Calling Plugins from Library Entries
Looking for feedback:
- Let me know what your take is on this idea.
- What are the pros and cons that I may not be considering?
- Is there a better way to integrate RTMP streaming content into the library?