☰
LunaTV 直播接入 IPTV:一条 M3U 订阅变成高清频道列表的完整教程
2026/10/2 8:02:43 网站建设 项目流程

LunaTV 直播接入 IPTV:一条 M3U 订阅变成高清频道列表的完整教程

【免费下载链接】LunaTV本项目采用 CC BY-NC-SA 协议,禁止任何商业化行为,任何衍生项目必须保留本项目地址并以相同协议开源项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTV

收藏夹里躺着一堆 IPTV 订阅链接,却找不到稳定的播放器?LunaTV 直播能帮你把一条 M3U 订阅变成可分组、带节目单的频道列表,在浏览器里直接开播。

直播功能能做什么

  • 解析 M3U 订阅,自动按 group-title 归类频道
  • 拉取 XMLTV 节目单(EPG),展示今日在播与预告
  • 多订阅源并行管理,一键刷新频道列表
  • 内置 HLS 播放器,支持换源与频道收藏

最短上手路径

  1. 部署项目:git clone https://gitcode.com/GitHub_Trending/lu/LunaTV,按 README 的 Docker Compose 拉起 LunaTV + Kvrocks 两个容器。注意部署后是空壳,不含内置直播源,订阅要自己收集。
  2. 进管理页的「直播源配置」,点「添加直播源」:填 M3U 链接、EPG 地址(可选)和 User-Agent,再点「刷新直播源」,频道数会自动回填。
  3. 进直播页:选择源、按分组浏览频道,点任意频道即播,下方节目单条会自动滚到正在播出的位置。

参数速查:四个字段各管什么

参数作用默认值 / 来源
M3U 订阅链接频道列表的来源,核心解析逻辑在 src/lib/live.ts必填,支持 http/https
EPG 地址XMLTV 节目单;M3U 头带 x-tvg-url 时可留空,自动识别可选,缺省回退到 x-tvg-url
User-Agent模拟播放器身份,部分源有防盗链校验默认AptvPlayer/1.4.10
频道数量刷新后自动回填,用于快速判断拉取成败显示 0 表示这次拉取失败

容易被忽略的三个能力

频道智能缓存📺。频道列表首次访问后会被存进内存缓存,之后切换分组、刷新页面都是秒开,不再重复拉订阅;源变动后在管理页手动刷新即可,刷新时会清掉旧缓存。

节目单流式解析。EPG 的 XML 体积往往很大,LunaTV 直播用 ReadableStream 逐行读取,只保留订阅里实际出现的 tvg-id 对应节目,把不相关频道直接标记跳过,避免大文件撑爆内存。

播放器换源⚡。基于 ArtPlayer 与 HLS.js,右侧面板列出各资源的带宽与延迟,哪个快切哪个;频道可直接收藏备用。实现见 src/app/live/page.tsx。

对照排障

现象可能原因处理方式
频道列表为空订阅源失效,或需要特定 UA换有效订阅,或调 UA 后重新刷新
没有节目单EPG 地址填错,或 tvg-id 对不上核对两个文件里同一频道的 tvg-id 字段是否一致
部分频道无法播放源本身失效,与 LunaTV 无关换源,或把能播的频道加入收藏

适合手头有 M3U 订阅、想开箱即看直播的用户;下一步先把常用频道加入收藏,再挑几个稳定的源固定下来,日常看就省心了。

【免费下载链接】LunaTV本项目采用 CC BY-NC-SA 协议,禁止任何商业化行为,任何衍生项目必须保留本项目地址并以相同协议开源项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTV

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询