akiralereal/iptv
开箱即有 800+ 可稳定流畅播放频道的自托管 IPTV 直播源管理与分发系统,聚合了央视频、咪咕、央视、卫视、凤凰卫视、亚太、国际、地方台、体育赛事、B 站直播、斗鱼直播、虎牙直播等,以及自定义抓取源和订阅,并提供 EPG 节目单与聚合功能;另外还自带 GUI 可视化管理后台,支持 Docker Compose 或 Node.js 运行,适合 NAS 与家庭服务器。
About akiralereal/iptv
akiralereal/iptv is an open-source project on GitHub, mainly written in JavaScript. 开箱即有 800+ 可稳定流畅播放频道的自托管 IPTV 直播源管理与分发系统,聚合了央视频、咪咕、央视、卫视、凤凰卫视、亚太、国际、地方台、体育赛事、B 站直播、斗鱼直播、虎牙直播等,以及自定义抓取源和订阅,并提供 EPG 节目单与聚合功能;另外还自带 GUI 可视化管理后台,支持 Docker Compose 或 It currently holds 941 stars and 298 forks with 14 open issues, and was last pushed on 2026-09-28 (repository created 2026-02-05).
Project Overview
Git Homed tracks it on the Today's Trending board, currently at rank #91 with 25 new stars today.
GitHub Repository Details
README
📺 iPTV
把分散的直播源,变成一套真正属于你的频道系统
自托管 · 模块化 · 可视化 · NAS 友好
🐳 Docker 部署教程 · 前往 Docker Hub →
推荐通过 Docker 在 NAS / 服务器上部署,镜像:akiralereal/iptv:latest
iPTV 是一个面向家庭影音与 NAS 用户的模块化 IPTV 直播源管理与分发系统。它内置央视频、咪咕、B站、虎牙、斗鱼及多地区广电等抓取模块,也能接入需要网页解析的内置源、维护者筛选的公开独立源、自定义直连地址和 M3U/TXT 订阅;所有来源统一完成聚合、去重、编排,再输出干净的播放列表与 EPG 节目单。
[!IMPORTANT]
本项目是自托管的软件工具。除项目自制的使用公告短片外,不托管第三方音视频节目;仓库及运行时可能整理互联网上公开可访问的播放地址与频道元数据,但“公开可访问”不代表内容属于公有领域,也不代表已获得复制、转播或商业使用授权。请仅在获得合法授权的范围内使用;如你是权利人并认为相关条目侵权,请按版权与侵权处理提交下架通知。
🖼️ 产品预览
我的频道 · 所有频道一处编排

源管理 · 每个内容来源独立、透明、可控

播放器实况 · 输出标准订阅,接入常用客户端

✨ 为什么选择 iPTV
| 📺 开箱即用 | 🧩 模块化源管理 | 🪄 可视化编排 | | --- | --- | --- | | 默认聚合 800+ 频道,其中央视频模块提供 63 个公开高清频道及 10 个本人账号可访问的会员频道,另有 B站、虎牙、斗鱼热门直播抓取和经筛选的公开独立源 | 央视频、咪咕、B站、虎牙、斗鱼及各广电抓取模块都有独立开关、配置和健康状态,按需启用,互不干扰 | 分组、排序、重命名、隐藏与批量管理,都在浏览器中完成 | | 🔗 自由接入 | 📡 稳定分发 | 👨👩👧👦 多端共享 | | 支持 M3U8 直链、网页自动提取,以及 M3U/M3U8/TXT 订阅批量导入 | 自动生成 M3U、TXT 与 EPG;提供兼容版、全代理版应对特殊播放器 | 多配置档与用户令牌,让每台电视、每位用户拥有自己的频道组合 |
[!TIP]
默认配置即可使用免费频道;需要更高画质时,再到「源管理」为对应平台配置你本人合法持有的账号。凭据只保存在自己的部署中。
📡 频道覆盖
默认部署目前可聚合 800+ 频道,并会随着平台模块、赛事内容和精选频道持续扩展。实际数量会因平台接口状态、地区网络和启用的模块而动态变化。
| 范围 | 当前覆盖内容 | | --- | --- | | 央视频直播 | 63 个免登录公开频道 + 10 个本人账号可访问的会员频道;公开台覆盖央视全套、CGTN 多语种和全国主要省级卫视,统一归入「央视频」分组 | | iPanda 直播 | 22 路免登录公开直播:成都与都江堰 2 个 24 小时总频道、18 个熊猫固定机位,以及江苏大丰麋鹿、云南白马雪山 2 路珍稀动物直播,统一归入「iPanda」分组 | | 央视与卫视 | CCTV 系列、CGTN、全国主要卫视频道 | | 地方频道 | 北京、天津、重庆、四川、贵州、安徽、广东(含广州、深圳、梅州)、广西、福建(含泉州、晋江、石狮)、江西、甘肃、青海、新疆、西藏、云南、吉林、黑龙江、内蒙古、宁夏、海南、河北、山西、陕西、湖北、辽宁(含沈阳、大连)、南京、青岛、浙江(含嘉兴)、江苏、山东、河南、上海、湖南等省市卫视与地面频道,并持续接入更多地区 | | 景观直播 | 央视网「直播中国」当前在线信号,以及吉林风景、美丽河北、Live 南京、青岛城市直播、上海慢直播等景观频道;数量随平台在线状态动态变化 | | 体育赛事 | 体育频道、赛事直播,以及昨天 / 今天 / 明天的动态赛事频道 | | 亚太与国际 | 精选列表提供 16 个经实验台验证的固定直连频道;独立模块另提供 YTN、NHK World 两个需要动态解析的公开频道,以及香港卫视、澳门莲花卫视两路官网直播 | | 综合内容 | 影视、文旅、教育、少儿、娱乐时尚等分类频道 |
播放列表首位默认提供项目自有的「公告」分组,内含三条自制短片:“欢迎使用 iPTV for iFansClub.com”展示使用方式、版权提醒和侵权联系说明;“央视频会员频道登录教程”演示 Docker / NAS 用户如何从浏览器复制 Cookie 把央视频登录态导入 iPTV;“「来源于网络」频道添加教程”演示如何在后台「🌐 源管理 → 👤 自定义源」用「🌏 添加「来源于网络」列表」卡片一键订阅仓库 from-the-web/from-the-web.m3u 里的网络第三方源。三者都不引用任何第三方节目素材。不想在电视上显示可以在后台「我的频道」逐条隐藏(随时可在「已隐藏」里恢复);只要显示,该分组就固定在第一位,不支持删除、移动、排序或重命名。
🧩 内容来源与抓取能力
iPTV 的重点不只是一份静态频道表,而是一套可独立开关、可观察状态、可持续刷新的内容接入体系。不同来源采用不同刷新、鉴权与代理策略,平台临时不可达时可在源管理中查看状态或关闭对应模块。
| 来源类型 | 已支持的典型内容 | 工作方式 |
| --- | --- | --- |
| 央视频直播 | 63 个公开频道 + 10 个需登录/VIP 的频道 | 公开频道继续匿名动态取票、自动切换备用 CDN;会员频道复用部署者本人在央视频站点的持久登录态,由网页播放器签发并解扰成本机 H.264/AAC fMP4 HLS,解决普通播放器直接拿会员流时“有声无画”。桌面本机可从源管理自动打开登录窗口;Docker / NAS 等没有桌面的部署从自己电脑浏览器的开发者工具里复制整段 Cookie 导入(会话 cookie 是 HttpOnly,书签工具拿不到),服务端之后自动续期 |
| iPanda 直播 | 成都、都江堰共 20 路熊猫直播,以及江苏大丰麋鹿、云南白马雪山 2 路珍稀动物直播 | 无需登录、无需配置;18 路固定机位使用支持网页直连的上游 CDN,2 个总频道和 2 路珍稀动物直播在播放时检查公开状态并自动切换上游 CDN,清单与媒体由本机安全代理。最高均为真实 720p,即平台所称“超清” |
| 平台直播抓取 | B站、虎牙、斗鱼 | 可按分类自动收录当前热门直播间,也可手动指定房间;播放时处理短效地址、画质选择和平台要求的请求头。B站支持扫码登录以使用本人账号可访问的画质,虎牙、斗鱼支持匿名公开直播 |
| 电视与赛事平台 | 咪咕、体育赛事 | 自动整理频道与节目单,并按账号权限、设备兼容性和平台接口状态选择可用画质;需要登录的能力仅使用部署者本人提供的凭据 |
| 凤凰卫视 | 凤凰资讯、凤凰中文、凤凰香港,归入 香港 | 仅三个电视直播频道;游客 480p,登录普通凤凰秀账号可获取 720p / 25 帧,无需付费会员。后台支持导入 Token / Cookie 并持久保存,播放时取新签名,原始 HTTP-FLV 由本机转发。内置精选列表里的三条第三方凤凰线路同在「香港」,与本模块三台并列保留作备用线路,不合并、不顶替;播放器按名聚合时本模块源排在前面 |
| 香港卫视 | 香港卫视一路电视直播,归入 香港 | 无需登录、无需配置;播放时先问源站当前在播的是哪一路,再换这一路的 HLS 入口。服务端把入口清单拍平成媒体清单后只中继清单,媒体分片由播放器直连上游 CDN。实测为 1280×720、H.264/AAC;节目单取自官网节目单接口(今明两天) |
| 澳门莲花卫视 | 澳门莲花卫视一路电视直播,归入 澳门 | 无需登录、无需配置;播放时从官网直播页的播放器配置读出当前带签名的 HLS 入口,入口在本机缓存五分钟、签名失效立即重读官网,每次播放都检查实时清单。服务端只中继清单,带独立签名的媒体分片由播放器直连上游 CDN,需要时也可用 ?relay=2 全代理;台标与节目单取自官网 |
| 北京广播电视台 | 北京卫视、BRTV 文艺 / 纪实科教 / 影视 / 财经 / 体育休闲 / i生活 / 新闻、卡酷少儿,以及北京时间当前公开活动或慢直播 | 公开直播免登录并自动排除失效项目;9 个电视频道需在后台导入本人北京时间 Cookie。凭据仅用于取流接口,不写入订阅、不发送到媒体 CDN;清单和分片由本机补齐防盗链请求头并代理 |
| 重庆广电 | 源站当前公开的 CQTV新闻 | 无需登录、无需配置;频道表自动同步,播放时匿名换取短效 HLS,清单、AES 密钥和媒体分片由本机全代理 |
| 四川广电 | 四川卫视、新闻、经济、文化旅游、影视文艺、妇女儿童、四川乡村、康巴卫视、四川卫视 4K 超高清 SDR,以及源站当前公开活动直播 | 活动直播有则显示、无则隐藏且无需登录;9 个固定电视台需使用部署者本人的四川源站登录态。后台提供书签工具读取源站 Token,服务端播放时动态换取短效地址,清单、密钥和媒体分片均补齐源站防盗链请求头并全代理 |
| 江西广电 | 江西卫视、都市、经济生活、公共农业、少儿、新闻、移动电视、陶瓷共 8 路 | 无需登录、无需配置;源站当前公开的是单档 720p,服务端按源站公开算法获取匿名短效 token,并在播放器每次轮询时重新拉取滚动清单;清单、密钥和媒体分片均补齐防盗链请求头并全代理 |
| 贵州广电 | 贵州卫视、公共、影视文艺、大众生活、生态乡村、科教健康、经济、移动电视共 8 路 | 无需登录、无需配置;播放时从源站公开 API 获取当前短效签名地址,播放器每次轮询重新拉取只有三个 3 秒分片的滚动清单,清单和媒体全代理;家有购物明确不纳入频道表 |
| 甘肃广电 | 甘肃卫视、文化影视、移动电视、少儿、科教、公共应急共 6 路 | 无需登录、无需配置;播放时从源站公开接口动态获取当前入口,每次轮询重新拉取滚动清单并中继给播放器,视频分片由播放器直连上游 CDN;入口轮换或接口短时抖动会自动重试和兜底 |
| 黑龙江广电 | 黑龙江卫视、都市、新闻法治、文体、少儿、影视、农业科教共 7 路 | 无需登录、无需配置;极光新闻 App 在用的官方入口,地址固定、不带签名,上游既不校验来源也不挑播放器标识,因此频道直接给直链,由播放器直连官方 CDN,本机不转发媒体。官方业务域名走 4430 端口而非 443。实测 7 路均为 1280×720、H.264 / AAC-LC,25 帧 |
| 云南广电 | 云视网云南卫视、都市、康旅、澜湄国际,以及七彩云端临沧、怒江、昭通共 7 路,统一归入 云南 | 无需登录、无需配置;省级四路由官网接口按「当前这档节目」签发 DVR 窗口地址,签名按路径签、无法预取,播放时重新换取,节目换档后下一次解析自然接上(分片序号连续,实测跨档不断流);地方三路按七彩云端目录取当前在线机位。两家回源要求不同,省级必须带官网来源头、地方不需要,清单与分片均由本机全代理。省级实测 1280×720 / 25 帧,地方分别为 720p25、1080p50 与 720×416 |
| 山西广电 | 山西卫视、黄河电视台、经济与科技、影视、社会与法治、文体生活 6 路省级频道,以及太原、朔州、忻州、阳泉、吕梁、晋中、长治、晋城、临汾、运城 10 路地市频道,共 16 路,统一归入 山西 | 无需登录、无需配置;省级频道的播放路径按官网播放器算法由「频道码 + 当天日期」算出,只认当天、零点即换,播放时按上海时区重算;地市频道播放前向官网签名接口换取短效地址。两家 CDN 都不校验来源与播放器标识,本机只中继清单,媒体分片由播放器直连官方 CDN,也可用全代理订阅。实测 16 路均为 1280×720、H.264 / AAC-LC,25 帧;节目单取自官网逐台节目单接口(今明两天),省级 6 路与太原、晋中、临汾有,另外 7 个地市台官方为空 |
| 陕西广电 | 陕西卫视、新闻资讯、都市青春、银龄、秦腔、体育休闲、农林卫视、移动电视共 8 路,统一归入 陕西 | 无需登录、无需配置;播放时现解官网看电视页下发的加密频道目录取当前地址——地址不带签名,但官网会整批换名、旧名立即失效,所以不写进播放列表;CDN 不校验来源与播放器标识,本机只中继清单,媒体分片由播放器直连官方 CDN(仅 HTTP),也可用全代理订阅。实测 8 路均为 720×404、H.264 / AAC-LC,25 帧(官网只有这一档);8 路都有官网当天节目单 |
| 西藏广电 | 西藏卫视、藏语卫视、影视文化共 3 路,统一归入 西藏 | 无需登录、无需配置;播放时从「珠峰云」App 的频道接口取当前带签名的 HLS 地址(签名只验清单,签发一小时后仍有效),频道表五分钟复用一次,清单被拒时立即重取。CDN 不校验来源与播放器标识、分片不带签名,本机只中继清单,媒体分片由播放器直连官方 CDN,也可用全代理订阅。实测 3 路均为 1920×1080、H.264 / AAC-LC,25 帧;官方没有节目单,西藏卫视与央视频同名,开着央视频时共用其节目单 |
| 天津广电 | 天津卫视、天津新闻、天津文艺、天津影视、天津都市、天津体育、天津教育 7 路,统一归入 天津 | 无需登录、无需配置;按津云 App 的 WiseTV 协议在播放时签发短效地址(App 内置应用参数,可用环境变量覆盖),签发接口每次在腾讯、网宿、百度三家 CDN 间轮换。网宿的播放会话绑定取清单那一方的播放器标识,播放器直连分片会被拒,所以清单与分片都经本机全代理;播放中直接轮询官方媒体清单,跨过 10 分钟的签名有效期也不断流、不换 CDN。台标用津云 App 的频道图标。实测 7 路均为 1280×720、H.264 High / AAC-LC,25 帧;节目单取自津云官方接口(今天、明天) |
| 青海广电 | 安多卫视 1 路,归入 青海 | 无需登录、无需配置;取自青海藏语网络广播电视台官网,播放时向官网频道接口换取带签名的地址,签名标称两小时,本机半小时换一次;CDN 不校验来源与播放器标识,本机只中继清单,媒体分片由播放器直连官方 CDN,也可用全代理订阅。实测 1920×1080、H.264 / AAC-LC,25 帧。官网、接口与 CDN 仅大陆网络可访问。官方节目单只有整点占位,暂无节目单 |
| 宁夏广电 | 宁夏卫视、宁夏公共、宁夏文旅共 3 路,归入 宁夏 | 无需登录、无需配置;黄河云公开的官方直播入口,地址固定、不带签名,上游不校验来源也不挑播放器标识,播放器直连官方 CDN,本机不转发媒体;节目单取自黄河云官方接口(只有当天) |
| 嘉兴广电 | 嘉兴新闻综合、文化影视、公共频道共 3 路,归入 浙江 | 无需登录、无需配置;频道入口来自嘉兴在线「看电视」页,播放时按频道向趣看的公开播放接口换取签名 HLS,本机只中继实时清单,媒体分片由播放器直连上游 CDN,清单与分片都限定在该频道的官方域名和路径;也可用 ?relay=2 全代理 |
| 梅州广电 | 梅州客家生活 1 路,归入 广东 | 无需登录、无需配置;梅州市广播电视台自有域名下的公开 HLS,地址固定、不带签名,播放器直连上游 CDN,本机不转发媒体 |
| 泉州广电 | 泉州新闻综合、泉州闽南语共 2 路,归入 福建 | 无需登录、无需配置;播放时向官网公开接口换取短期签名 HLS,两个签名接口都触发人机验证时改从官网另一个域名的播放页取地址;上游 CDN 拒绝部分播放器标识,清单与分片由本机以浏览器标识全代理;节目单取自官网播放页 |
| 晋江、石狮 | 晋江电视台、石狮新闻综合共 2 路,归入 福建 | 无需登录、无需配置;晋江市、石狮市融媒体中心官网直播用的 HLS,地址固定、不带签名,播放器直连官方 CDN;石狮节目单取自官网直播页,晋江官方目前只有占位 |
| 安徽广电 | 安徽卫视、经济生活、影视、公共、农业科教、综艺体育、国际频道共 7 路 | 无需登录、无需配置;按「安徽视讯」App 的公开算法解出鉴权密钥并逐路生成两小时签名,播放器每次轮询都重新拉取滚动清单;上游 CDN 只放行 App 播放器标识,清单与分片均以 App 标识经本机全代理 |
| 新疆广电 | 新疆卫视、维吾尔语新闻综合、哈萨克语新闻综合、汉语综艺、维吾尔语影视、体育健康、少儿共 7 路 | 无需登录、无需配置;播放时从丝路视听网当前 Nuxt 包静态解析当天公开签名配置,再调用源站接口签发约一小时有效的 HLS。服务端中继实时清单,媒体分片默认由播放器直连上游 CDN,也可用全代理订阅。某一路被源站重新标记禁播时只跳过那一路,其余照常 |
| 吉林广电 | 6 路省级频道、9 路地方台和 13 路慢直播,共 28 路 | 无需登录、无需配置;常规电视归入「吉林」,慢直播归入「吉林风景」。省级频道和季节性景观在播放时从源站加密接口获取短效 HLS,固定地方台和固定景观使用已验证的 HTTPS 入口;清单、密钥和媒体分片均由本机全代理 |
| 内蒙古广电 | 内蒙古卫视、蒙古语卫视等 8 路自治区频道,以及 12 路盟市频道,共 20 路 | 无需登录、无需配置;20 路全部归入唯一的「内蒙古」分组。播放时按奔腾融媒源站公开协议调用加密频道接口获取动态地址,并为清单、密钥和媒体分片补齐防盗链请求头后由本机全代理 |
| 亚洲与国际直播 | 2 个动态公开频道:YTN、NHK World;另有 16 个固定直连频道位于精选列表的独立标记区块 | 动态频道由独立零配置模块在播放时从平台接口获取当前 HLS,并由本机代理清单、密钥与媒体;固定频道使用实验台验证过的原始 HLS 地址,不经过该解析模块,避免重复和额外转发开销 |
| 广电抓取 | 北京、天津、重庆、四川、贵州、安徽、大连、广东、广西、福建、江西、甘肃、青海、新疆、西藏、云南、吉林、黑龙江、内蒙古、海南、河北、山西、陕西、湖北、河南、湖南、江苏、辽宁、南京、青岛、山东、上海、深圳、浙江、嘉兴、梅州、泉州、晋江、石狮、宁夏等 | 从各广电源站、公开接口或客户端公开直播能力获取当前地址;短效签名、防盗链、加密清单和 CDN 代理按模块分别处理 |
| 景观直播 | 央视网「直播中国」、吉林风景、美丽河北、Live 南京、上海与青岛城市景观等 | 按源站当前在线状态动态收录;离线、下架或源站调整时会自动减少,不以固定频道数承诺可用性 |
| 内置网页抓取源 | 如纬来体育等需要从公开页面解析当前地址的单频道源 | 内置抓取规则与定时刷新;每个源可配多个入口地址,主站打不开或抓不到时自动换备用地址重试,清单本身通过远程配置更新(改仓库文件即生效,无需升级镜像)。每个源均可单独关闭 |
| 精选公开独立源 | 体育、国际、港台、文旅、宠物、娱乐时尚等 | 项目维护的「精选频道」列表,收集公开可访问且经可用性检查的独立播放地址,并提供远程更新与本地快照兜底;可访问性检查不等同于版权授权审查 |
| 用户自有来源 | M3U8 直链、网页提取、M3U/M3U8/TXT 订阅 | 完全由部署者自行添加、排序、分组和控制在哪些配置档中显示,适合接入自有设备、合法订阅或已获授权的直播源 |
[!NOTE]
所有内置抓取模块、内置网页抓取源和精选频道都能在「🌐 源管理」中独立关闭;需要完全空白的频道管理器时可使用 mblank=true。平台名称及商标仅用于说明兼容性,本项目不隶属于、也不代表上述平台或内容权利人。
当前版本更新内容
v4.23.0 更新内容
本次为「福建加泉州新闻综合、晋江、石狮」版本:「福建」分组新增泉州新闻综合、晋江电视台、石狮新闻综合三个频道,都直接取自各台官网;泉州两个频道多了一条取流入口,更少遇到「官网要求人机验证」。升级镜像后重启即生效,现有配置与订阅无需改动。
- 新增泉州新闻综合:直接从泉州广播电视台官网取流,和泉州闽南语同一套做法:播放时向官网换取短期签名地址,清单与分片由本机转发;节目单取自官网播放页(只到今天),台标是官网首页的频道卡。「福建」模块里原本也有一路泉州新闻综合,来自海博 TV,但海博的频道接口现在一律返回 403,福建九个地市台都出不来,这一路先补上;以后海博恢复了,播放器里会看到同一频道的两条线路
- 泉州两个频道多一条取流入口,更少遇到「官网要求人机验证」:以前只有官网的两个签名接口,两个都被防火墙要求拖滑块时只能等冷却。现在多了一条:官网另一个域名的播放页里直接带着签好名的地址,两个接口都被拦时从这里取;上次从哪个入口取到,下次就先用哪个,被拦的入口不再每次都去碰。三个入口其实是同一个网站、各挂一套防火墙,只是多一条路,不能保证不被拦;三条都被拦时照旧暂停 5~30 分钟再试
- 新增晋江电视台、石狮新闻综合(网友推荐):泉州下辖两个县级市的电视台,新模块「晋江、石狮」默认开启、无需配置,归入「福建」。地址是两台融媒体中心官网直播用的固定 HLS,不带签名,播放器直连官方 CDN;晋江 720p,石狮 1080p。石狮的节目单取自官网直播页(今明两天);晋江官网的节目单目前只有「精彩节目」占位,暂时没有,官方排了会自动出来。台标:晋江用官方频道图;石狮官方没有频道台标,用石狮市融媒体中心的狮子标
- 内置台标库补上上视东方影视:上一版加回的咪咕上视东方影视漏收进内置台标库,这次补上
📑 目录
---🚀 快速开始
推荐使用 Docker Compose。只需要一个配置文件和一条启动命令,几分钟即可拥有自己的 IPTV 服务。
Docker 镜像:akiralereal/iptv · 查看版本标签。下面使用 latest 标签;使用 NAS 图形化容器管理器时,也可直接搜索 akiralereal/iptv,按下方配置设置端口和数据目录。
1. 创建配置文件
创建 docker-compose.yml:
services:
iptv:
image: akiralereal/iptv:latest
container_name: iptv
init: true # 回收 Chromium 僵尸进程
ports:
- "1905:1905"
environment:
- mport=1905 # 容器监听端口,与 ports 对应
# - mhost= # 可选:外部访问地址(如 http://192.168.1.100:1905)
# - mpass= # 可选:访问密码,设置后访问 http://ip:port/密码/...
volumes:
- ./data:/iptv/data # 数据持久化,不挂载则重建容器 / 升级镜像会丢配置
restart: always
2. 启动服务
docker compose up -d
升级时执行:
docker compose pull && docker compose up -d
3. 打开管理后台
部署完即可访问:
| 用途 | 地址 |
| --- | --- |
| M3U 播放列表 | http://your-ip:1905/interface.m3u(推荐带 .m3u 后缀;裸 /m3u 内容相同) |
| TXT 播放列表 | http://your-ip:1905/txt |
| EPG 节目单 | http://your-ip:1905/playback.xml |
| 管理后台 | http://your-ip:1905/admin(设了密码则 http://your-ip:1905/密码/admin) |
🧩 平台账号、画质等内容配置不用写进 compose:部署后进后台「🌐 源管理」在对应模块卡片里设置(支持扫码登录 / 书签工具),保存即时生效。备份 / 换机迁移用后台「设置 → 系统配置 → 🧳 配置备份 / 迁移」一键导出导入(logos/自定义台标需单独拷贝),或直接备份./data目录。更多环境变量与玩法见配置与进阶。
---
🧭 功能全景
四个页面,完成从内容接入到播放分发的整个流程:
| 页面 | 能做什么 | | --- | --- | | 📺 我的频道 | 分组、隐藏、排序、重命名与批量管理;按名字长期屏蔽频道、一次隐藏整批同前缀分组;查缺台标;建立多套配置档;复制标准版、兼容版或全代理版订阅地址 | | 🌐 源管理 | 管理抓取模块、内置源与精选频道;添加网页提取、手动直链或订阅源;检测失效频道并调整多源优先级 | | ⚙️ 设置 | 调整系统参数、频道别名、自动分组规则、EPG 聚合和用户令牌;导出或导入完整配置 | | ℹ️ 关于我们 | 查看当前版本并检查更新 |
修改源后 1-2 秒内自动重新生成播放列表;外部源配置存于数据目录 external-sources.json。
数据流一览
B站 / 虎牙 / 斗鱼 / 咪咕 ─┐
广电与景观抓取模块 ───────┤
iPanda 直播模块 ──────────┤
亚洲与国际直播模块 ───────┤
内置网页抓取源 ───────────┼─→ iPTV 聚合 / 去重 / 编排 ─→ M3U / TXT / EPG ─→ 电视 · 手机 · 电脑
精选公开独立源 ───────────┤
自定义直链与外部订阅 ─────┘
---
📺 播放器适配
| 播放器 | 推荐订阅 |
| --- | --- |
| DIYP / 百川影音 | TXT 订阅:/txt |
| TiviMate / APTV / Kodi / OK 影视 | 标准 M3U:/interface.m3u |
| 飞牛影视 | 标准 M3U:/interface.m3u,必须保留 .m3u 后缀 |
| 极空间极影视、部分老电视盒 | 兼容版:/interface.m3u?relay=1 |
| 使用兼容版仍无法播放的设备 | 全代理版:/interface.m3u?relay=2,兼容的频道会由服务器转发视频分片 |
[!NOTE]
能使用标准版就无需切换;标准版链路最直接。播放器不跟随跳转时使用兼容版,只有兼容版仍失败时才使用全代理版。
> 部分内置模块会按平台要求自动为单个频道启用全代理,与所选订阅版本无关。例如央视景观的 CDN 会校验源站请求头,因此即使使用标准订阅,该分组的清单和视频分片也会自动经过 iPTV 服务端;其他可直连频道不受影响。
---
❓ 常见问题
iPanda 网页端可以选“超清”,为什么这里只有 720p?登录能解锁 1080p 吗?
iPanda 网页播放器的清晰度名称与实际分辨率依次是:流畅 640×360、标清 854×480、高清 1024×576、超清 1280×720。播放器把 1080p 另称为“蓝光”,但当前 22 路 HLS 均未提供该档;逐路检查最高档视频编码也都是实际 1280×720,不是清单虚标。
这些频道的匿名接口已经返回公开可播状态,页面没有启用 VIP 清晰度限制。登录不会为当前 iPanda 直播解锁 1080p;主项目检测到的最高档 720p 正好就是播放器菜单中的“超清”。两个 24 小时总频道提供上述四档,其余 20 路为单档 720p。
北京台为什么只看到慢直播?怎样启用 9 个电视频道?
北京时间的公开活动和慢直播不需要登录,会自动出现;北京卫视、BRTV 各地面频道与卡酷少儿需要本人站点登录态。进入「🌐 源管理 → 北京广播电视台」,按卡片里的入口打开站点并登录;在浏览器开发者工具的 Network(网络)里刷新页面,点开 getUserInfo 请求,在 Request Headers 中单击 Cookie 的值后按 ⌘C(Windows/Linux 按 Ctrl+C),粘贴回后台保存即可,不需要鼠标右键。也可以用 mBtimeCookie 环境变量配置。
模块会先验证 Cookie:有效时加入 9 个电视台,失效时只隐藏电视台并给出提示,免登录直播继续可用。凭据只发给北京时间账号 / 取流接口,不会写进订阅或发送给媒体 CDN。北京时间媒体要求源站防盗链请求头,因此该模块固定由服务端代理 HLS;本地 macOS 会自动沿用系统 HTTPS 代理,Docker / Linux 可按需设置标准 HTTPS_PROXY 环境变量。
凤凰卫视怎样开启 720p?需要付费会员吗?
进入「🌐 源管理 → 凤凰卫视」,导入本人凤凰秀账号的 App.user.token 后保存即可。支持粘贴 Token 值或包含它的完整 Cookie;模块内提供书签工具和获取步骤,也可用 mFengshowsToken 环境变量配置。保存后的凭证随主项目配置持久保留,重启无需重填;失效时重新获取。
2026-09-03 实测:游客三台均为 854×480;普通账号登录后三台均为 1280×720、25 fps、H.264,无需付费会员。接口档位叫 fhd,实际是 720p。
本模块只提供凤凰资讯、凤凰中文、凤凰香港三路直播,不接入回看、点播、活动直播或栏目目录。三台归入香港分组;其它来源(内置精选列表、外部订阅)提供的同名凤凰条目不会被顶掉,原样保留作备用线路;播放器按名聚合「源1 / 源2」时本模块源排在前面,即默认源。播放地址实时向上游获取,沿用地区调度,Token 不发送到媒体 CDN 或写入订阅。直播使用 HTTP-FLV,本机仅转发不转码;网页播放器已支持,外部播放器也需支持 HTTP-FLV。
后台有央视频、虎牙、斗鱼,LunaTV 却导入不到?
部分 LunaTV / MoonTV 版本只把 #EXTINF 紧接的下一行当播放地址,遇到中间的 #EXTVLCOPT:network-caching 缓冲提示会漏掉整个频道(issue #114)。本项目的 M3U 输出已省略仅含缓冲提示的选项块,也兼容升级前的频道缓存。运行包含此修复的版本后,在 LunaTV 管理后台刷新直播源即可,订阅地址无需更换;缓冲时长由播放器自行设置。
B 站直播已与虎牙、斗鱼一样改为播放时解析、由本机中继清单,不再依赖 #EXTVLCOPT 请求头。其它来自订阅的直连源若带 Referer / User-Agent,那是播放所需的请求头,仍会保留;若使用的 LunaTV 版本不能解析并传递这些选项,这类频道需要在客户端侧适配,不能靠删除请求头或切换 relay=1/2 修复。
某些播放器点开频道后只有声音、没有画面?
这通常是 H.265(HEVC)兼容性问题:部分平台的直播流默认使用 H.265,而播放器无法解码。进入「🌐 源管理」,打开对应模块的配置并取消「启用 H.265 原画」,保存后重新播放。通过环境变量部署时可设 menableH265=false;个别频道仍有问题时再设置 menableHDR=false。
频道和台标正常,但播放一直转圈?
播放器可能不跟随 302 跳转。进入「我的频道」,点击订阅地址旁的「🩹 兼容版」,将新地址重新添加到播放器即可。兼容版由服务器直出播放清单,视频仍由播放器直连 CDN,不占用服务器的视频转发带宽。
隐藏掉的频道过几天又自己冒出来了?
「隐藏」绑的是频道 ID,而 ID 是按播放地址算的——源换了地址,那条隐藏就失效了。带签名 / 有效期参数的地址(?expire=…&sign=…)已经不再影响 ID;换了路径或域名的仍会。想让某个台以后都别出现,用「我的频道」里频道旁的「屏蔽」按钮,或右上角「🚫 屏蔽规则」按名字配一条:规则只看名字,源换址、频道每天重建都照样生效,删掉规则即恢复。像「体育-昨天 / 今天 / 明天」这类每天重建的分组,逐条隐藏没有意义,对其中一个分组点「隐藏分组」时会提议把同前缀的一起隐藏,以后新出现的也自动挡掉。
台标或节目单缺了一些,怎么补?
台标:用频道自己的官方台标,由本机托管(服务端下载校验后从你自己的服务器提供,坏图自动换下一个来源);官方图取不到、或 m3u 本来就没写台标的,用仓库自己维护的内置台标(logo-pack/)兜底,不联网。默认不再引入别人维护的公共台标库,想用的话自己设 mexternalLogoBase,规则见 LOGO.md。都没有的会留空(播放器画自己的占位图,不再裂图)。点「我的频道」右上角「🖼 缺台标」可以列出当前档里所有没图的频道,逐个点进详情上传;或直接把 <频道名>.png 放进数据目录的 logos/,优先级最高。景观、慢直播这类本来就不是台名的,留空即可。
节目单:按「咪咕自带 → 各模块从官方接口取 → 外部 EPG 源」的顺序补,前面给了的频道后面不再覆盖。模块自带节目单目前接入了央视频(央视与卫视频道),河南、浙江、江苏、广东、深圳、广西、海南、山西、陕西、天津、上海、山东、河北、大连、南京、湖北、福建(含厦门、福州)、新疆、云南、宁夏、泉州(新闻综合、闽南语)、石狮新闻综合频道的官方节目单,北京(7 个电视频道)、甘肃卫视、延边卫视取自央视网,以及凤凰卫视、香港卫视、澳门莲花卫视、NHK World、YTN;湖南、内蒙古、甘肃地面频道、吉林(延边卫视以外)、四川、贵州、重庆、黑龙江、广州、辽宁北斗、江西、安徽、西藏、青海、嘉兴、梅州、晋江官方暂时没有可用的节目单。咪咕频道(CCTV 各台取自央视网)与多数模块取今明两天;部分省台官方只发当天的节目单,零点后要等下一轮更新才有新一天的。各模块节目单的来源、覆盖与没接上的原因见 EPG.md。外部 EPG 源默认不带:先后内置过的 51zmt 已退化到只剩央视卫视,erw 10 月 1 日起停止免费下载。需要更广的覆盖,可在「设置 → EPG 聚合」自己加 XMLTV 源;某个源想压过官方节目单(比如它给的天数更多),勾上「优先于官方节目单」,它当前有节目的频道就改用它,源停更只剩旧数据时自动让回官方。老部署里没改过的内置默认源会被自动删掉;改过名的那条程序不会动,列表里会有一行提示。精选列表里的港台频道、各地景观和 B 站 / 虎牙 / 斗鱼这类没有公共节目单,属于正常。
使用兼容版后仍然无法播放?
再切换到「🚚 全代理版」,即 /interface.m3u?relay=2。对明确支持服务端代取的频道,它会把清单地址改为本机同源地址并由服务器转发视频分片,能兼容更多老旧或限制较多的播放器;若上游平台不允许服务端拉取分片,则保留该模块的安全播放模式。视频流经服务器会增加带宽占用,因此能使用标准版或兼容版时,不建议开启全代理版。
央视频会员频道怎样登录?登录后会不会很快失效?
63 个公开频道不需要登录,服务会在真正播放时动态取票、自动续签短效地址,并在主线路异常时切换备用 CDN。
另有 10 个会员频道会一并出现在播放列表中。两种登录方式任选其一:
- 服务在有桌面的电脑上跑:在那台电脑上用
localhost打开后台,进入「🌐 源管理 → 央视频」,点击卡片里的央视频登录按钮,在弹出的窗口完成本人账号登录即可。 - Docker / NAS 等没有桌面的部署:在自己电脑的浏览器登录央视频网站,按 F12(Mac 按 ⌥⌘I)打开开发者工具切到 Network,刷新页面,点开任意一个
yangshipin.cn的请求,在 Request Headers 里单击Cookie的值后按 ⌘C(Windows 按 Ctrl+C)复制,粘贴到「🌐 源管理 → 央视频」卡片的导入框并「导入登录态」。必须从请求头复制:央视频的会话 cookie(vusession、accesstoken 等)是 HttpOnly,网页脚本和书签工具读不到,只有请求头里才有完整的一套。服务端会把这组 cookie 种进自己的浏览器 profile 并让站点 SDK 当场校验,成功后显示昵称与 VIP 状态;「公告」分组里的教程短片演示了全过程。
会员视频必须经网页播放器解扰后才能被普通 IPTV 客户端正确解码,因此播放期间服务端会运行 Chromium,并在内存中保留最近少量 H.264/AAC fMP4 片段。最多同时保留 3 个会员频道,3 分钟无人请求后释放,换台后切回来不用重新起桥;每路起播前先攒够约 18 秒(至少三个分片)再交给播放器,并催官网播放器立即续拉后续分片;VLC 内核的播放器(Ceau Player、VLC 等)会拿到专门的清单,避免它开播几秒就卡一下。首次自动登录目前只支持有桌面环境的本机运行:Docker/NAS 无法把服务端窗口弹到你的电脑,管理页会明确禁用该按钮。浏览器 profile 等同账号凭据,不包含在 JSON 配置备份中,换机或跨平台部署请重新登录。
央视频频道能回看吗?节目单里点回放怎么还是直播?
不能,央视频模块只做直播。它的频道在订阅里已明确标为 catchup="none",支持该约定的播放器(TiviMate、OTT Navigator、Kodi IPTV Simple 等)不会再给这些频道显示回看入口;节目单本身不受影响。
要回看同一个台,切到播放器里同名频道的咪咕线路(播放器按名聚合「源1 / 源2」时选咪咕那一路),咪咕源的回看链路是现成的。不单独给央视频做回看,是因为央视频回看按频道和时段受版权方限制(如 CCTV13 全时段不提供),做出来体验也是时好时坏。
服务卡死、硬盘不停读写,日志里反复出现「开始提取」「Navigation timeout」「浏览器会话已启动」?
这是多个无头 Chromium 同时在跑把机器(尤其是内存 ≤2G 的 NAS / 小主机)拖进了交换分区。网页抓取型的源(如纬来体育)、广东台续签、央视景观、湖北台防盗链都需要起一个 Chromium,每个约占 200~400MB;此前它们各自启动、互不知情,且一个当前抓不到的源会在每个 5 分钟检查里都重新起浏览器再试一遍。
现已改为:全进程共用一个启动器,同时存活的 Chromium 不超过 mbrowserConcurrency(默认 2,超出的排队,常驻会话空闲时会主动让位);抓取失败按 10 → 20 → 40 分钟指数退避,不再每 5 分钟重试;网页抓取时不下载视频分片、图片、字体,取票会话也拦掉图片、字体(央视景观、湖北台连媒体请求一并拦掉;广东台的页面须保持在线,否则源站会立刻作废刚发的票据),并关闭 Chromium 磁盘缓存,5 分钟无人取票就整个关掉浏览器。若机器内存很小,建议在 compose 里设 mbrowserConcurrency=1;不需要网页抓取的可直接在「🌐 源管理」关闭对应的源或模块。反过来,若你经常同时观看广东、湖北、央视景观里的多路频道(这三个模块各需要一个常驻浏览器),内存又够(4G 以上),可设 mbrowserConcurrency=3 避免它们互相让位、反复重启浏览器。
想在本地几分钟内验证这套机制:msourceTickSeconds=20 mbackoffBaseMinutes=0.5 node app.js 可把 5 分钟检查周期与 10 分钟退避基数压缩(仅供测试,生产不要设);node scripts/verify-browser-launcher.mjs 会用本机模拟直播页跑一遍并发上限 / 空闲让位 / 分片拦截 / 失败退避。
央视景观需要登录吗?为什么日志显示浏览器会话已启动?
不需要登录。日志中的「央视直播中国浏览器会话已启动」表示服务端启动无界面的 Chromium,执行央视网页播放器并获取临时 HLS 地址,不会打开登录页,也不会保存央视账号或 Cookie。若相邻日志出现「数字频道号 + 由于版权原因,请登录后观看」,该数字频道号属于咪咕,与央视景观无关。
央视 CDN 会同时校验播放清单和视频分片的源站请求头,普通播放器无法自行补齐,因此央视景观固定使用全代理:只有实际观看时才产生流量,单路常见约 1–3 Mbps,多个观看设备会叠加。升级后请重启服务或重新生成播放列表,并在播放器中刷新订阅;若解析失败,服务日志会明确显示「央视直播中国链接请求失败」及具体原因。
内置抓取模块和精选频道是否代表内容已经获得转载授权?
不代表。抓取模块说明的是软件能够与公开页面或接口协作,精选频道的检查目标是确认地址格式和播放可用性;两者都不是对节目版权、地域许可或转播授权的法律审查。公开可访问的地址也可能因权利限制、平台政策或地区差异随时失效。
软件本身按 GPL-3.0 授权,如何使用、修改、分发不受这里限制;受限的是内容:请只接入你已获得授权或本人合法订阅的来源,不要把未获授权的频道拿去公开售卖订阅、重新广播、绕过付费或地域限制,也不要分享他人的账号凭据。对某项来源权利状态有疑问时,可在「🌐 源管理」关闭对应模块或精选频道,并优先使用自己的合法订阅或自有信号。权利人下架流程见版权与侵权处理。
播放器订阅类型的快速选择请看上方播放器适配;遇到新的兼容性问题,欢迎提交 issue 补充。
---
🔧 配置与进阶
🎮 零配置即可使用央视频 63 个公开频道;央视频会员台及其他账号能力可在后台「🌐 源管理」按模块关联本人账号(自动登录 / 扫码 / 书签工具)。管理路径、更新间隔等在「设置」页配置——都不必记环境变量。账号只保存在你自己的部署里,令牌与浏览器 profile 都等同登录态、请勿外传。
环境变量参考
🔹 常用配置(够大多数人用)
| 变量名 | 默认值 | 说明 |
| --- | --- | --- |
| mport | 1905 | 容器监听端口 |
| mhost | | 公网 / NAS 访问地址,如 http://192.168.1.100:1905 |
| mpass | | 访问密码(可选),设置后访问 http://ip:port/密码/... |
| mdataDir | /iptv/data | 数据持久化目录(镜像已默认此值并声明数据卷);建议 -v ./data:/iptv/data 绑定宿主机便于备份。老部署挂的 /migu/data 继续兼容,无需改动 |
📋 完整配置表(全部环境变量)
| 变量名 | 默认值 | 类型 | 介绍 |
| --- | --- | --- | --- |
| mport | 1905 | number | 本地运行端口号 |
| mhost | | string | 公网/自定义访问地址
格式 |
| mpass | | string | 访问密码 大小写字母和数字
添加后访问格式 ... |
| mdataDir | 镜像内 /iptv/data;node 直跑为当前目录 | string | 配置 / 数据持久化目录(仅环境变量可设)
旧镜像路径 /migu/data 继续兼容:新路径无数据、旧路径有数据时自动沿用旧路径 |
| madminPath | admin | string | 管理页面自定义路径,如填 console 则用 /console 访问后台(/admin 失效)
保留字 api/player/favicon.ico 与非法值会回退 admin |
| muserId | | string | 咪咕模块的账号 ID(仅需高画质 / 会员内容时配置)
推荐改在后台模块卡片里配置(附书签工具一键获取) |
| mtoken | | string | 咪咕模块的登录 token(同上) |
| mrateType | 3 | number | 咪咕模块画质
2: 标清 (480p)
3: 高清 (720p)
4: 蓝光 (1080p,需VIP)
7: 原画 (1080p+,需VIP)
9: 4K (2160p,需VIP) |
| mbiliSessdata | | string | 哔哩哔哩模块的登录态 SESSDATA(不填限「超清」,填了解锁「原画」)
推荐改在后台模块卡片里扫码登录 |
| mBtimeCookie | | string | 北京时间站点登录 Cookie(仅北京 9 个电视频道需要;公开活动 / 慢直播免登录)
推荐改在后台「源管理 → 北京广播电视台」配置 |
| TIANJIN_WISE_AK / TIANJIN_WISE_SK / TIANJIN_WISE_3DES_KEY | 内置 | string | 天津模块的津云 App 应用参数,平台更换参数时覆盖用,平时不用设 |
| menableHDR | true | boolean | 是否开启 HDR(vivid/4kvivid)
设 false 关闭 |
| menableH265 | true | boolean | 是否开启 H.265 原画
有兼容性问题(如只有声音没画面)时设 false 关闭 |
| menableClientDispatch | false | boolean | 客户端就近取流:服务器与观看设备不同运营商导致抓取频道跨网卡顿 / 播不了时设 true
同网部署无需开启 |
| mupdateInterval | 8 | number | 节目单 / 源更新间隔(小时),不建议过短 |
| mexternalLogoBase | 空(不配) | string | 频道没有可用的自带台标时,按频道名到公共台标库兜底取图的基址。默认不配:台标库是别人维护的,不替你引入
用 taksssss 台标库就填 https://gcore.jsdelivr.net/gh/taksssss/tv@main/icon/(索引会自动带上);换成其它库需保证 <基址><频道名>.png 可访问。本地 logos/ 里的图始终优先 |
| mexternalLogoIndex | 跟随 mexternalLogoBase | string | 台标库的「频道名 → 图片」索引地址。有索引才知道库里到底有没有这张图:没有就不给这个台标,而不是写一个必定 404 的地址(裂图)
索引每 7 天下载一次并落盘缓存,拉不到时自动退回按名兜底。mexternalLogoBase 填的是上面那个 taksssss 地址时自动带上它的索引,其它库默认关闭(别人的清单对不上你的库);留空同样关闭 |
| menableLogoCache | true | boolean | 台标本机托管:每轮更新把要用的台标下载到数据目录 logo-cache/,逐张确认是图片后由本机提供,播放器不再直连各台图床与台标库;源自带的台标坏了(404、不是图片)自动换下一个来源。设 false 退回直接写原台标地址 |
| mrefreshToken | true | boolean | 是否每月自动续期平台 token
可能导致封号,可设 false 关闭 |
| mblank | false | boolean | 空白模式总开关,设 true 后下面三项内容开关默认翻转为关
细粒度开关显式设值时优先于本项 |
| menableMigu | true | boolean | 是否启用咪咕抓取模块(CCTV/卫视 + 体育赛事 + EPG)
设 false 后体育赛事、回看、对应 EPG 不可用 |
| menableBuiltInSources | true | boolean | 是否启用内置单频道源(纬来体育 / Red Bull / 4K 卫视 等) |
| menableBuiltInSubscriptions | true | boolean | 是否启用内置订阅源(精选频道)
已添加的可在「源管理」删除,删后不复活 |
除mdataDir/mport外,多数项也可在后台修改(模块项在「🌐 源管理」,平台级项在「设置」页),保存即时生效(端口与更新间隔需重启)。升级用户:环境变量与旧配置继续有效,首次启动自动迁移,无需改动。
📺 多套配置档(给不同电视各一套)
后台「📺 我的频道」标题行右侧可新建 / 切换配置档,每档独立维护隐藏 / 分组 / 排序 / 重命名,互不影响;每台电视填各自的地址(每档底部可复制),如 http://你的IP:1905/interface.m3u?profile=woshi。各档共