XBMC 是开源的媒体中心软件,适用于 Mac, Windows, BSD, Linux, iOS 和 Apple TV2。
XBMC 具有很强大的扩展功能,插件的开发主要是用 Python 脚本
有兴趣开发 XBMC 插件,可参考这篇 http://wiki.xbmc.org/index.php?title=HOW-TO_write_Python_Scripts_for_XBMC
及 XBMC 的 Python 函数库 http://xbmc.sourceforge.net/python-docs/
XBMC 的插件安装压缩 zip 文档内, 一般都有这些基本文件
addon.py - 插件的 Python脚本
addon.xml - 插件的描述和说明
icon.png - 插件的图标
从一个简单获取网站视频内容的插件为例子的 Python 脚本, 有这些框架及内容
⑴ 首先要做的就是导入库, 包括 xbmc 的库
import sys, os, urllib, urllib2, re
import xbmc, xbmcgui, xbmcplugin, xbmcaddon
⑵ 定义一些常量
例如当 DEVELOP = True, 方便在桌面电脑运行 Python 脚本作测试
import sys, os, urllib, urllib2, re
import xbmc, xbmcgui, xbmcplugin, xbmcaddon
⑶ 不一定要定义类 class,但必须有一些主功能或辅助功能函数,例如
# 主功能
def CATEGORIES(): # 首页显示视频的分类
def SORTMETHOD(url): # 用对话框来更改视频的排列方式
def VIDEOLIST(url,page,order): # 显示视频列表
def PLAYVIDEO(url): # 播放视频
# 辅助功能
def GetHttpData(url): # 获取 http 数据
def get_params(): # 获取脚本的参数
def addLink(name,url,mode,iconimage): # 在列表添加链接
def addDir(name,url,mode,iconimage,page,order): # 在列表添加目录
def main(): # 主函数
主功能函数里常见一些获取网站数据的功能及后用正则表达式 regular expression_r(re) 函数操作搜索及替代字符,例如
# re 搜索操作
match=re.compile('<li><a.+?href="(.+?/channels/.+?)">(.+?)</a></li>').findall(link)
match=re.compile('<a href="(http://www.empflix.com/videos/.+?)".+?title="(.+?)"><img src="(.+?)"').findall(link)
# re 替代操作
newurl=re.sub("new-|watched-|popular-|rated-","new-",newurl)
newurl=re.sub("category=(mr|bw|mv|tr)","category=mr",newurl)
⑷ 在 main() 主函数里会看到主要功能的架构及流程
if mode==None or url==None or len(url)<1:
CATEGORIES()
elif mode==1:
SORTMETHOD(url)
elif mode==2:
VIDEOLIST(url,page,order)
elif mode==3:
PLAYVIDEO(url)
⑸ XBMC 插件运行时的调试日志文件在 iOS / Apple TV2 内的路径是
/var/mobile/Library/Preferences/xbmc.log
Linux : ~/.xbmc/temp/xbmc.log
Mac : ~/Library/Logs/xbmc.log
Windows 7: \Users\<UserName>\AppData\Roaming\XBMC\xbmc.log
插件写入日志文件要这么写
xbmc.log(msg='This is a test string.', level=xbmc.LOGDEBUG)
开发Python每个代码块需要注意缩进4个字符的要求。 关于编辑器 Mac 可以用 TextWrangler 或 BBEdit. Windows 可以用 Python 自带的 IDE
注意:Python 3 是不兼容 Python 2.x 的,开发 XBMC 插件要用 Python 2.x,尽量用 Python 2.5 以上版本
$ python --version
Python 2.7.1
XBMC 的插件安装是将 zip 文档拷入 iOS 或 Apple TV2 的 /private/var/mobile 文件夹內
然后在 XBMC 內,从 zip 文件安装插件
安装后,插件就在 /var/mobile/Library/Preferences/XBMC/addons/plugin.video.empflix 文件夹內