Sorry, this entry is only available in 中文.
Sorry, this entry is only available in 中文.
Sorry, this entry is only available in 中文.
Sorry, this entry is only available in 中文.
本文同步自(最佳显示效果请点击):https://zohead.com/archives/pptv-xbmc-plugin-v1-1-2/ 之前利用闲余时间写了个 PPTV 的 XBMC 多媒体中心系统的视频插件 v1.0 版本(请参考 [这里]),在 htpc XBMC 论坛上公布之外,经过几百个论坛网友下载使用之后,也发现一些问题,经过修正和增强之后更新了 1.1.2 版本的新 PPTV 视频插件。 更新内容如下: 由于 Python 2.5 以下版本不支持三目运算符,为兼容 Xbox XBMC 等老的 Python 环境,将 if else 三目运算符改换为普通的方式; 解决 PPTV 直播电视节目单获取错误的问题; 如果某个 PPTV 直播节目没有节目单,不能直接得到播放页面地址,则尝试通过搜索的方式得到播放页面地址; 引入 XBMC Chinese Keyboard 插件,为本插件增加根据关键字搜索 PPTV 视频的功能; 如果搜索到的视频不是由 PPTV 提供(例如:优酷、土豆之类),则在播放时给出提示; 播放 PPTV VIP 视频时提示用户无法播放 VIP 视频; 解决某些连续剧集节目(例如某些动漫剧场版全集)无法得到视频列表的问题。 针对某些网友提出的选择播放到开始缓冲间有点延时的问题,由于需要从 PPTV 未公开的 API 中获取真实视频地址,暂时没有什么好的办法解决。另外 PPTV 直播视频仍然使用的是 m3u8 格式的 HTTP live stream,需要 XBMC 系统能正常播放这种流媒体视频。 最后放出 1.1.2 版本 PPTV XBMC 视频插件下载地址: http://github.com/downloads/zohead/pptv4xbmc/plugin.video.pptv-v1.1.2.zip 使用此插件过程中有任何问题欢迎指正哦 ^_^
本文同步自(最佳显示效果请点击):https://zohead.com/archives/pptv-xbmc-plugin/ 最近认识一位朋友想要在 XBMC 多媒体中心软件(http://www.xbmc.org/)上观看 PPTV(http://www.pptv.com/) 视频网站上的视频,看到有 Windows 上的 XBMC PPTV 插件,但都没法在我的 Raspberry Pi 微型电脑板上(板子虽小也支持播放 1080p 高清视频哦)运行,于是想着自己写个能够跨平台的 PPTV 视频的 XBMC 插件,顺便也拿这个练练 Python,HOHO。 既然要跨平台,那首先考虑必须全部用 XBMC 自带的 Python 脚本实现,不能调用 Windows 上 DLL 之类的鬼玩意,而且 Raspberry Pi 的 armhf 系统上也几乎不可能有 PPTV 的动态库可以用的。 基本原理: 通过 Python 插件发送 HTTP 请求时伪装成 iPad 客户端从 PPTV 网站上获取频道列表、视频列表、查询视频,并得到视频的实际 m3u 和 m3u8 地址。后来发现此方法得到的 m3u 和 m3u8 视频地址在 Raspberry Pi 系统中播放有问题,而且不太好直接解决。没办法,咱拿起 Wireshark 抓包神器,终于发现了 PPTV 未公开的 API 方法(其实 PPTV 一直从未公开,哈哈)得到网页 Flash 方式播放的视频地址。不过其中有个视频 key 的问题,没什么太好办法在 Python 中直接得到。最终想到通过 [硕鼠] 网站解决,硕鼠网站得到的 PPTV 视频地址明显有问题,但有个可用之处就是他能通过 Flash 得到 PPTV 的视频 key,那就省点事从硕鼠得到视频 key,从 PPTV 未公开 API 构造视频链接和分段信息(用过 Python 自带的 json 库),最终得到真实的视频地址。 有关 XBMC 的插件编写详细请参考这些链接: http://wiki.xbmc.org/index.php?title=HOW-TO:Write_plugins_for_XBMC http://wiki.xbmc.org/index.php?title=Python_development http://wiki.xbmc.org/index.php?title=Add-on_development 其中遇到的一个问题就是 HTML 的解析问题,刚开始使用的是比较成熟好用的一个 Python 插件:Beautiful Soup。这个插件的最大优势就是对不标准的 HTML 的容错性做的非常好,而且各种查找 HTML DOM 结构的函数也很强大。那就按照 Beautiful Soup 的要求解析 PPTV 的 HTML DOM,结果顺利取得,不久就发现一个问题,在 Raspberry Pi 这种比较弱的嵌入式板子上,下载 HTML 倒挺快,通过 Beautiful Soup 解析查找 HTML DOM 竟然要用去 15 秒左右的时间,这完全无法忍受,可以寻找替代品。 最终在 XBMC 的论坛里发现了比较好的 HTML parser 替代品:Parsedom XBMC Add-on。这是直接包含在 XBMC 库中的一个简单的 HTML DOM 解析扩展,import 之,下载 HTML 然后按照 class、按照 id 解析 HTML 的速度都在 1-2 秒之间,非常满意。后来使用中又发现...