
LunaTV 直播功能完整上手3 步把 M3U 订阅变成带节目单的频道列表【免费下载链接】LunaTV本项目采用 CC BY-NC-SA 协议禁止任何商业化行为任何衍生项目必须保留本项目地址并以相同协议开源项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTV收藏夹里堆着几条 IPTV 订阅链接却没有顺手的入口直接打开看LunaTV 直播功能把一条 M3U 订阅地址M3U 是 IPTV 频道列表的通用格式解析成分组清晰的频道列表再配上 XMLTV 节目单EPG记录各频道每个时段播什么浏览器里点开就能收台。适用场景如果你手里有一条或多条 M3U 订阅又不想为看直播单独装播放器这套方案正合适。它只支持 Docker 部署对有一台服务器或 NAS 的人最顺手想给家里做一套随时能看的电视入口或装到平板、电视当 PWA可安装到桌面的网页应用用都选它。只固定看一两个台的话单独找播放器更省事。从零到可用环境准备先执行git clone https://gitcode.com/GitHub_Trending/lu/LunaTV拿到项目进入目录按 README 改 docker-compose填管理员账号密码指定 Kvrocks 或 Redis 存储地址。注意部署出来是空壳不带内置直播源订阅得自己准备。核心操作登录后进管理页「直播源配置」新增一条源填 M3U 链接、EPG 地址可选和 User-Agent部分源有防盗链靠它模拟播放器身份保存后点「刷新直播源」。核心解析逻辑在 src/lib/live.ts。验证结果频道数从 0 回填成几百说明拉取成功 ✅。进直播页选源、按分组找台点任意频道即可起播下方节目单会自动定位到正在播出的节目。功能拆解M3U 自动分组订阅文件自带的分组字段会被读出并归类上千个台按央视、地方、体育分好类找台不用在长列表里翻。节目单流式解析EPG 的 XML 动辄几十 MBsrc/app/api/live/epg/route.ts 采用逐行读取只保留订阅里实际出现的 tvg-id频道在节目单中的编号对应节目大文件也不爆内存频道卡片上直接显示在播节目。播放器一键换源基于 ArtPlayer 加 HLS.js负责在浏览器里播放 HLS 分片流的库右侧面板列出各资源的带宽与延迟台卡顿时点一下切到快的资源不用退出重找。问题排查频道列表为空频道数显示 0可能原因订阅源失效或该源要求特定 User-Agent 才放行。处理动作换一条有效订阅或调整 UA 后回管理页重新刷新。频道能播但没有节目单可能原因EPG 地址填错或 EPG 与 M3U 里同一频道的 tvg-id 对不上。处理动作打开两份文件核对同一频道的 tvg-id 字段是否一致。部分频道无法播放可能原因源本身失效与 LunaTV 无关。处理动作用换源面板切备用资源或把能正常看的频道加入收藏。下一步建议先把日常常看的台加入收藏再留意订阅方 EPG 地址的更新节目单就不会断档。【免费下载链接】LunaTV本项目采用 CC BY-NC-SA 协议禁止任何商业化行为任何衍生项目必须保留本项目地址并以相同协议开源项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTV创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考