Sorry, this entry is only available in 中文.
Category: Python
ge.tt sharing CLI and API issue
Sorry, this entry is only available in 中文.
PPTV XBMC video plugin update v1.2.9
Sorry, this entry is only available in 中文.
PPTV XBMC video plugin update-v1.2.0
Sorry, this entry is only available in 中文.
PPTV XBMC视频插件更新-v1.1.2
本文同步自(最佳显示效果请点击):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 使用此插件过程中有任何问题欢迎指正哦 ^_^
发布PPTV XBMC视频插件v1.0
本文同步自(最佳显示效果请点击):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 秒之间,非常满意。后来使用中又发现 Parsedom 中存在的一些问题,查找原因并修正之后无伤大雅,想到干脆去掉 Parsedom 中一些我用不到的代码,直接集成到我的 py 文件中使用 ^_^。 略加奋战,终于在 XBMC 界面上能正常显示了,能显示频道列表了,也能进入频道显示视频列表,结果播放时发现悲剧了,iPad 的 m3u 被 XBMC 自己给分段解析然后尝试播放了,造成文件路径不对无法播放。后来使用手工修改路径的方式,尽管能播放,但造成的“效果”就是每 5-6 秒钟就需要切换一下视频,这对于 Raspberry Pi 这种暂时无法调用外部播放器的系统来说简直没法用。 PPTV 视频 XBMC 插件 1.0 版本功能: 支持 www.pptv.com 上基本所有直播和点播视频; 支持在插件设置中选择视频质量(与实际 PPTV 视频片源对应),暂时支持:标清、高清、超清、蓝光、iPad 超清; 支持按影片类型、时间、更新时间、热度等条件选择过滤视频,并且所有过滤条件全部实时从 PPTV 网站获取,插件中不保存分类; 视频列表支持翻页处理(具体每个连续剧的集数列表没有翻页,默认全部列出来,主要感觉 1-40 集这种列表还弄分页没什么必要); 不依赖任何 PPTV 的 Windows 程序和库,理论上可以在任何 XBMC 系统上使用 由于 XBMC 不能原生支持中文输入等原因,暂时未支持视频搜索功能,后续将会改进。 备注: 本插件默认的视频质量为高清格式,需要超清或蓝光格式的在插件设置界面中进行修改即可。iPad 超清视频和直播视频分别是特殊的 m3u 和 m3u8 格式(指向 mp4 视频),需要XBMC 系统能正常播放 PPTV m3u 和 m3u8 视频(Windows 下的 XBMC 系统应该可以配置使用外部播放器来支持,不过偶懒得安装木有测试过)。 声明: 此插件只是从 PPTV 网站获取视频内容,所有视频版权均与此网站有关,本插件一概不负责。另外由于 PPTV 网站将来会有变化,我不保证能马上修复并解决可能出现的问题,因为说不定 PPTV 就完全把未公开的 API 给禁用了。 插件介绍的截图: 插件设置界面: 视频列表界面: 具体视频播放界面(放的正是 《麦兜》 哈 ^_^): 本 XBMC 插件的 github 源代码库地址: https://github.com/zohead/pptv4xbmc 下载 PPTV 视频 XBMC 插件: http://github.com/downloads/zohead/pptv4xbmc/plugin.video.pptv-v1.0.zip 下载之后拷贝到 XBMC 系统,然后到 XBMC 系统设置中选择压缩包安装即可。我正在申请将此款插件加入 XBMC 的中文插件库,顺利的话安装此插件将会更加简单,并且在以后修改时可以直接在线更新。 各位在使用 PPTV 视频 XBMC 插件中如果发现任何问题,欢迎提出指正哦,另外有问题时最好能描述清楚,能附上看的是哪个视频或者哪个频道下面的话更好。 ^_^
修改XBMC LiveStreams Python插件以支持中文
本文同步自(最佳显示效果请点击):https://zohead.com/archives/xbmc-livestreams-cn-patch/ 最近在闲时捣鼓下 Raspberry Pi 微型电脑板上的开源 XBMC 应用准备看看 HTPC 媒体中心的效果,发现 Raspberry Pi 在安装了 XBian 系统之后可以比较好的实现 XBMC 的基本功能,虽然由于 Raspberry Pi 没有购买一些视频格式的软件解码授权而导致 WMV 或者 MMS 之类的格式无法播放,但对于常用的一些 H264 的高清视频已经足以应付,接上网线之后看高清在线视频点播和直播的效果都还可以。 有关 Raspberry Pi 请参考 [之前] 的文章,有关 XBian 之一专门为 Raspberry Pi 优化的 XBMC 系统可以访问其官网:http://xbian.org/。 注:Raspberry Pi 上除了 XBian 之外,还有 Raspbmc、Openelec 等其它合适的 XBMC 系统可供选择的。而且这些都是基于标准 XBMC 程序修改的,标准插件之类的基本可以通用。 前两天找到一个不错的在线电视直播的 XBMC 插件:LiveStreams,此插件可以由用户自己修改 XML 配置文件增加在线直播的地址,根据实际硬件配置不同,可支持 MMS、RTSP、RTMP 等各种不同的流媒体协议。有关 LiveStreams 的介绍和配置请参考这些链接(特别第二个链接中有详细的截图介绍): http://forum.xbmc.org/showthread.php?tid=97116 http://www.xbmchub.com/blog/2012/04/26/adding-custom-xml-files-to-the-live-streams-addon/ 最新版本的 LiveStreams 插件可以到这里下载:http://code.google.com/p/divingmules-repo/。 在实际使用过程中发现由于 LiveStreams 由于是老外写的,不由自主的就碰到对中文的支持问题,如果添加的 XML 配置文件中节目名称或者节目目录名称包含中文,XBMC 系统中LiveStreams 插件将不能正常工作,直接会出现脚本错误。 简单看了下 LiveStreams 插件的代码,是用 Python 写的,凭着一些简单的 Python 基础,然后集合 Python 的 logging 模块来调试,终于发现 LiveStreams 插件对中文支持不佳的原因,作者在使用 BeautifulSoup(参考 [这里]) 这一个非常知名的 HTML/XML 等解析的库时未考虑非英文环境下的问题,简单做了下修改之后,中文的直播节目和目录名称都可以正常显示了。 顺便再简单说明一下 LiveStreams XML 配置文件嵌套节目目录的方式,这是一个实例 XML 节目配置文件: 第一个节目目录 Channel 1 下面没有子目录,只有 TV1 和 TV2 这两个节目,因此 XML 层次是 channel/items/item。第二个节目目录 Channel 2 下有名为 Sub1 的子目录,Sub1 下又有 Sub TV1 和 Sub TV2 两个节目,这种的 XML 层次则是:channel/subchannels/subchannel/subitems/subitem。 需要注意的是 LiveStreams 的 XML 配置文件必须以 UTF-8 编码格式保存,否则非英文字符将无法正常显示。另外由于 XML 本身格式的原因,XML 内容中的这些字符需要转换(全部为纯英文字符,包括结束的分号): & 转换为 & < 转换为 < > 转换为 > ‘ 转换为 ' ” 转换为 " 最后附上我修改过的最新 LiveStreams 1.0.6 版本 XBMC 插件的下载地址: http://miseal.googlecode.com/files/plugin.video.live.streams-1.0.6.zip 由于这插件只是随便修改的,有任何问题欢迎指正哦。 ^_^