Plex接入网络直播与IPTV

总想着闲下来写点文章,一晃一年又过去了。12月国内对新冠管控态度的快速转折,让身边许多朋友还没有来得及准备就已切身体会。目前病毒感染性很强,希望医学行业的专家能有突破吧,让日常生活可以放心的摘掉口罩。

家里一直使用AppleTV,Infuse+Plex可以满足我大部分的需求,只是有时偶尔看看网络直播比赛,常需要切投屏,此前使用“斗秀”App与“Miao Project”(Bilibili第三方)曲线救国,最近使用却发现一个失去维护,一个结束内测开始收费,索性折腾一下让Plex把影音直播的事情都解决。

之前有过使用Plex通过xTeVe接入过网络m3u源观看电视的经历,记忆里印象还停留在麻烦的配置、网络流卡顿与延迟,然而问题总要解决的,在Github搜寻一下,发现一个Golang实现的开源项目 https://github.com/xbugio/plex-tuner ,可以满足轻量观看直播的需求。

原项目主要实现了bilibili与通用hls,可以满足网络直播流播放的问题(每次访问支持http方式加载请求最新的流地址,而xTeVe更新频率低难以持续跟踪),默认项目没有支持斗鱼与虎牙,测试bilibili速度也不稳定,于是自己动动手开发一个helper,分享到 https://github.com/le4f/plex-live ,主要支持斗鱼、虎牙、Bilibili等自定义网络直播间直播源的定时更新以及xteve接入Plex的配置生成问题,解析直播间地址引用了 real-url-proxy-server项目代码。

电视直播放弃了不稳定的网络源,老老实实抓一下IPTV的地址。抓包IPTV盒子的dhcp信息,使用ROS IPoE认证拨号可以获得内网IP,过程互联网上有很多操作教程了。

这里没有抓到组播流量,不能用udpxy转单播,使用单播流RTSP与HLS(/index.m3u8?fmt=ts2hls)测试Plex Tuner等暂不支持无法播放,这部分还是交给xTeVe。

xTeVe比较麻烦的地方是节目指南、台标映射等等配置,所以单独写了一串函数生成可解析的配置文件,创建xTeVe容器后选择PMS类型,使用Flask提供的m3u地址即可使用。

Plex接入两个源自动识别台标

收工~ 如果你有类似的需求,可以参考代码修改

写在文末:

感慨一下,上一篇文章还在用FlexGet追剧,今年涌现的movie-robot (付费授权)和nas-tools(用爱发电)已经将大部分场景优雅的解决了,不知道明年会有什么新的Awesome-Selfhosted Project。去年的机箱也都一个个折腾送走,如今换上机架式暂时安逸了: )

期待明年生活的变化,哈哈,2023再见