iptv

akiralerealGPL-3.0活跃维护

自托管 IPTV 直播源管理与分发系统,开箱即带 800+ 稳定频道,聚合央视频、咪咕、卫视及抖音、B 站等直播源,自带 EPG 节目单和可视化管理后台,适合 NAS 与家庭服务器部署。

开箱即有 800+ 可稳定流畅播放频道的自托管 IPTV 直播源管理与分发系统,聚合了央视频、咪咕、央视、卫视、凤凰卫视、亚太、国际、地方台、体育赛事、抖音直播、B 站直播、斗鱼直播、虎牙直播、百视通、红牛、Redbull、NBA、足球、Xumo、体育直播等,以及自定义抓取源和订阅,并提供 EPG 节目单与聚合功能;另外还自带 GUI 可视化管理后台,支持 Docker Compose 或 Node.js 运行,适合 NAS 与家庭服务器。

v4.70.0发布于 2026-11-09 14:38 UTC1,934star +48 / 7 天511fork同步于 2026-11-10 23:46 UTC

怎么上手

由 README 提炼,执行前请确认
docker pull akiralereal/iptv:latest
docker compose up -d
硬件要求按 README 说明

README 未说明具体 CPU/内存/显存要求;推荐在 NAS 或家庭服务器上通过 Docker 部署,也可用 Node.js 运行。

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

自托管 IPTV 直播源管理与分发系统,聚合多平台频道并输出干净的 M3U 与 EPG

自托管 IPTV 直播源管理与分发系统,开箱即带 800+ 稳定频道,聚合央视频、咪咕、卫视及抖音、B 站等直播源,自带 EPG 节目单和可视化管理后台,适合 NAS 与家庭服务器部署。

核心能力

  • 内置央视频、咪咕、B站、抖音、虎牙、斗鱼等抓取模块,可独立开关
  • 统一聚合去重编排后输出 M3U、TXT 播放列表与 EPG 节目单
  • 提供 GUI 可视化管理后台,分组排序重命名隐藏均在浏览器完成
  • 支持 M3U8 直链、网页自动提取与 M3U/TXT 订阅批量导入
  • 多配置档与用户令牌,让每台设备拥有独立频道组合

容易踩的坑

部分频道(如央视频会员频道、北京、四川广电等)需在后台导入本人账号 Cookie 或 Token 才能使用;百视通、Red Bull TV、Xumo、YouTube 直播、WebSports 等模块默认关闭,需在源管理手动开启;访问 YouTube、Google Video 等海外源时需在「设置 → 网络代理」配置代理,否则服务端无法取流。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v4.70.0
  1. v4.70.0v4.70.0 · 「来源于网络」改名「网络分享」并新增 44 个频道、修复江苏台播放不了最新正式版2026-11-09 · 2026-11-09 14:38 UTC

    本次为「「来源于网络」改名「网络分享」并新增 44 个频道、修复江苏台播放不了」版本:默认自带的「来源于网络」订阅改名「网络分享」,频道从 34 个增加到 78 个;修复江苏模块全部频道播放不了;修复「网络分享」里 CH8、HOY 等频道勾上「经网络代理转发」后播不了;后台「内置订阅源」卡片显示精选频道的实际数量。拉取新镜像、重建容器后即生效(只重启容器不会换成新版本),现有配置无需改动。从 v4.63.0 及之后的版本升级上来的,只需下载有变化的部分(几十 MB);从更早的版本直接升级,仍要完整下载一次。

    • 「来源于网络」改名「网络分享」,新增 44 个频道:默认自带的这份订阅从 34 个频道增加到 78 个,原有 34 个频道和地址不变。新增的有台湾的公视、民视、台视、纬来日本、纬来育乐,马来西亚 Astro 四台(AOD、AEC、爱奇艺、欢喜台),国际新闻 CNN、GB News、RT News、TV Brics、Global News、WION、The First,CW、Sony One、Rakuten、LG 1 等海外影视频道,以及 RT Documentary、Inside Outside、Outdoor Channel、Kartoon Channel、Reality。这些都是网络上分享的地址,本项目不维护、不保证可用,部分线路要海外网络或代理才能看,需要时在它的卡片上勾「经网络代理转发」(纬来两台是 RTMP 地址,勾了也由播放器直连)。频道列表直接从仓库拉取,所有版本在订阅下次自动刷新后都能看到新频道(想马上用就在卡片上点「导入并保存」),再在播放器里刷新一次订阅。改名升级后生效:订阅名还是「来源于网络」(或更早的「海外」)的自动改成「网络分享」,启停、代理、频道的排序隐藏改名和配置档都不变;自己改过名字的保留原名,删掉了的不会加回来。

    • 修复江苏模块全部频道播放不了:江苏网络台官网更换了播放地址的签名参数,原参数生成的地址会被服务器拒绝(403),频道列表仍能正常获取。现已同步官网当前参数,恢复江苏卫视、4K 及地面频道的播放。

    • 修复「网络分享」部分频道勾上「经网络代理转发」后播不了(#235):CH8、HOY 这类频道的主清单里,下一层清单的地址不带 .m3u8 后缀,以前会被当成视频分片原样转给播放器,里面的分片地址没换成本机转发地址,播放器拿着它请求本机、被访问密码拦下(403)。现在按清单结构认出下一层仍是清单,照样换成本机转发地址,这些频道开着代理也能播。独立音轨、字幕清单的地址不带后缀时同样处理。自己添加的订阅里同样形态的频道也一并修好。

    • 后台「内置订阅源」卡片显示精选频道的实际数量:卡片上原来写死「约 150 个频道」,精选频道几经调整后实际只有二十来个,数字早就不对。现在按精选列表最近一次拉取到的数量显示,批量开关里关掉它时的提醒也一样;卡片上的分类改成实际收录的地方台、卫视、港台、国际等。


    升级:拉取 akiralereal/iptv:4.70.0(或 latest),重建容器即可;数据卷与现有订阅不受影响。完整更新历史见 CHANGELOG.md。

  2. v4.69.0v4.69.0 · 新增 Xumo Play、YouTube 播放失败说清原因、自定义订阅可从最高画质起播2026-11-08 · 2026-11-08 13:49 UTC
    查看更新说明

    本次为「新增 Xumo Play、YouTube 播放失败说清原因、自定义订阅可从最高画质起播」版本:海外分类新增 Xumo Play,四百多路 Xumo 官方免费直播;YouTube 播不了时写明是网络、出口、地区还是账号权限的问题,订阅后面多了「检查播放」;自己添加的 M3U 订阅可以标记频道从最高画质起播;精选频道里的几路海外频道挪进「来源于网络」或下线。拉取新镜像、重建容器后即生效(只重启容器不会换成新版本),现有配置无需改动。从 v4.63.0 及之后的版本升级上来的,只需下载有变化的部分(几十 MB);从更早的版本直接升级,仍要完整下载一次。

    • 新增 Xumo Play:到「🌐 源管理 → 海外」打开「Xumo Play」(默认关闭),会多出 25 个「Xumo · 分类」分组,共 422 路 Xumo 官方免费直播,以美国的新闻、地方新闻、体育、影视和真人秀为主,分组名沿用官方的英文分类。宗教类频道一律不收。默认从最高画质起播,保留音轨和字幕。画面、声音和字幕都由服务器转发,会用服务器的带宽和代理流量;能不能看取决于服务器的网络和 Xumo 的地区限制,看不了到「设置 → 网络代理」填代理。频道表每天更新一次、每 6 小时检查一次:新上的频道先确认能正常播放才加入,官方撤下的频道要隔天再确认一次才移除,更新失败时沿用上一次的频道表。关掉模块后这些频道从播放列表里移除,正在播的也会停。这些频道暂时没有节目单。镜像里为此加了 FFmpeg,只用来检查新频道能不能播,播放不转码。

    • YouTube 播放失败时说清是哪里的问题:以前 YouTube 频道播不了,日志里常常只有「YouTube 解析失败」或「此直播在当前出口无法匿名播放」,看不出该从哪儿查。现在报错开头先写原因——网络不通、出口被拦(要求人机验证)、请求受限、地区限制、需要登录、需要会员权限、未开播、直播已结束、解析超时——后面跟着该怎么办。会员专享、年龄验证、私享这类直播模块本来就播不了,报错会直接说明,请到 YouTube 官方页面观看。「查看场次」里因为地区限制、会员专享暂时打不开的固定场次,也不再被当成失效、列进一键移除。

    • YouTube 订阅可以「检查播放」:「🌐 源管理 → 海外 → YouTube 直播」的订阅列表里,每个关注的频道和固定场次后面多了「检查播放」,点一下由服务器试着打开当前这一场直播,结果显示在这一行下面:打得开说明直播入口可用(不含音视频本身,实际播放仍以播放器为准),打不开就显示上面那些原因。

    • 自己添加的订阅可以让频道从最高画质起播:有的直播源主清单把最低画质排在第一位,AVPlayer 这类播放器会从最低档起播、先糊一阵。现在在自己添加的 M3U 订阅里,给频道的 #EXTINF 行加上 x-top-first="1",播放时服务器先取一次主清单、把最高画质挪到最前,其余档位、音轨和字幕都保留,网速不够照常降档;视频仍由播放器直连,不占服务器带宽,勾了「经网络代理转发」的照旧整条经代理。写法见自定义源说明。只对本项目输出的播放列表有效,把原始 M3U 直接交给播放器不会起作用。「来源于网络」列表里的 World Poker Tour 已经标上:订阅下次自动刷新后(想马上用就在它的卡片上点「导入并保存」),在播放器里刷新一次订阅即可。

    • 精选频道里的几路海外频道挪走或下线:Pet Club TV、WildEarth、Love Nature 4K、World Poker Tour、NHL FAST 从精选频道挪到默认自带的「来源于网络」列表,地址、分组和台标不变;公视高清、民视高清、台视高清、TVBS亚洲、Reuters、UFC 24/7 从精选频道下线,其中 Reuters 和 UFC 在新的 Xumo Play 模块里有(Reuters 60、UFC)。「来源于网络」里的纬来日本、纬来育乐同时删除。精选频道和「来源于网络」都是直接从仓库拉取的,这部分改动所有版本都已生效;「亚洲与国际直播」模块不再单独提供 World Poker Tour,这一点升级后生效。之前删掉了「来源于网络」又想看这五路的,到「🌐 源管理 → 自定义源」点「添加「来源于网络」列表」,再点「导入并保存」。

    • 经网络代理转发的自定义源取不到时,报错说清楚原因:以前报错页上只有 UND_ERR_SOCKET、fetch failed 这类错误码,看不出问题在哪。现在会写明是连不上代理,还是「代理已接通,往对方站点的连接被断开」「代理已接通,但它连不上对方站点」——后两种是从代理出去连不上这个地址,后面附一句怎么办:用自己网络就能直接播的源不用勾「经网络代理转发」,代理软件用规则模式的,看看这个地址走了哪条线路。经代理拉订阅失败时,卡片上的失败原因也改成这样的话;「设置 → 网络代理」的「测试」也认得代理接通后被断开这种情况(Clash 这类代理连不上对方时就是这样)。

    • 源管理里的频道数和频道名单对得上了:咪咕、大连的频道只放在内存里,重启后一直抓取失败时,卡片上仍写着上一次的频道数(比如「失败 · 83 频道」),点开却是「目前没有抓到频道」,看着像还有频道在播。现在频道数按实际还在输出的频道算,这种情况会写 0 频道。


    升级:拉取 akiralereal/iptv:4.69.0(或 latest),重建容器即可;数据卷与现有订阅不受影响。完整更新历史见 CHANGELOG.md。

  3. v4.68.0v4.68.0 · YouTube 可单独订阅某一场直播、修复安徽卫视2026-11-08 · 2026-11-08 07:45 UTC
    查看更新说明

    本次为「YouTube 可单独订阅某一场直播、修复安徽卫视」版本:YouTube「查看场次」里每一场都能单独订阅,新闻台同时开好几路时可以固定看其中一路;修复安徽卫视换到新地址后播放不了。拉取新镜像、重建容器后即生效(只重启容器不会换成新版本),现有配置无需改动。从 v4.63.0 及之后的版本升级上来的,只需下载有变化的部分(几十 MB);从更早的版本直接升级,仍要完整下载一次。

    • YouTube 可以重新单独订阅某一场直播:v4.62.0 改成按频道关注后,播放时只取频道的第一路直播。24 小时新闻台常同时开四五路栏目,想看的那一路就选不到了。现在在「🌐 源管理 → 海外 → YouTube 直播」点「查看场次」,每一场后面都有「订阅此场」,点了 M3U 里就多出这一场,和关注频道互不影响;粘贴的是某一场的链接时,这一场排在第一个,不公开列在频道直播页里的场次也能这样订阅。只收正在直播和已预约的场次;场次结束后不会自动删除,模块里标出「已结束」后可以一键移除。「关注频道」按钮照旧按频道关注。

    • 修复安徽卫视播放不了:安徽视讯 App 把安徽卫视换到了新的直播地址,新地址只放行 App 自带播放组件的标识,原来既不认这个地址、也没用这个标识,打开频道就报错。现在「安徽」模块按 App 当前的配置读取新地址,用对应的标识取流,清单和视频照旧由服务器转发。安徽其他六路不受影响;频道地址没变,不用在播放器里刷新订阅。


    升级:拉取 akiralereal/iptv:4.68.0(或 latest),重建容器即可;数据卷与现有订阅不受影响。完整更新历史见 CHANGELOG.md。

  4. v4.67.0v4.67.0 · 景观慢直播单独开关、吉林风景自动换机位、自定义源可走代理2026-11-08 · 2026-11-08 03:47 UTC
    查看更新说明

    本次为「景观慢直播单独开关、吉林风景自动换机位、自定义源可走代理」版本:吉林、河北、南京、上海、北京五个模块的景观慢直播拆成单独的开关;「吉林风景」跟着官网换季自动收新机位、撤下的不再显示;源管理「批量开关」新增「市县台」一节;自己添加的订阅源、直连源可以勾「经网络代理转发」。拉取新镜像、重建容器后即生效(只重启容器不会换成新版本),现有配置无需改动。从 v4.63.0 及之后的版本升级上来的,只需下载有变化的部分(几十 MB);从更早的版本直接升级,仍要完整下载一次。

    • 景观慢直播有了单独的开关:吉林、河北、南京、上海、北京这五个模块原来电视频道和景观慢直播共用一个开关,只想关景观就得到「我的频道」里逐个隐藏分组,后台照样在抓。现在景观拆成了单独的模块,在「🌐 源管理」对应的省面板里,紧挨着原来的卡片:「吉林风景」「河北景观」「南京景观」「上海景观」「北京景观」。关掉哪个,播放列表里就少哪个分组,后台也不再去抓;原来的「吉林」「河北」「南京」「上海」「北京广播电视台」只管电视频道。升级后不用重新设置:分组名和频道都没变,之前对这些频道做的排序、隐藏、改名照旧有效;原来关掉了整个模块的,拆出来的景观也是关着的;配置档里按源停用了原模块的,景观在这一档也停用。北京的电视频道仍要导入 Cookie,「北京景观」免登录;没配 Cookie 时「北京广播电视台」卡片显示「无频道」是正常的。上海松江的慢直播本来就是单独的「上海松江」模块,不受影响。

    • 吉林风景跟着官网换季自动更新机位:吉林广电官网按季节换慢直播机位,原来写死的 13 路里有 7 路官网已经撤下(新民广场、双阳区、江心岛、南湖公园、四海龙湾玛珥湖、碧松净月塔楼、查干湖),打开只会报错,官网新换上的机位又收不进来。现在「吉林风景」每 4 小时读一次官网直播目录里正在播的慢直播专题,把里面的机位都收进来、逐路确认在播:新换上的自动加入,撤下或停播的不显示,恢复后自动回来。目前是 18 路,新加的有看敦化、长春吉塔、吉林市松花江江湾、长春生态广场立交桥、敦化五路(中成朝鲜生态村、六鼎山、渤海湖公园、敖东大桥、雁鸣湖畔小山村)、白山松岭两路和靖宇花园口。原来就有的机位频道不变,之前做的隐藏、改名、排序照旧有效;新机位以后换到别的专题也还是同一个频道,对它做的隐藏、改名、排序都能留住。只是网络一时连不上或被限流的不会被藏起来,官网目录取不到时沿用上一次的结果。官网直播目录里的发布会、晚会等活动直播不收。

    • 批量开关新增「市县台」一节:山东市县和各省的「市县台·X」原来分散在二十来个省面板里,想一次打开或关掉得挨个省找。现在「🌐 源管理 → 批量开关」把它们单独列成「市县台」一节,紧跟在「免账号模块」后面,点这一节的「全选」或「全不选」再点「应用」即可。写的还是每个模块自己的开关,卡片仍在本省面板里,单独开关照旧。

    • 自己添加的订阅源、直连源可以走网络代理:以前「设置 → 网络代理」只给 YouTube、澳门、海外频道和 Telegram 推送用,自己加的列表在大陆连不上就没办法。现在「🌐 源管理 → 自定义源」里订阅源和直连源的卡片上多了「经网络代理转发」,勾上后点「导入并保存」(直连源点「保存」):拉取列表、播放其中的 HLS 频道都经网络代理,清单和视频由服务器转发,播放设备不用设代理,会用服务器的带宽和代理流量。局域网地址、rtmp / udp 等非 HTTP 地址和 FLV 频道照旧由播放器直连。默认关闭,要先在「设置 → 网络代理」填好代理才能勾(部署时设了 HTTPS_PROXY 环境变量的,不填也能勾,沿用它);代理清空、也没有 HTTPS_PROXY 时,这些频道自动改回播放器直连。开关一开一关,这些频道的隐藏、改名、排序都不受影响;勾上或取消后,在播放器里刷新一次订阅才会换成新地址。内置模块和精选频道走不走代理不变。


    升级:拉取 akiralereal/iptv:4.67.0(或 latest),重建容器即可;数据卷与现有订阅不受影响。完整更新历史见 CHANGELOG.md。

  5. v4.66.0v4.66.0 · 新增 Red Bull TV、修复 YouTube 解析组件挪目录后失效2026-11-07 · 2026-11-07 13:43 UTC
    查看更新说明

    本次为「新增 Red Bull TV、修复 YouTube 解析组件挪目录后失效」版本:海外分类新增 Red Bull TV,9 路全天轮播加上官方正在直播的赛事;精选频道里原来那一路 Red Bull TV 同时下线,想继续看的到源管理打开新模块;修复源码运行挪过项目目录后 YouTube 全部播不了。拉取新镜像、重建容器后即生效(只重启容器不会换成新版本),现有配置无需改动。从 v4.63.0 及之后的版本升级上来的,只需下载有变化的部分(几十 MB);从更早的版本直接升级,仍要完整下载一次。

    • 新增 Red Bull TV:到「🌐 源管理 → 海外」打开「Red Bull TV」(默认关闭),会多出两个分组。「红牛轮播」是官方 9 路全天轮播:综合、赛车、自行车、户外探险、冲浪、滑板、冬季运动、板式网球和极限精选;「红牛赛事」是官方正在直播的赛事,开播自动加入、结束自动移除,不含预告和回放。画面、声音和字幕都由服务器转发,能不能看取决于服务器的网络和红牛官方的地区限制,看不了可以到「设置 → 网络代理」填代理。这些频道暂时没有节目单。

    • 精选频道里的 Red Bull TV 下线:精选频道「体育」分组里原来那一路 Red Bull TV 删掉了,由新模块的「红牛综合」代替。新模块默认关闭,想继续看的到源管理打开「Red Bull TV」,再在播放器里刷新一次订阅。自己手动添加的同名频道不受影响。

    • 修复源码运行挪动目录后 YouTube 解析组件失效:源码运行时,装好 YouTube 解析组件(yt-dlp)后再挪动、改名或整份拷贝项目文件夹,组件会因为找不到安装时的路径而无法运行,YouTube 频道全部播不了,后台却显示「未安装,已是最新版」。现在改为直接用组件自带的 Python 运行,挪了目录也照常能用,不用重装。组件真的装坏时,后台显示「无法运行」并给出「修复」按钮,点一下就重新安装。Docker 镜像里的组件路径是固定的,不会遇到挪目录的问题。


    升级:拉取 akiralereal/iptv:4.66.0(或 latest),重建容器即可;数据卷与现有订阅不受影响。完整更新历史见 CHANGELOG.md。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    📺 iPTV

    把分散的直播源,变成一套真正属于你的频道系统

    自托管 · 模块化 · 可视化 · NAS 友好

    GitHub Stars Docker Pulls License Sponsor

    Telegram 公告频道 Telegram 用户交流群

    🐳 Docker 部署教程 · 前往 Docker Hub →

    推荐通过 Docker 在 NAS / 服务器上部署,镜像:akiralereal/iptv:latest

    当前版本:v4.69.0 · 产品预览 · 频道覆盖 · 内容来源 · 功能说明 · 更新日志

    iPTV 是一个面向家庭影音与 NAS 用户的模块化 IPTV 直播源管理与分发系统。它内置央视频、咪咕、B站、抖音、虎牙、斗鱼及多地区广电等抓取模块,也能接入需要网页解析的内置源、维护者筛选的公开独立源、自定义直连地址和 M3U/TXT 订阅;所有来源统一完成聚合、去重、编排,再输出干净的播放列表与 EPG 节目单。

    项目更新和社区公告请订阅 Telegram 公告频道(@iFansClub);使用问题、反馈和心得交流,欢迎加入 Telegram 用户交流群(@iFansClubChat)。Bug 反馈和功能建议也可以提交 GitHub Issue。

    [!IMPORTANT] 本项目是自托管的软件工具。除项目自制的使用公告短片外,不托管第三方音视频节目;仓库及运行时可能整理互联网上公开可访问的播放地址与频道元数据,但“公开可访问”不代表内容属于公有领域,也不代表已获得复制、转播或商业使用授权。请仅在获得合法授权的范围内使用;如你是权利人并认为相关条目侵权,请按版权与侵权处理提交下架通知。

    🖼️ 产品预览

    ✨ 为什么选择 iPTV

    📺 开箱即用🧩 模块化源管理🪄 可视化编排
    默认聚合 1000+ 频道(含动态赛事),其中央视频模块提供 63 个公开高清频道及 10 个本人账号可访问的会员频道,另有 B站、抖音、虎牙、斗鱼直播抓取和经筛选的公开独立源央视频、咪咕、B站、抖音、虎牙、斗鱼及各广电抓取模块都有独立开关、配置和健康状态,按需启用,互不干扰分组、排序、重命名、隐藏与批量管理,都在浏览器中完成
    🔗 自由接入📡 稳定分发👨‍👩‍👧‍👦 多端共享
    支持 M3U8 直链、网页自动提取,以及 M3U/M3U8/TXT 订阅批量导入自动生成 M3U、TXT 与 EPG;提供兼容版、全代理版应对特殊播放器多配置档与用户令牌,让每台电视、每位用户拥有自己的频道组合

    [!TIP] 默认配置即可使用免费频道;需要更高画质时,再到「源管理」为对应平台配置你本人合法持有的账号。凭据只保存在自己的部署中。

    📡 频道覆盖

    默认部署目前可聚合 1000+ 频道(含每天变动的动态赛事),并会随着平台模块、赛事内容和精选频道持续扩展。实际数量会因平台接口状态、地区网络和启用的模块而动态变化。

    范围当前覆盖内容
    央视频直播63 个免登录公开频道 + 10 个本人账号可访问的会员频道;公开台覆盖央视全套、CGTN 多语种和全国主要省级卫视,统一归入「央视频」分组
    iPanda 直播22 路免登录公开直播:成都与都江堰 2 个 24 小时总频道、18 个熊猫固定机位,以及江苏大丰麋鹿、云南白马雪山 2 路珍稀动物直播,统一归入「iPanda」分组
    央视与卫视CCTV 系列、CGTN、全国主要卫视频道
    地方频道北京、天津、重庆、四川(含成都及区县、绵阳、泸州、遂宁、内江、达州、巴中、甘孜、阿坝、广元、宜宾、凉山、雅安、乐山、眉山、资阳)、贵州、安徽、广东(含广州、深圳、梅州)、广西、福建(含泉州、晋江、石狮、德化、莆田、宁德)、江西、甘肃、青海(含西宁、格尔木、海东)、新疆、西藏、云南、吉林、黑龙江、内蒙古、宁夏、海南、河北、山西、陕西、湖北、辽宁(含沈阳、大连)、浙江(含杭州、宁波、嘉兴、台州天台、绍兴、东阳、衢江、江山)、江苏(含南京、苏州、无锡、扬州、南通、盐城)、山东(含青岛;16 个地市的区县台按地市分组,默认关闭)、河南、上海、湖南等省市卫视与地面频道,以及广电云平台上 20 个省区市的市县台(只显示正在推流的),并持续接入更多地区
    景观直播央视网「直播中国」当前在线信号,以及吉林风景、美丽河北、Live 南京、青岛城市直播、上海慢直播等景观频道,以及市县台模块里许昌、桐庐、乌镇、宣恩等地的 97 路慢直播;数量随平台在线状态动态变化
    体育赛事体育频道、赛事直播,以及昨天 / 今天 / 明天的动态赛事频道;手动开启 WebSports 模块后另有「赛事直播」分组;广东体育官方公开赛事按“广东体育 · 赛事名称”显示在「广东」分组并同时出现在「体育」分组,数量随开播与结束变化
    红牛轮播与赛事「Red Bull TV」海外模块,默认关闭;9 路全天轮播归入「红牛轮播」,当前公开在播节目归入「红牛赛事」。接入统一网页播放器与 M3U,支持网络代理;原精选列表的 Red Bull TV 单频道已删除
    Xumo 官方直播「Xumo Play」海外模块,默认关闭;初始 422 个已验证非宗教频道,按官方分类分组。默认最高分辨率并保留字幕、音轨;每天更新、每 6 小时检查,失败沿用有效清单;通过主项目网络代理播放
    自选 YouTube 直播在「源管理 → 内置抓取模块 → 海外 → YouTube 直播」输入用户名、频道 ID、频道或视频分享链接,自动关注所属频道。订阅同一份 M3U 即可观看,频道未开播时仍保留在列表里
    亚太与国际精选列表提供经实验台验证的固定直连频道;独立模块另提供 YTN、NHK World 两个需要动态解析的公开频道,以及香港卫视、澳门莲花卫视两路官网直播;另有「海外频道」模块的 33 个海外免费频道、「澳门」模块的澳广视自办 6 套电视,默认关闭,需要时在后台打开
    百视通默认关闭,需手动开启;64 路可选,开启后默认只加入多彩文体4K、都市剧场、动漫秀场、乐游、法治天地、东方财经、生活时尚七路,单独归入「百视通」;其他频道按需勾选。百视通按地区下发频道,有的地区拿不到其中几路,会自动跳过。多彩文体4K 本次实际流为 1080p
    综合内容影视、文旅、教育、少儿、娱乐时尚等分类频道

    播放列表首位默认提供项目自有的「公告」分组,内含三条自制短片:“欢迎使用 iPTV for iFansClub.com”展示使用方式、版权提醒和侵权联系说明;“央视频会员频道登录教程”演示 Docker / NAS 用户如何从浏览器复制 Cookie 把央视频登录态导入 iPTV;“「来源于网络」频道添加教程”演示如何在后台「🌐 源管理 → 👤 自定义源」用「🌏 添加「来源于网络」列表」卡片一键订阅仓库 from-the-web/from-the-web.m3u 里的网络源(第三方转发、平台分发及来源待确认的 CDN)。三者都不引用任何第三方节目素材。不想在电视上显示可以在后台「我的频道」逐条隐藏(随时可在「已隐藏」里恢复);只要显示,该分组就固定在第一位,不支持删除、移动、排序或重命名。

    🧩 内容来源与抓取能力

    iPTV 的重点不只是一份静态频道表,而是一套可独立开关、可观察状态、可持续刷新的内容接入体系。不同来源采用不同刷新、鉴权与代理策略,平台临时不可达时可在源管理中查看状态或关闭对应模块。

    来源类型已支持的典型内容工作方式
    央视频直播63 个公开频道 + 10 个需登录/VIP 的频道公开频道继续匿名动态取票、自动切换备用 CDN;会员频道复用部署者本人在央视频站点的持久登录态,由网页播放器签发并解扰成本机 H.264/AAC fMP4 HLS,解决普通播放器直接拿会员流时“有声无画”。桌面本机可从源管理自动打开登录窗口;Docker / NAS 等没有桌面的部署从自己电脑浏览器的开发者工具里复制整段 Cookie 导入(会话 cookie 是 HttpOnly,书签工具拿不到),服务端之后自动续期
    iPanda 直播成都、都江堰共 20 路熊猫直播,以及江苏大丰麋鹿、云南白马雪山 2 路珍稀动物直播无需登录、无需配置;18 路固定机位使用支持网页直连的上游 CDN,2 个总频道和 2 路珍稀动物直播在播放时检查公开状态并自动切换上游 CDN,清单与媒体由本机安全代理。最高均为真实 720p,即平台所称“超清”
    Red Bull TV9 路全天轮播 + 动态赛事从红牛官网匿名地区会话、官方频道与在播集合动态发现;播放时核验当前公开权限并重新取 HLS。清单、音轨、字幕和分片统一经服务器,可在「设置 → 网络代理」配置网络出口。最高画质在前且保留自动降档、多音轨与字幕;预告、回放和受限节目不进入直播订阅。默认关闭,在「源管理 → 海外」打开
    YouTube 直播用户自选频道默认关闭,初始订阅列表为空。可输入用户名(可省略 @)、频道 ID、频道主页、直播或视频分享链接;所有链接都转换为关注所属频道,同一频道自动去重。支持 watch?v=、youtu.be、/live/、/shorts/、嵌入链接、手机端和旧版频道地址。播放时选择官方列表中的首场在播节目;同时开多路的频道(如 24 小时新闻台),可在「查看场次」里点「订阅此场」单独固定某一场。服务端默认输出最高 HLS 视频档,可设画质上限,保留配套音轨和字幕;带宽不足时可能需要缓冲。固定场次结束后不会自动删除,模块里会标出「已结束 / 已失效」,可一键移除。服务端需能访问 YouTube 和 Google Video,大陆部署在「设置 → 网络代理」填代理地址即可,播放设备不用设代理
    平台直播抓取B站、抖音、虎牙、斗鱼可按分类自动收录当前直播间,也可手动指定房间;播放时处理短效地址、画质选择和平台要求的请求头。B站支持扫码登录以使用本人账号可访问的画质,抖音、虎牙、斗鱼支持匿名公开直播。虎牙、斗鱼、抖音默认只勾「一起看」(抖音叫「影视(一起看)」),按当前分区、已核验房号和节目标题筛选影视正片,虎牙、斗鱼仍按所设最低人气和每类数量导出;赛事、网游、聊天等其他分类在「源管理 → 对应平台 → 选择分类」按需自己勾选。抖音默认 FLV 播放,最多自动加入 20 个,也可切换为公开网页「全部」页原始顺序(首批约 15 个)或 HLS;频道归入「抖音」,排在「B站」之后。抖音的「分类轮选」还可勾选「音乐轮播」「综艺轮播」「动画轮播」。后三类每轮检查候选房间和对应公开分区首页,按当前节目筛选;新发现的房间需核对平台认证。下播、改播或无符合场次时,该类可以是 0 路
    百视通福建百视通官方目录中的 64 路已验证频道;默认选择七路现有来源未覆盖的专业台模块默认关闭,在「源管理 → 百视通」手动开启并选频道;官方目录按地区下发,这台服务器拿到的目录里没有的频道自动跳过;每次刷新清单都复查当前播放地址,短效地址到期或提前失效时重新获取;默认只转发清单,视频分片直连官方 CDN;可选 IPv6 视频转发,也支持全代理订阅。官方台标随目录同步,默认七路中的五路接入官方今明节目单;地区、运营商与平台策略仍可能影响可用性
    WebSports 赛事第三方赛事网站的足球、篮球等比赛,每场一个频道,归入 赛事直播模块默认关闭,在「源管理 → 网络直播平台」手动开启;播放时同时查各条线路,选分辨率最高的,视频由播放器直连。入口页只放行大陆和香港网络,未开赛或已结束的场次播不了
    电视与赛事平台咪咕、体育赛事自动整理频道与节目单,并按账号权限、设备兼容性和平台接口状态选择可用画质;需要登录的能力仅使用部署者本人提供的凭据
    广东体育官方赛事官方「广东体育频道plus」「广东体育频道」当前公开在播的赛事,归入 广东,同时出现在 体育(赛事名带少儿、卡通、动漫的改放「少儿」,带教育、科教的改放「教育」)无需登录、无需配置;从广东体育官方 H5 动态发现赛事,播放时复核官方状态并读取 HLS;本机只中继清单,视频分片由播放器直连官方 CDN(不看来源头、不带签名),也可用 ?relay=2 全代理。每场赛事独立标识,开播加入、结束移除;源管理有独立开关。广东体育电视频道仍由荔枝网模块提供
    凤凰卫视凤凰资讯、凤凰中文、凤凰香港,归入 香港仅三个电视直播频道;游客 480p,登录普通凤凰秀账号可获取 720p / 25 帧,无需付费会员。后台支持导入 Token / Cookie 并持久保存,播放时取新签名,原始 HTTP-FLV 由本机转发。自己订阅的列表里有同名凤凰条目时,与本模块三台并列作备用线路,不合并、不顶替;播放器按名聚合时本模块源排在前面
    香港卫视香港卫视一路电视直播,归入 香港无需登录、无需配置;播放时先问源站当前在播的是哪一路,再换这一路的 HLS 入口。官方 CDN 限制播放器标识,清单与视频分片统一由服务器以兼容标识转发,会占用服务器带宽;旧订阅地址也自动走全代理。实测为 1280×720、H.264/AAC;节目单取自官网节目单接口(今明两天)
    澳门(澳广视)澳广视自办的 6 套电视:澳视澳门、澳视葡文、澳门体育、澳门资讯、澳门综艺、澳门-Macau,归入 澳门无需登录;播放时查询官网 CDN 路由(缓存五分钟)。在「设置 → 网络代理」配置代理后,官网取址、节目单、清单和媒体均由服务器代理,播放设备无需另设代理;没有生效代理时仍由播放器直连,服务端和播放设备都需能访问官方服务。默认关闭,需要时在后台打开;台标与节目单取自官网
    澳门莲花卫视澳门莲花卫视一路电视直播,归入 澳门无需登录、无需配置;播放时从官网首页内嵌的直播播放器读出当前带签名的 HLS 入口,入口在本机缓存五分钟、签名失效立即重读官网,每次播放都检查实时清单。服务端只中继清单,带独立签名的媒体分片由播放器直连上游 CDN,需要时也可用 ?relay=2 全代理;台标与节目单取自官网
    北京广播电视台北京卫视、BRTV 文艺 / 纪实科教 / 影视 / 财经 / 体育休闲 / i生活 / 新闻、卡酷少儿,以及北京时间当前公开活动或慢直播公开直播在单独的「北京景观」模块,免登录并自动排除失效项目;9 个电视频道需在后台导入本人北京时间 Cookie。凭据仅用于取流接口,不写入订阅、不发送到媒体 CDN;清单和分片由本机补齐防盗链请求头并代理
    重庆广电源站当前公开的 CQTV新闻无需登录、无需配置;频道表自动同步,播放时匿名换取短效 HLS,清单、AES 密钥和媒体分片由本机全代理
    四川广电四川卫视、新闻、经济、文化旅游、影视文艺、妇女儿童、四川乡村、康巴卫视、四川卫视 4K 超高清 SDR,以及源站当前公开活动直播活动直播有则显示、无则隐藏且无需登录;9 个固定电视台需使用部署者本人的四川源站登录态。后台提供书签工具读取源站 Token,服务端播放时动态换取短效地址,清单、密钥和媒体分片均补齐源站防盗链请求头并全代理
    成都广电成都新闻综合、经济资讯、都市生活、影视文艺、公共、少儿、蓉城先锋及 20 路区县电视,共 27 路,归入 四川无需登录、无需配置;播放时从看度官方 App 接口获取签名地址,主频道优先高清,默认 302 跳转、播放器直连,不转码、不常驻浏览器。龙泉旧源不可用,暂不收录。新闻综合、公共带今明两天的央视网官方节目单,其余暂无;24 路使用官网新版图床的频道台标,3 路由内置台标包补齐(含资料库出处),不提供回看
    四川市州成都以外 18 个市州、25 路官方电视频道,归入 四川无需登录、无需配置;播放时解析各台官网及官方 App 公开入口,动态续签并复用合法 CDN 会话。遂宁、达州、凉山、资阳七路全代理,其余十八路中继清单、分片直连;台标均有内置备份,凉山两套及攀枝花新闻综合带今明官方节目单,其余暂无 EPG,均不提供回看。详见 四川市州模块
    江西广电江西卫视、都市、经济生活、公共农业、少儿、新闻、移动电视、陶瓷共 8 路无需登录、无需配置;源站当前公开的是单档 720p,服务端按源站公开算法获取匿名短效 token,并在播放器每次轮询时重新拉取滚动清单;清单、密钥和媒体分片均补齐防盗链请求头并全代理
    贵州广电贵州卫视、公共、影视文艺、大众生活、生态乡村、科教健康、经济、移动电视共 8 路无需登录、无需配置;播放时从源站公开 API 获取当前短效签名地址,播放器每次轮询重新拉取只有三个 3 秒分片的滚动清单,清单和媒体全代理;家有购物明确不纳入频道表
    甘肃广电甘肃卫视、文化影视、移动电视、少儿、科教、公共应急共 6 路无需登录、无需配置;播放时从源站公开接口动态获取当前入口,每次轮询重新拉取滚动清单并中继给播放器,视频分片由播放器直连上游 CDN;入口轮换或接口短时抖动会自动重试和兜底
    黑龙江广电黑龙江卫视、都市、新闻法治、文体、少儿、影视、农业科教共 7 路无需登录;极光新闻 App 官方入口,默认由服务器直连官方 4430 端口并转发清单、分片,播放器只连接本项目。遇到 fake-IP、私网地址或 DNS 失败时,通过公共 DNS 查询真实地址,保留官方域名及 HTTPS 证书校验,不写死 IP。源管理可切回「播放器直连」,切换后刷新频道及播放器订阅。服务器转发占用其媒体带宽,可用性取决于服务器网络。2026-11-05 实测卫视 1920×1080,其余六路 1280×720,均为 H.264 / AAC、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 帧;节目单取自津云官方接口(今天、明天)
    青海广电青海卫视、青海经济生活、青海都市、安多卫视、格尔木新闻综合、海东综合频道共 6 路,归入 青海无需登录、无需配置;四路省台取自长云网和青海藏语台官网,播放时换签、只中继清单,分片由播放器直连;格尔木与海东取自官方 App,每天更新官方长效签名地址,清单与分片均由播放器直连,无需额外请求头。两路同时保留在精选 IPTV.m3u,模块启用时自动去重。实测六路均为 1920×1080、H.264 / AAC,25 帧;省台官网、接口与 CDN 仅大陆可访问,新增两路未做海外测试。青海卫视节目单取自央视网,其余没有可用的官方节目单
    宁夏广电宁夏卫视、宁夏公共、宁夏文旅共 3 路,归入 宁夏无需登录、无需配置;黄河云公开的官方直播入口,地址固定、不带签名,上游不校验来源也不挑播放器标识,播放器直连官方 CDN,本机不转发媒体;节目单取自黄河云官方接口(只有当天)
    嘉兴广电嘉兴新闻综合、文化影视、公共频道共 3 路,归入 浙江无需登录、无需配置;频道入口来自嘉兴在线「看电视」页,播放时按频道向趣看的公开播放接口换取签名 HLS,本机只中继实时清单,媒体分片由播放器直连上游 CDN,清单与分片都限定在该频道的官方域名和路径;也可用 ?relay=2 全代理
    台州(天台和合)天台县和合频道 1 路,归入 浙江无需登录、无需配置;入口来自和合天台 App,播放时向趣看公开接口获取签名 HLS,本机中继实时清单,视频分片直连官方 CDN,也可用 ?relay=2 全代理;实测 1080p;台标取自官方频道卡正中的风车标,由内置台标库提供,暂无可用官方节目单
    绍兴广电绍兴新闻综合、绍兴公共、绍兴文化影视共 3 路,归入 浙江无需登录、无需配置;来自绍兴网官方直播页,每次播放从官方频道及播控接口自动发现地址;域名、路径、签名或 CDN 跳转变化时重新验证实时 HLS 和 TS 分片,详情旧源失效时从官网目录重新识别频道,本机中继清单、分片直连官方 CDN,也可用 ?relay=2 全代理;三路均为 720p,带各自官方台标和今明两天的官方节目单。保留官网实际下发的 HTTP(S) 地址,不关闭 TLS 校验;加密、分段 MP4 或独立音轨等媒体结构变化会明确提示需要适配
    浙江地方台东阳新闻综合、衢江综合、江山电视一套共 3 路,归入 浙江无需登录、无需配置;从各台官方趣看托管播放器取流,每次播放核对频道身份、发布状态和当前播控后取得新签名;清单与视频分片由部署机器转发。东阳 720p,衢江、江山 1080p,均为 H.264/AAC;内置台标备份,官方节目表目前为占位或空表
    杭州广电杭州综合、西湖明珠、杭州生活、杭州影视、杭州青少体育共 5 路,归入 浙江无需登录、无需配置;播放时向葫芦网(杭州文广集团官网)的频道接口取 2 小时有效的签名地址,本机缓存到过期前半小时,签名被拒时立即重签。官方 CDN 的清单和分片都只认官网来源头,所以清单与分片由本机带来源头全代理;只放行该频道在官方 CDN 上的路径。台标取自官方频道接口。实测 5 路均为 1280×720、H.264 / AAC-LC,25 帧;官网节目表只有整点「精彩节目」占位,暂无节目单;频道接口只对大陆网络开放,部署在大陆以外(含香港)时取不到
    宁波广电宁波新闻综合、经济生活、都市文体、影视剧共 4 路,归入 浙江无需登录、无需配置;按宁波广电网直播页播放器的流程(直播页 → 播放器配置 → 频道资料 → 官方签名接口)取 1 小时有效的签名地址,频道资料缓存 6 小时、签名缓存到过期前 15 分钟,签名被拒时立即重签。CDN 不看来源头,本机只中继清单,媒体分片由播放器直连官方 CDN;也可用 ?relay=2 全代理(后台网页播放时自动走全代理)。实测 4 路均为 1280×720、H.264 / AAC-LC,25 帧;官网节目单是每周的图片,暂无节目单;签名接口只对大陆网络开放,部署在大陆以外(含香港)时取不到
    梅州广电梅州客家生活 1 路,归入 广东无需登录、无需配置;梅州市广播电视台自有域名下的公开 HLS,地址固定、不带签名,播放器直连上游 CDN,本机不转发媒体
    泉州广电泉州新闻综合、泉州闽南语共 2 路,归入 福建无需登录、无需配置;播放时向官网公开接口换取短期签名 HLS,两个签名接口都触发人机验证时改从官网另一个域名的播放页取地址;上游 CDN 拒绝部分播放器标识,清单与分片由本机以浏览器标识全代理;节目单取自官网播放页
    晋江、石狮晋江电视台、石狮新闻综合共 2 路,归入 福建无需登录、无需配置;晋江市、石狮市融媒体中心官网直播用的 HLS,地址固定、不带签名,播放器直连官方 CDN;石狮节目单取自官网直播页,晋江官方目前只有占位
    山东市县闪电新闻融媒平台上山东 16 个地市的区县融媒体中心与部分市台,共 224 路(如长清、章丘、东营、潍坊、寿光、曲阜、泰山、威海),按地市分成「山东-济南」…「山东-菏泽」16 个分组,排在「山东」后面;默认关闭,在「源管理」打开,不需要的地市整组隐藏即可无需登录、无需配置;每两小时向官方接口查一次各台状态,只显示主清单取得到的台,停推的台暂不出现、恢复后自动回来;播放时跳转到官方当前地址,播放器直连官方 CDN,本机不转发清单和分片(?relay=1 兼容模式下清单由本机取,要求部署机与播放器同一出口);台标用官方接口给的频道或电视台台标;节目单取自官方接口(目前只有崂山频道排了当天的),不提供回看
    市县台广电云平台托管的 20 个省区市、126 路市县级电视台(如大庆、黄石、柳州、孝感、慈溪、贵阳、阿克苏、义乌)按省归入对应分组,另有 97 路各地慢直播放在「慢直播」分组,只显示正在推流的;按省拆成 20 个模块「市县台·山东」…,默认关闭,在源管理对应省面板里打开无需登录、无需配置;每小时查一次各台推流状态,停推的台暂不出现、恢复后自动回来。播放时在官方平台挂一个在线会话取地址(两条 WebSocket 保活,没人看一分半后自动断开),清单经本机中继、分片直连官方 CDN;28 路电视台带官方节目单,不提供回看
    莆田广电莆田新闻综合、莆田文旅生活、仙游电视台共 3 路,归入 福建无需登录、无需配置;频道入口来自「莆田TV」App 与官网共用的频道接口,播放时取签名 HLS(约 2 小时 45 分有效,本机缓存到过期前半小时),本机只中继实时清单,媒体分片由播放器直连官方 CDN,清单与分片都限定在该频道的官方路径;节目单取自莆田TV 官方接口(一套、二套,仙游官方只有占位);也可用 ?relay=2 全代理
    宁德广电宁德新闻综合、宁德文化旅游共 2 路,归入 福建无需登录、无需配置;每轮刷新向宁德台官方直播接口要一次 HLS 地址,地址固定、不带签名,播放器直连官方 CDN;2026-10 复测海外也能播;官方节目单只有占位,暂无节目单
    无锡广电无锡新闻综合、娱乐、都市资讯、生活、经济共 5 路,归入 江苏无需登录、无需配置;频道入口来自无锡博报 App 的直播分享页,播放时取签名 HLS(约 2 小时有效,本机缓存到过期前半小时),本机只中继实时清单,媒体分片由播放器直连官方 CDN,清单与分片都限定在该频道的官方路径;节目单取自无锡博报官方接口;分享页只对大陆和香港开放,部署在其他海外地区时取不到;也可用 ?relay=2 全代理
    盐城广电盐城电视一套、盐城电视二套共 2 路,归入 江苏无需登录、无需配置;直接使用盐城网官方电视直播页的频道与节目接口,每次播放获取当前签名地址;本机代理清单与分片并保留官网请求头,两套均为 720p,带官方台标与今明两天节目单,无回看
    南通广电南通新闻综合、南通社教、南通公共共 3 路,归入 江苏无需登录、无需配置;从江海明珠网官方目录获取频道与台标,播放时核对当前节目和播出垫片,清单与分片由本机代理,不转码。电视剧、动画、录播及其他未开放时段提示不可播,频道仍保留;三套接入官方当天节目单,共用官网“南通 NEWS”台标并提供内置备份,无回看
    扬州广电扬州新闻、扬州民生,以及江都、邗江两个区台共 4 路,归入 江苏无需登录、无需配置;扬州发布 App 直播用的 HLS,地址固定、不校验签名,播放器直连官方 CDN;节目单取自扬州发布官方接口
    青岛广电青岛新闻综合、生活服务、影视、都市、教育共 5 路(QTV-1 到 QTV-5),归入 山东无需登录、无需配置;官网直播页的固定地址,分片带官网播放器自用的加密封装,普通播放器直连播不了,播放时由本机代理边下边解、整段转发(与广西同一做法),能不能看取决于部署机器的网络;节目单取自官网播放页接口(只有当天);台标用官网台标并收进内置库;五四广场等城市景观在「青岛景观」模块
    安徽广电安徽卫视、经济生活、影视、公共、农业科教、综艺体育、国际频道共 7 路无需登录、无需配置;按「安徽视讯」App 看电视页面的流程,从栏目接口的 132 电视组件读取当前域名与流 ID,不再依赖被 WAF 拦截的逐频道详情接口;七路共享短期栏目缓存和 App 密钥,播放时生成两小时签名,旧源失败后重新取配置,频道引用不变。清单实时刷新,清单与分片全代理(旧 live 使用 Chrome,seclive 使用 ijkplayer,卫视新域名使用 App 内置 FFmpeg 的 Lavf 标识)。seclive HTTPS 证书主机名不匹配时,仅对该域名兼容同域 HTTP,不关闭证书校验;运行无需模拟器
    新疆广电新疆卫视、维吾尔语新闻综合、哈萨克语新闻综合、汉语综艺、维吾尔语影视、体育健康、少儿共 7 路无需登录、无需配置;播放时从丝路视听网当前 Nuxt 包静态解析当天公开签名配置,再调用源站接口签发约一小时有效的 HLS。服务端中继实时清单,媒体分片默认由播放器直连上游 CDN,也可用全代理订阅。某一路被源站重新标记禁播时只跳过那一路,其余照常
    吉林广电6 路省级频道、9 路地方台,以及官网当前在播的慢直播(数量随官网换季变化,2026-11 为 18 路)无需登录、无需配置;常规电视归入「吉林」,慢直播在单独的「吉林风景」模块、归入「吉林风景」分组。「吉林风景」每 4 小时读一次官网直播目录里在播的慢直播专题:新换上的机位自动加入,撤下或停播的不显示、恢复后自动回来。省级频道和季节性景观在播放时从源站加密接口获取短效 HLS,固定地方台和固定景观使用已验证的 HTTPS 入口;清单、密钥和媒体分片均由本机全代理
    内蒙古广电内蒙古卫视、蒙古语卫视等 8 路自治区频道,以及 12 路盟市频道,共 20 路无需登录、无需配置;20 路全部归入唯一的「内蒙古」分组。播放时按奔腾融媒源站公开协议调用加密频道接口获取动态地址,并为清单、密钥和媒体分片补齐防盗链请求头后由本机全代理
    亚洲与国际直播5 个公开频道:YTN、NHK World、CNA、France 24 English / Français;另有 4 个固定直连频道(耀才财经、CGTN Documentary、China Travel、大立电视台)位于精选列表的独立标记区块YTN、NHK World 在播放时从平台接口获取当前 HLS,并由本机代理清单、密钥与媒体;CNA、France 24 English / Français 由本机转发一次主清单、把最高档挪到最前,视频由播放器直连官方 CDN,网速不够照常降档(France 24 官方只有 1080p、360p 两条单独的清单,模块拼成一份);NHK 主清单同样最高档在前。固定频道使用实验台验证过的原始 HLS 地址,不经过该解析模块,避免重复和额外转发开销
    海外频道42 个海外免费频道:体育 13(Sky Racing、FUEL TV、beIN Sports Xtra、FIFA+ 等)、娱乐时尚 12、文旅 7(含 NASA+、Gusto TV)、国际 9(NEWS1、France 24 Español、Thai PBS、Bloomberg TV 亚太 / 欧洲 / 美国、DW English、TRT World、Al Jazeera English)、韩国 1(Arirang),并入对应的现有分组、排在组尾无需登录,默认关闭。在「设置 → 网络代理」配置代理后,清单和视频均经服务器转发;没有生效代理时由播放器直连官方 CDN。标记最高档前置的频道保留自动降档和音轨;代理模式取流失败不会退回播放器直连。频道表 IPTV-overseas.m3u 每六小时从仓库更新,拉不到时用内置版本;暂无节目单。升级后刷新播放器订阅,让旧直链替换为本机入口;原有隐藏、命名和排序继续有效
    Xumo PlayXumo 官方 Live Guide 与公开播放接口默认关闭,持续排除宗教频道。取址、最高画质视频和字幕统一经服务器网络代理,持久缓存和失败保留均由独立模块管理
    广电抓取北京、天津、重庆、四川(含成都及区县、绵阳、泸州、遂宁、内江、达州、巴中、甘孜、阿坝、广元、宜宾、凉山、雅安、乐山、眉山、资阳)、贵州、安徽、辽宁、大连、广东、广西、福建、江西、甘肃、青海、新疆、西藏、云南、吉林、黑龙江、内蒙古、海南、河北、山西、陕西、湖北、河南、湖南、江苏、南京、青岛、山东、上海、深圳、浙江、杭州、宁波、嘉兴、台州天台、绍兴、东阳、衢江、江山、梅州、泉州、晋江、石狮、莆田、宁德、无锡、扬州、南通、盐城、宁夏等从各广电源站、公开接口或客户端公开直播能力获取当前地址;短效签名、防盗链、加密清单和 CDN 代理按模块分别处理
    景观直播央视网「直播中国」、吉林风景、美丽河北、Live 南京、上海与青岛城市景观等按源站当前在线状态动态收录;离线、下架或源站调整时会自动减少,不以固定频道数承诺可用性。各地景观都是单独的模块,在源管理对应的省面板里可以和电视频道分开开关
    内置网页抓取源如纬来体育等需要从公开页面解析当前地址的单频道源内置抓取规则与定时刷新;每个源可配多个入口地址,主站打不开或抓不到时自动换备用地址重试,清单本身通过远程配置更新(改仓库文件即生效,无需升级镜像)。每个源均可单独关闭
    精选公开独立源体育、国际、港台、文旅、宠物、娱乐时尚,以及苏州台、德化台等项目维护的「精选频道」列表,收集公开可访问且经可用性检查的独立播放地址,并提供远程更新与本地快照兜底;可访问性检查不等同于版权授权审查
    用户自有来源M3U8 直链、网页提取、M3U/M3U8/TXT 订阅完全由部署者自行添加、排序、分组和控制在哪些配置档中显示,适合接入自有设备、合法订阅或已获授权的直播源

    [!NOTE] 所有内置抓取模块、内置网页抓取源和精选频道都能在「🌐 源管理」中独立关闭,也可用「批量开关」一次勾好要保留的抓取模块,并整体开关内置单频道源 / 精选频道;新部署需要完全空白的频道管理器时可使用 mblank=true。平台名称及商标仅用于说明兼容性,本项目不隶属于、也不代表上述平台或内容权利人。

    抖音的「音乐轮播」已实播核验「粤语经典怀旧唱片」(房号 24225754530)。在「源管理 → 抖音直播」选择「在所选分类里轮选」,勾选「音乐轮播」,保存并刷新后可从 M3U 的「抖音」分组播放。2026-11-04 从导出的 HLS 条目播放 12 分钟,四首歌自动衔接,第三次切歌后曾因 CDN 超时跳过约 12 秒。默认 FLV 另测 60 秒,音画正常。同次复测中,综艺和动画均为 0 路。粤语经典怀旧唱片直播间

    江门综合因官方直播 CDN 持续返回 502,于 2026-10-27 暂时移除。升级后不再出现在「广东」分组,旧配置与频道缓存会自动清理;解析模块与台标保留,供官方恢复后重新接入。

    辽宁省台(卫视、都市、影视剧、体育休闲等)和沈阳新闻综合、经济、公共已重新接入,在「🌐 源管理 → 免账号模块 → 辽宁」里,默认开启。官方接口只放行部分网络:10 月曾只放行辽宁本地,2026-11-04 实测大陆各地都能播,香港和海外不行,官方也可能再收紧。能不能播取决于部署服务的机器所在的网络,部署在海外的可以在这里关掉;关掉后再打开,后台会先弹出这条提示。官方当前只给回看的频道这一轮先不列,转回直播后自动出现。旧版「北斗融媒」模块的配置和缓存在升级或导入旧备份时照旧清掉。大连新闻综合、生活、文体仍由独立「大连」模块提供,都归入「辽宁」分组。调查历史见 辽宁直播调查。

    YouTube 直播订阅 在「海外」启用后,输入用户名、频道 ID、频道或视频链接,点「关注频道」。直播、预约、回放、普通视频和 Shorts 链接都用于识别发布频道;M3U 中保存的是频道,播放时查找它当前的直播。频道未开播时仍保留,同一频道的不同链接不会重复添加。一个频道同时开好几路直播的(如新闻台),关注频道只会播第一路;想看其中某一路,点「查看场次」,在那一场后面点「订阅此场」,M3U 里多出这一场(粘贴的单场链接本身在播或已预约时排在第一个)。固定场次结束后不会自动删除,模块里标出「已结束」后可一键移除。部署在大陆的,到「设置 → 网络代理」填代理软件的 HTTP 或 SOCKS5 地址(如 http://192.168.1.10:7890),点「测试」确认能连上 YouTube;这个代理供 YouTube、澳门(澳广视)、海外频道和 Telegram 使用。澳门与海外频道有生效代理时,清单和视频均经服务器转发,播放设备不用另设代理;会使用服务器带宽及代理流量。没填时沿用 HTTPS_PROXY 或系统代理;其他模块不使用这里填写的代理。自己添加的订阅源、直连源要走这个代理,在「🌐 源管理 → 自定义源」该源的卡片上勾「经网络代理转发」。YouTube 改版后解析失败时,到模块里点「检查更新」可就地升级解析组件 yt-dlp,不用等新镜像(重建容器后以镜像自带版本为准)。更新中断、配套依赖缺失或版本不匹配时,模块会显示「修复依赖」;点击即可重试,验证完整后才提示成功。Docker 镜像包含解析依赖;源码运行可用 Python 3.11+ 执行 npm run setup:youtube(可通过 YOUTUBE_PYTHON 指定解释器),或用 YTDLP_BIN 指向已安装的 yt-dlp。

    v4.69.0 更新内容

    本次为「新增 Xumo Play、YouTube 播放失败说清原因、自定义订阅可从最高画质起播」版本:海外分类新增 Xumo Play,四百多路 Xumo 官方免费直播;YouTube 播不了时写明是网络、出口、地区还是账号权限的问题,订阅后面多了「检查播放」;自己添加的 M3U 订阅可以标记频道从最高画质起播;精选频道里的几路海外频道挪进「来源于网络」或下线。拉取新镜像、重建容器后即生效(只重启容器不会换成新版本),现有配置无需改动。从 v4.63.0 及之后的版本升级上来的,只需下载有变化的部分(几十 MB);从更早的版本直接升级,仍要完整下载一次。

    • 新增 Xumo Play:到「源管理 → 海外」打开「Xumo Play」(默认关闭),会多出 25 个「Xumo · 分类」分组,共 422 路 Xumo 官方免费直播,以美国的新闻、地方新闻、体育、影视和真人秀为主,分组名沿用官方的英文分类。宗教类频道一律不收。默认从最高画质起播,保留音轨和字幕。画面、声音和字幕都由服务器转发,会用服务器的带宽和代理流量;能不能看取决于服务器的网络和 Xumo 的地区限制,看不了到「设置 → 网络代理」填代理。频道表每天更新一次、每 6 小时检查一次:新上的频道先确认能正常播放才加入,官方撤下的频道要隔天再确认一次才移除,更新失败时沿用上一次的频道表。关掉模块后这些频道从播放列表里移除,正在播的也会停。这些频道暂时没有节目单。镜像里为此加了 FFmpeg,只用来检查新频道能不能播,播放不转码。

    • YouTube 播放失败时说清是哪里的问题:以前 YouTube 频道播不了,日志里常常只有「YouTube 解析失败」或「此直播在当前出口无法匿名播放」,看不出该从哪儿查。现在报错开头先写原因——网络不通、出口被拦(要求人机验证)、请求受限、地区限制、需要登录、需要会员权限、未开播、直播已结束、解析超时——后面跟着该怎么办。会员专享、年龄验证、私享这类直播模块本来就播不了,报错会直接说明,请到 YouTube 官方页面观看。「查看场次」里因为地区限制、会员专享暂时打不开的固定场次,也不再被当成失效、列进一键移除。

    • YouTube 订阅可以「检查播放」:「源管理 → 海外 → YouTube 直播」的订阅列表里,每个关注的频道和固定场次后面多了「检查播放」,点一下由服务器试着打开当前这一场直播,结果显示在这一行下面:打得开说明直播入口可用(不含音视频本身,实际播放仍以播放器为准),打不开就显示上面那些原因。

    • 自己添加的订阅可以让频道从最高画质起播:有的直播源主清单把最低画质排在第一位,AVPlayer 这类播放器会从最低档起播、先糊一阵。现在在自己添加的 M3U 订阅里,给频道的 #EXTINF 行加上 x-top-first="1",播放时服务器先取一次主清单、把最高画质挪到最前,其余档位、音轨和字幕都保留,网速不够照常降档;视频仍由播放器直连,不占服务器带宽,勾了「经网络代理转发」的照旧整条经代理。写法见自定义源说明。只对本项目输出的播放列表有效,把原始 M3U 直接交给播放器不会起作用。「来源于网络」列表里的 World Poker Tour 已经标上:订阅下次自动刷新后(想马上用就在它的卡片上点「导入并保存」),在播放器里刷新一次订阅即可。

    • 精选频道里的几路海外频道挪走或下线:Pet Club TV、WildEarth、Love Nature 4K、World Poker Tour、NHL FAST 从精选频道挪到默认自带的「来源于网络」列表,地址、分组和台标不变;公视高清、民视高清、台视高清、TVBS亚洲、Reuters、UFC 24/7 从精选频道下线,其中 Reuters 和 UFC 在新的 Xumo Play 模块里有(Reuters 60、UFC)。「来源于网络」里的纬来日本、纬来育乐同时删除。精选频道和「来源于网络」都是直接从仓库拉取的,这部分改动所有版本都已生效;「亚洲与国际直播」模块不再单独提供 World Poker Tour,这一点升级后生效。之前删掉了「来源于网络」又想看这五路的,到「源管理 → 自定义源」点「添加「来源于网络」列表」,再点「导入并保存」。

    • 经网络代理转发的自定义源取不到时,报错说清楚原因:以前报错页上只有 UND_ERR_SOCKET、fetch failed 这类错误码,看不出问题在哪。现在会写明是连不上代理,还是「代理已接通,往对方站点的连接被断开」「代理已接通,但它连不上对方站点」——后两种是从代理出去连不上这个地址,后面附一句怎么办:用自己网络就能直接播的源不用勾「经网络代理转发」,代理软件用规则模式的,看看这个地址走了哪条线路。经代理拉订阅失败时,卡片上的失败原因也改成这样的话;「设置 → 网络代理」的「测试」也认得代理接通后被断开这种情况(Clash 这类代理连不上对方时就是这样)。

    • 源管理里的频道数和频道名单对得上了:咪咕、大连的频道只放在内存里,重启后一直抓取失败时,卡片上仍写着上一次的频道数(比如「失败 · 83 频道」),点开却是「目前没有抓到频道」,看着像还有频道在播。现在频道数按实际还在输出的频道算,这种情况会写 0 频道。

    完整更新历史见 CHANGELOG.md

    📑 目录


    🚀 快速开始

    推荐使用 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 目录。更多环境变量与玩法见配置与进阶。


    🧭 功能全景

    四个页面,完成从内容接入到播放分发的整个流程:

    页面能做什么
    📺 我的频道分组、隐藏、排序、重命名与批量管理;按名字搜索频道在哪个分组;按名字长期屏蔽频道、一次隐藏整批同前缀分组;查缺台标;建立多套配置档;复制标准版、兼容版或全代理版订阅地址
    🌐 源管理管理抓取模块、内置源与精选频道,可一键批量开关、只留需要的来源;添加网页提取、手动直链或订阅源;检测失效频道并调整多源优先级
    ⚙️ 设置调整系统参数、网络代理(给 YouTube、澳门、海外频道、Telegram 推送,以及勾了「经网络代理转发」的自定义源用)、频道别名、自动分组规则、EPG 聚合和用户令牌;登录失效、EPG 源失败等需要处理的提醒推送到企业微信(群机器人或自建应用)、飞书、钉钉、Telegram、Bark、自定义 Webhook,或照接口文档自己填请求模板接入 PushPlus、Server酱、WxPusher、ntfy、Gotify 等推送平台;导出或导入完整配置
    ℹ️ 关于我们查看当前版本并检查更新

    修改源后 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 后缀
    Emby / Jellyfin「电视直播」添加 M3U 调谐器:/interface.m3u;节目单添加 XMLTV:/playback.xml
    极空间极影视、部分老电视盒兼容版:/interface.m3u?relay=1
    使用兼容版仍无法播放的设备全代理版:/interface.m3u?relay=2,兼容的频道会由服务器转发视频分片

    三个版本的区别在于播放器取流时经过服务器的部分:

    版本播放清单视频分片服务器带宽
    标准版 /interface.m3u服务器 302 跳转到官方地址,播放器自己去取播放器直连官方 CDN几乎不占
    兼容版 ?relay=1服务器取好后直接发给播放器,给不跟随 302 跳转的播放器播放器直连官方 CDN很少
    全代理版 ?relay=2服务器转发服务器转发视频流量全部经过服务器

    [!NOTE] 能使用标准版就无需切换;标准版链路最直接。播放器不跟随跳转时使用兼容版,只有兼容版仍失败时才使用全代理版。

    部分内置模块会按平台要求自动为单个频道启用全代理,与所选订阅版本无关。例如央视景观的 CDN 会校验源站请求头,因此即使使用标准订阅,该分组的清单和视频分片也会自动经过 iPTV 服务端;其他可直连频道不受影响。


    ❓ 常见问题

    模块的默认开关不看网络:大部分模块默认开着,「海外频道」「澳门」「Red Bull TV」默认关着,需要的在后台「🌐 源管理 → 内置抓取模块」最下面的「海外」小节里打开;部署在海外时,用不了的模块也在这里关掉。

    能不能播,要看取流时是谁去连官方:

    1. 服务端取流(换签、全代理、中继清单):看部署服务的机器(NAS / VPS)的网络。咪咕、安徽、重庆、贵州、泉州、山东、深圳、青海省台、新疆只对大陆开放;吉林、江苏、无锡对大陆和香港开放,部署在其他海外地区时用不了。其中服务端只换签或只中继清单的,视频还要播放设备能连上。
    2. 播放器直连(服务端只给地址):看播放设备(电视、盒子、手机)的网络。「海外频道」33 台都是这种,在大陆连得上但常卡顿,播放设备挂了代理就流畅;宁夏(只对大陆开放)也是这种。黑龙江默认由服务器转发,看服务器网络(此前大陆及香港可达);选择「播放器直连」时才看播放设备的网络。
    3. 两头都要:「澳门」播放前服务端要向官网查 CDN,视频再由播放器直连,部署的机器和播放设备都要能连到大陆以外。
    4. 央视和卫视在海外靠「央视频」:63 个公开频道里 58 个能播,CCTV5、5+、16 按体育版权不对海外开放。

    各模块在海外的实测结果见 OVERSEAS.md。

    iPanda 网页播放器的清晰度名称与实际分辨率依次是:流畅 640×360、标清 854×480、高清 1024×576、超清 1280×720。播放器把 1080p 另称为“蓝光”,但当前 22 路 HLS 均未提供该档;逐路检查最高档视频编码也都是实际 1280×720,不是清单虚标。

    这些频道的匿名接口已经返回公开可播状态,页面没有启用 VIP 清晰度限制。登录不会为当前 iPanda 直播解锁 1080p;主项目检测到的最高档 720p 正好就是播放器菜单中的“超清”。两个 24 小时总频道提供上述四档,其余 20 路为单档 720p。

    百视通默认关闭,需要时先在「源管理 → 百视通」手动开启,再到「播放网络」选择「IPv6 直连并转发视频」。需要 Docker 容器本身具备可用的 IPv6 出网;NAS 有 IPv6 地址不代表容器已能出网。视频由 NAS/服务器转发,因此播放器只有 IPv4 也能使用,服务器会承担视频带宽。此模式绕过应用中配置的代理,系统 VPN/TUN 仍可能接管流量。保存后点击模块「立即刷新」,再刷新播放器订阅。

    选项旁提供使用提示,可用性仍取决于实际出口和上游响应,不能保证所有地区都可用。需要手动检查时,可在容器内运行 node scripts/probe-bestv-network.mjs ipv6;只具备 IPv4 的部署暂未找到通用的 403 修复。详见 百视通模块说明。

    北京时间的公开活动和慢直播不需要登录,会自动出现;北京卫视、BRTV 各地面频道与卡酷少儿需要本人站点登录态。进入「🌐 源管理 → 北京广播电视台」,按卡片里的入口打开站点并登录;在浏览器开发者工具的 Network(网络)里刷新页面,点开 getUserInfo 请求,在 Request Headers 中单击 Cookie 的值后按 ⌘C(Windows/Linux 按 Ctrl+C),粘贴回后台保存即可,不需要鼠标右键。也可以用 mBtimeCookie 环境变量配置。

    模块会先验证 Cookie:有效时加入 9 个电视台,失效时只隐藏电视台并给出提示,免登录直播继续可用。凭据只发给北京时间账号 / 取流接口,不会写进订阅或发送给媒体 CDN。北京时间媒体要求源站防盗链请求头,因此该模块固定由服务端代理 HLS;本地 macOS 会自动沿用系统 HTTPS 代理,Docker / Linux 可按需设置标准 HTTPS_PROXY 环境变量。

    进入「🌐 源管理 → 凤凰卫视」,导入本人凤凰秀账号的 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 / 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 源」的顺序补,前面给了的频道后面不再覆盖。模块自带节目单目前接入了央视频(央视与卫视频道),河南、浙江、江苏、广东、深圳、广西、海南、山西、陕西、天津、上海、山东、河北、大连、南京、湖北、福建(含厦门、福州)、新疆、云南、宁夏、泉州(新闻综合、闽南语)、石狮新闻综合频道、莆田新闻综合与文旅生活、无锡 5 个频道、扬州 4 个频道、南通三套电视、盐城两套电视、青岛 5 个频道、绍兴三套电视、凉山两套及攀枝花新闻综合、市县台里 28 路(大庆、黄石、长沙、阿克苏等)、崂山频道的官方节目单,北京(7 个电视频道)、甘肃卫视、延边卫视、青海卫视、成都新闻综合与成都公共取自央视网,以及凤凰卫视、香港卫视、澳门莲花卫视、澳广视 6 个电视频道、NHK World、YTN;百视通默认七路中的五路也有官方今明节目单(乐游、法治天地官方空表);湖南、内蒙古、甘肃地面频道、吉林(延边卫视以外)、四川、四川市州其余频道、成都其余频道、贵州、重庆、黑龙江、广州、江西、安徽、西藏、青海(青海卫视以外)、嘉兴、杭州、宁波、台州天台、东阳、衢江、江山、梅州、晋江、仙游、宁德、市县台与山东市县其余各台官方暂时没有可用的节目单。咪咕频道(CCTV 各台取自央视网)与多数模块取今明两天;部分省台官方只发当天的节目单,零点后要等下一轮更新才有新一天的。各模块节目单的来源、覆盖与没接上的原因见 EPG.md。外部 EPG 源默认不带:先后内置过的 51zmt 已退化到只剩央视卫视,erw 10 月 1 日起停止免费下载。需要更广的覆盖,可在「设置 → EPG 聚合」自己加 XMLTV 源;某个源想压过官方节目单(比如它给的天数更多),勾上「优先于官方节目单」,它当前有节目的频道就改用它,源停更只剩旧数据时自动让回官方。老部署里没改过的内置默认源会被自动删掉;改过名的那条程序不会动,列表里会有一行提示。精选列表里的港台频道、各地景观和 B 站 / 虎牙 / 斗鱼这类没有公共节目单,属于正常。红牛轮播的官方逐节目时间表尚未接入;红牛赛事标题显示在频道名中。广东体育赛事子频道也按直播间处理,赛事标题直接显示在频道名中,不套用广东体育电视频道的节目单。

    YouTube 自选频道和固定直播场次没有统一节目单,正在直播及已预约的节目可在模块的「查看场次」中查询。

    弹幕:咪咕体育赛事的直播条目带 danmaku-url(弹幕来自官网赛事聊天室,不用登录),Ceau 等支持统一弹幕接口直播扩展的播放器会按服务器墙钟每 5 秒拉一次增量;回放条目和固定电视频道没有聊天室,不带。其他播放器忽略这个属性,照常播放。协议与接口见 DANMAKU.md。

    再切换到「🚚 全代理版」,即 /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 状态;「公告」分组里的教程短片演示了全过程。

    服务不接收密码;导入的 cookie 只存在央视频专用的 Chromium profile 里,不写进配置文件或备份。站点 SDK 的刷新令牌 48 小时有效、由 SDK 在页面里自动续期,服务端每 6 小时静默拉起一次后台会话让它续一次,家里几天没人看会员频道也不会掉线;站点要求重新验证、账号退出或会员到期后,需重新登录或导入。导入后如果你自己电脑上的登录被踢下线,属于正常现象(同一份令牌被服务端接管),不影响电视端。

    会员视频必须经网页播放器解扰后才能被普通 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 全时段不提供),做出来体验也是时好时坏。

    能,前提是订阅本身声明了回看模板。导入时会保留订阅里的 catchup、catchup-days、catchup-source,写在频道行上或文件头 #EXTM3U 上都认,频道行优先;也认 Kodi 的写法 catchup-type、tvg-rec、timeshift。这些声明清洗后逐个频道写回订阅:别名改写成标准写法,完整网址模板补上 catchup="default",SIPTV 式的 timeshift="N" 补上 catchup="shift"。声明了模板的频道,播放器按源自己的模板(例如 ?playseek=…)请求回看,不再套用咪咕的模板。

    订阅里没写回看、或只写了天数没给模板的频道,模板照旧继承本项目订阅头的咪咕回看模板(?playbackbegin=…)。第三方源一般不认这套参数,点回放仍是直播,这是源本身没有声明模板,不是导入时丢了。含引号、逗号、空白或 ${replace} 的模板会被丢弃(防止撑破播放列表、把访问密码带给第三方),这类频道同样回退为继承订阅头。

    订阅更新后才会带上新声明。默认每次重启都会刷新所有订阅源;关掉了「重启时更新」的源,到「🌐 源管理」里点一次「导入并保存」即可。

    能。先在「设置 → 网络代理」填好代理并点「测试」,再到「🌐 源管理 → 自定义源」打开那个订阅源(或直连源)的卡片,勾「经网络代理转发」,点「导入并保存」(直连源点「保存」),然后在播放器里刷新一次订阅。

    1. 拉取列表、播放其中的 HLS 频道都经代理,清单和视频由服务器转发,播放设备不用设代理;会用服务器的带宽和代理流量。
    2. 局域网地址(如 udpxy)、rtmp / udp 等非 HTTP 地址、FLV 频道照旧由播放器直连;取回来不是 HLS 的频道也交还给播放器直连。
    3. 代理软件用规则模式的,要自己放行这些频道的域名;经代理取不到时报错,不会悄悄改成直连。报错写着「代理已接通」的,是从代理出去连不上这个地址:用自己网络就能直接播的源不用勾这个开关。
    4. 代理清空后,这些频道自动改回播放器直连,不用重新导入。开关一开一关,频道的隐藏、改名、排序都不受影响。

    内置模块和精选频道没有这个开关:要走代理的内置模块是固定的(YouTube、澳门、海外频道等,卡片上标有「走代理」)。

    这是多个无头 Chromium 同时在跑把机器(尤其是内存 ≤2G 的 NAS / 小主机)拖进了交换分区。网页抓取型的源(如纬来体育)、央视景观、湖北台防盗链都需要起一个 Chromium,每个约占 200~400MB;此前它们各自启动、互不知情,且一个当前抓不到的源会在每个 5 分钟检查里都重新起浏览器再试一遍。

    现已改为:全进程共用一个启动器,同时存活的 Chromium 不超过 mbrowserConcurrency(默认 2,超出的排队,常驻会话空闲时会主动让位);抓取失败按 10 → 20 → 40 分钟指数退避,不再每 5 分钟重试;网页抓取时不下载视频分片、图片、字体,取票会话也拦掉图片、字体(央视景观、湖北台连媒体请求一并拦掉),并关闭 Chromium 磁盘缓存,5 分钟无人取票就整个关掉浏览器。若机器内存很小,建议在 compose 里设 mbrowserConcurrency=1;不需要网页抓取的可直接在「🌐 源管理」关闭对应的源或模块。广东台使用官方 HTTP 接口和短时 WebSocket 会话取票,频道接口预检通过后获取播放地址,并沿用清单中继自动续签。

    想在本地几分钟内验证这套机制: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 都等同登录态、请勿外传。

    环境变量参考

    🔹 常用配置(够大多数人用)
    变量名默认值说明
    mport1905容器监听端口
    mhost公网 / NAS 访问地址,如 http://192.168.1.100:1905
    mpass访问密码(可选),设置后访问 http://ip:port/密码/...
    mdataDir/iptv/data数据持久化目录(镜像已默认此值并声明数据卷);建议 -v ./data:/iptv/data 绑定宿主机便于备份。老部署挂的 /migu/data 继续兼容,无需改动
    变量名默认值类型介绍
    mport1905number本地运行端口号
    mhoststring公网/自定义访问地址格式http://ip:port
    mpassstring访问密码 大小写字母和数字添加后访问格式 http://ip:port/mpass/...
    mdataDir镜像内 /iptv/data;node 直跑为当前目录string配置 / 数据持久化目录(仅环境变量可设)旧镜像路径 /migu/data 继续兼容:新路径无数据、旧路径有数据时自动沿用旧路径
    madminPathadminstring管理页面自定义路径,如填 console 则用 /console 访问后台(/admin 失效)保留字 api/player/favicon.ico 与非法值会回退 admin
    muserIdstring咪咕模块的账号 ID(仅需高画质 / 会员内容时配置)推荐改在后台模块卡片里配置(附书签工具一键获取)
    mtokenstring咪咕模块的登录 token(同上)
    mrateType3number咪咕模块画质2: 标清 (480p)3: 高清 (720p)4: 蓝光 (1080p,需VIP)7: 原画 (1080p+,需VIP)9: 4K (2160p,需VIP)
    mbiliSessdatastring哔哩哔哩模块的登录态 SESSDATA(不填限「超清」,填了解锁「原画」)推荐改在后台模块卡片里扫码登录
    mBtimeCookiestring北京时间站点登录 Cookie(仅北京 9 个电视频道需要;公开活动 / 慢直播免登录)推荐改在后台「源管理 → 北京广播电视台」配置
    TIANJIN_WISE_AK / TIANJIN_WISE_SK / TIANJIN_WISE_3DES_KEY内置string天津模块的津云 App 应用参数,平台更换参数时覆盖用,平时不用设
    menableHDRtrueboolean是否开启 HDR(vivid/4kvivid)设 false 关闭
    menableH265trueboolean是否开启 H.265 原画有兼容性问题(如只有声音没画面)时设 false 关闭
    menableClientDispatchfalseboolean客户端就近取流:服务器与观看设备不同运营商导致抓取频道跨网卡顿 / 播不了时设 true同网部署无需开启
    mupdateInterval8number节目单 / 源更新间隔(小时),不建议过短;另外每天北京时间 00:10 自动多更新一次,补上新一天的节目单
    mexternalLogoBase空(不配)string频道没有可用的自带台标时,按频道名到公共台标库兜底取图的基址。默认不配:台标库是别人维护的,不替你引入用 taksssss 台标库就填 https://gcore.jsdelivr.net/gh/taksssss/tv@main/icon/(索引会自动带上);换成其它库需保证 <基址><频道名>.png 可访问。本地 logos/ 里的图始终优先
    mexternalLogoIndex跟随 mexternalLogoBasestring台标库的「频道名 → 图片」索引地址。有索引才知道库里到底有没有这张图:没有就不给这个台标,而不是写一个必定 404 的地址(裂图)索引每 7 天下载一次并落盘缓存,拉不到时自动退回按名兜底。mexternalLogoBase 填的是上面那个 taksssss 地址时自动带上它的索引,其它库默认关闭(别人的清单对不上你的库);留空同样关闭
    menableLogoCachetrueboolean台标本机托管:每轮更新把要用的台标下载到数据目录 logo-cache/,逐张确认是图片后由本机提供,播放器不再直连各台图床与台标库;源自带的台标坏了(404、不是图片)自动换下一个来源。设 false 退回直接写原台标地址
    mrefreshTokentrueboolean是否每月自动续期平台 token可能导致封号,可设 false 关闭
    mblankfalseboolean空白模式总开关,设 true 后下面三项内容开关默认翻转为关细粒度开关显式设值时优先于本项
    menableMigutrueboolean是否启用咪咕抓取模块(CCTV/卫视 + 体育赛事 + EPG)设 false 后体育赛事、回看、对应 EPG 不可用
    menableBuiltInSourcestrueboolean是否启用内置单频道源(纬来体育 / 4K 卫视 等)
    menableBuiltInSubscriptionstrueboolean是否启用内置订阅源(精选频道),并在首次启动时添加「来源于网络」自定义订阅已添加的可在「源管理」删除,删后不复活

    除 mdataDir/mport 外,多数项也可在后台修改(模块项在「🌐 源管理」,平台级项在「设置」页),保存即时生效(端口与更新间隔需重启)。升级用户:环境变量与旧配置继续有效,首次启动自动迁移,无需改动。

    📺 多套配置档(给不同电视各一套)

    后台「📺 我的频道」标题行右侧可新建 / 切换配置档,每档独立维护隐藏 / 分组 / 排序 / 重命名,互不影响;每台电视填各自的地址(每档底部可复制),如 http://你的IP:1905/interface.m3u?profile=woshi。各档共享同一份底层频道与 EPG,新增电视不增加抓取成本;默认档地址不变、老用户零感知。

    🧹 空白部署 / 纯频道管理

    只想用自己的源时,用内容开关关掉自带内容(也避免同名分组撞车):

    需求配置
    彻底空白,自己加源mblank=true
    空白但保留抓取核心mblank=true + menableMigu=true
    只去掉自带的额外源 / 订阅menableBuiltInSources=false + menableBuiltInSubscriptions=false
    只要央视频 + 凤凰卫视 + 咪咕(精简)后台「🌐 源管理 → 内置抓取模块」点「批量开关」只勾这三项,步骤见下方「精简示例」

    也可在后台「🌐 源管理」直接开关各卡片,或在「内置抓取模块」页用「批量开关」一次勾好要保留的模块和内置源,保存即时生效。关闭 menableMigu 后体育赛事、回看与对应 EPG 不可用,属预期表现。

    精简示例:只留央视频、凤凰卫视、咪咕

    只想要这三个来源时(issue #189),不必把模块卡片逐个点关:

    1. 进入后台「🌐 源管理 → 内置抓取模块」,点筛选栏最右侧的「批量开关」;
    2. 点「全不选」,再勾上「央视频」「凤凰卫视」「咪咕视频」;清单最下面「内置源」一节的「内置单频道源」「内置订阅源(精选频道)」保持不勾;
    3. 点「应用」。

    一次保存、即时生效,播放列表随即重新生成。关掉的模块只是不再抓取,配置和登录凭证原样保留,以后在「批量开关」或卡片上勾回即可恢复。批量开关只是一次写多张卡片的开关,没有另设白名单,每张卡片仍是它自己的唯一开关。

    全新部署也可以用环境变量起步:mblank=true + menableMigu=true,首次启动后只有咪咕开着(两项内置源也是关的),再到「🌐 源管理」打开「央视频」「凤凰卫视」两张卡片即可。注意 mblank 只在全新部署(空数据目录)首次启动时把模块卡片一次性关掉,之后只决定咪咕和两项内置源的默认值、不再影响模块卡片;已在用的部署想精简,请用上面的「批量开关」。

    几点说明:

    • 「央视频」分组除央视全套、CGTN 外还含全国主要省级卫视。不需要的在「📺 我的频道」逐条隐藏,或用「🚫 屏蔽规则」按名字长期屏蔽(如一条含「卫视」的规则盖住一批;按名屏蔽不分来源,咪咕里名字命中的台也会一起隐藏)。
    • 凤凰卫视的三个台归入「香港」分组,想换个名字就在「📺 我的频道」重命名该分组。
    • 自己添加的源属于「自定义源」,不在批量开关里,到「🌐 源管理 → 自定义源」逐个启用或停用。默认自带的「来源于网络」列表也在这里,包含第三方转发源、平台分发源及来源待确认的 CDN;第三方转发站大陆直连大多播不了,其他线路按各自情况判断。需要代理时,填好「设置 → 网络代理」后可在它的卡片上勾「经网络代理转发」,不需要就停用或删除,删后不复活。
    • 「公告」分组固定在首位,不想看可在「📺 我的频道」逐条隐藏。
    • 只想给某一台电视精简、其它电视保持完整:新建一个配置档,在配置档弹窗里点该档的「源」,把这三个以外的来源逐个取消勾选(每次取消即时保存)。这份清单是排除名单,以后新增的模块或源默认也会出现在这一档,需要时再取消;它只改变这一档显示什么,其它模块照常抓取,不省服务器资源。

    📡 公网地址 (mhost)

    反向代理 / 域名访问 / 对外分享时填写(如 http://yourdomain.com:1905),仅内网使用留空即可。系统自动按访问来源选择播放列表里的地址:内网访问用内网地址,反代访问(带 X-Forwarded-For)用配置的公网地址;填 http(s):// 完整地址时不会强制补端口。

    🔐 访问密码 (mpass)

    设置后所有服务都要在 URL 带密码路径:http://ip:port/密码/interface.m3u、http://ip:port/密码/admin 等,播放列表内的频道链接自动注入密码路径,未授权访问返回 403。

    🔧 本地运行(不用 Docker)

    需要 Node.js 20+(推荐 22 LTS);部分平台的频道需要中国大陆网络环境。

    git clone https://github.com/akiralereal/iptv.git && cd iptv
    node app.js
    

    环境变量与 Docker 同名同义,例如:mport=1905 mhost="http://localhost:1905" node app.js(Windows PowerShell:$Env:mport=1905; node app.js)。


    更新日志

    每个版本改了什么见 CHANGELOG.md,也可以在 GitHub Releases 查看;最新一版的内容在页面顶部「当前版本更新内容」。


    💖 支持项目

    如果 iPTV 为你的家庭影音体验带来了帮助,欢迎点亮一个 ⭐ Star、分享给朋友,或通过以下方式支持项目继续维护。

    赞助均为自愿捐赠,不代表任何授权或合作;项目不接受来自商业售卖收益的赞助,详见项目立场。


    📌 项目立场

    iPTV 是为个人学习、研究和家庭自用而做的非营利项目,不是为了卖钱。

    • 不支持、不参与任何商业售卖。 包括把本项目或其修改版连同频道源预装进电视盒子、电视棒等设备出售,或以本项目为基础售卖订阅、账号或"包年直播"服务。频道与节目内容有各自的权利人,未经授权预装售卖可能构成侵权甚至违法,相关责任由售卖者自行承担。
    • 不接受售卖方的赞助。 对来自上述商业售卖收益的赞助,项目会婉拒;已收到的任何赞助都是自愿、无条件的捐赠,不代表项目认可、授权或参与赞助者的任何产品或经营行为。
    • 不得冒用项目名义宣传。 请勿使用「iPTV」项目名称、仓库链接、台标或作者身份,暗示商品或服务获得了「官方授权」「官方合作」或「官方版本」。
    • 与开源许可的关系。 本节是项目维护者的立场声明,不是对 GPL-3.0 的附加限制;代码层面的权利义务以 GPL-3.0 为准,第三方内容的使用边界见下方免责声明。

    ⚖️ 免责声明

    [!WARNING]

    • 本仓库代码按 GPL-3.0 授权,许可证之外不附加任何使用限制:GPL 允许出于任何目的使用、修改与再分发(含商业用途),条件只有遵守 GPL 条款。以下各条针对的是经本软件接触到的第三方内容、数据与账号的权利,属于法律与合规提示,不是对软件本身的附加许可条件。
    • 不得将未获权利人授权的第三方频道与节目内容用于售卖订阅、公开转播、商业运营或其他未经授权的用途;这一限制来自内容权利人与所在地法律,与软件许可证无关。
    • 本项目提供的是频道管理、地址解析与代理分发软件;除项目自制的使用公告短片外,项目服务器不托管第三方音视频节目。仓库及运行时可能包含或获取公开可访问的播放地址、频道名称、台标与节目单元数据。公开可访问、技术上可播放或经过可用性检查,均不等同于内容属于公有领域或已获得复制、传播、转播及商业使用授权。
    • 音视频内容、频道标识、平台名称和商标的权利归各自平台、制作者及其他权利人所有;文中提及第三方名称仅为说明兼容性,不表示合作、认可、授权或隶属关系。项目的 GPL-3.0 许可只适用于本仓库代码,不授予任何第三方内容、商标、接口或数据的使用权。
    • 使用者应自行确认所在地区法律、内容授权范围和各平台用户协议,只接入本人拥有、合法订阅或已获明确授权的来源。不得利用本项目未经授权绕过登录、付费、DRM、地域限制或其他访问控制,不得共享、盗用或转售账号与凭据。
    • 互联网来源可能随时变更、下架或被限制,项目不对其合法性、准确性、持续可用性或适销性作任何保证。部署者对其添加、启用、公开访问和转发的来源承担全部责任;如无法确认权利状态,请关闭对应模块或使用 mblank=true 从空白配置开始。

    📮 版权与侵权处理

    如果你是内容权利人或其合法代理人,并认为本仓库收录的某个地址、频道元数据或抓取规则侵犯了你的合法权益,请通过 GitHub Issue 提交通知,标题注明「版权 / 侵权」,并尽量提供:

    1. 权利人及联系人身份、有效联系方式,以及代理关系说明(如适用);
    2. 涉嫌侵权的具体作品、频道、URL、仓库文件或模块名称;
    3. 权利归属或授权范围的必要证明;
    4. 希望采取的处理方式,以及你确认通知内容真实准确的声明。

    项目维护者收到信息完整、能够明确定位的通知后,会在合理时间内核验,并视情况移除地址、停用抓取规则或采取其他必要措施。请勿在公开 Issue 中提交身份证件、账号密码、Cookie、Token 等敏感信息;需要补充非公开材料时,可先在 Issue 中留下不含敏感信息的联系方式。

    📄 开源许可

    本仓库代码以 GNU General Public License v3.0(SPDX 标识 GPL-3.0-only)授权,全文见 LICENSE。Copyright © 2026 Akira Le。

    这意味着:

    • 可以出于任何目的使用、运行、研究和修改本软件,也可以再分发,包括商业用途;许可证之外不附加任何使用限制。
    • 分发修改版或衍生作品时(包括以 Docker 镜像等形式分发),须同样以 GPL-3.0 授权并提供对应源代码,保留原有版权与许可声明,并注明所做修改。只在自己的服务器上运行修改版而不对外分发,不触发此义务。
    • 许可证只覆盖本仓库的代码。 通过本软件整理或获取的播放地址、频道名称、台标、节目单以及音视频内容,权利归各自权利人所有,GPL-3.0 不授予它们的任何使用权;相关合规提示见免责声明,那些提示是法律与内容权利层面的说明,不是对本软件的附加许可条件。

    本项目使用的第三方组件及其许可证:

    组件用途许可证
    undici · node-fetchHTTP 请求MIT
    puppeteer无界面浏览器,供需要执行网页脚本的抓取模块使用Apache-2.0
    qrcode后台扫码登录二维码MIT
    hls.js · mpegts.js网页播放器解码Apache-2.0
    DPlayer网页播放器界面MIT

    以上许可证均与 GPL-3.0 兼容。mpegts.js 随仓库一起分发,其许可证文本见 web/vendor/mpegts-LICENSE.txt;其余组件由 npm 或 CDN 引入,许可证随各自软件包提供。