EPG 节目单全是空白:多半是 tvg-id 没对上
EPG 源挂上了、文件也拉下来了,可有些频道就是没有节目信息——十有八九是频道匹配出了问题。这是 EPG 配置里最技术性、也最容易踩的一步。
匹配是怎么发生的
节目单文件里每个频道的节目都挂在一个频道标识下(XMLTV 里叫 channel id);你的播放列表里,每个频道也有一个标识属性(tvg-id,或应用按频道名自行推断)。应用播放节目单时,按标识把两边对号入座:
- 列表频道的 tvg-id 与节目单里某频道的 id 一致 → 该频道显示节目表
- 两边对不上 → 该频道在节目单里是「查无此人」,节目区空白
也就是说,节目单文件本身再完整,只要和你的列表对不上号,等于没有。
对不上的常见形态
- 大小写与写法差异:
cctv1、CCTV-1、CCTV1是三个不同的字符串。列表写一种,节目单写另一种,匹配失败。 - 命名体系不同:列表用「CCTV5体育」,节目单用「央视体育」,完全对不上。
- 节目单覆盖面不同:节目单源根本没有你列表里某些频道的条目(比如地方台),这些频道天然无节目可看。
怎么处理
用别人的列表配官方节目单:两端都是别人给的,理论上服务方已保证匹配。若个别频道没节目,多半是该频道不在节目单覆盖内,接受即可。
自己的列表自己配节目单:把列表里每个频道的 tvg-id 改成与节目单源一致的写法,是唯一根治法。改法参考M3U 格式。改名工程量大时,优先改高频频道,长尾频道接受无节目单。
匹配修完还空白的,按节目单空白的清单继续查。