听天命
印

利用super321/iptv-tool,搭建自己的IPTV电视频道服务器

[复制链接]
发表于 1 小时前 | 显示全部楼层 |阅读模式
本帖最后由 hackfans 于 2026-10-3 01:22 编辑

利用爱快 rtp2httpd + IPTV Tool 实现运营商 IPTV 组播转单播并分类管理频道



一、背景需求

前一阵子,我利用爱快 4.0 应用商城里的 rtp2httpd,成功把运营商的 IPTV 组播信号转成了单播信号,终于可以免费看电视了。

但新的问题也随之而来:频道太多、太乱,需要把每个组播 IP 地址和对应的电台名称一一对应起来,方便换台和管理。

这里我选择使用 IPTV Tool 工具,它可以通过 Docker 拉取安装。我的服务器是 Ubuntu 26 系统,使用 1Panel 进行管理,下面就在 1Panel 中拉取镜像并安装 IPTV Tool。




二、软件介绍

super321/iptv-tool 是一个轻量级的 IPTV 管理和聚合分发平台 Docker 镜像。它的核心作用是把网上零散的直播源、EPG(电子节目单)和台标整合起来,生成一个统一的订阅链接,方便在 Tivimate、Kodi 等播放器中使用。

🎯 核心功能

  • 直播源管理:支持导入 M3U/TXT 格式的网络订阅地址,并可设置定时刷新、检测频道有效性(基于 ffprobe)。
  • EPG 源管理:支持配置多个 XMLTV 格式的节目单接口,定时拉取更新。
  • 台标管理:支持上传频道台标文件,并能在聚合发布时自动匹配引用。
  • 聚合规则:提供别名、过滤、分组等规则,可批量重命名、过滤购物频道或重新归类频道,还支持 AI 辅助生成规则。
  • 聚合发布:将整理好的源和 EPG 组合,生成 M3U、TXT、XMLTV、DIYP 等格式的订阅链接,并支持组播转单播、UA 校验等高级选项。
  • 安全与日志:支持 IP 黑白名单、HTTPS、登录防护,并提供运行日志和访问统计。





三、下载与安装

1、服务器环境

服务器环境为 Ubuntu 26 + 1Panel。这里既可以使用命令行安装,也可以在 1Panel 后台进行安装。

2、拉取镜像

拉取的镜像名为:super321/iptv-tool:latest。

在很多情况下,拉取 Docker 镜像的速度并不理想,建议先调试优化网络,或者多拉取几次。此过程根据网络环境不同,可能需要几分钟到十几分钟不等,耐心等待即可。

拉取​镜像_1.png
拉取​镜像_2.png

经过漫长的 180 秒等待,镜像终于拉取成功。

拉取​镜像_3.png

3、新建容器

接下来,开始新建 iptv-tool 容器。

新建容器_1.png
新建容器_2.png

iptv-tool 默认端口是 8023。容器创建成功后,在浏览器中打开管理界面,就可以开始配置了。

配置​_1.png
配置​_2.png

4、配置直播源

接下来开始配置节目源。类型包括:IPTV(STB 模拟)、网络订阅 URL 和 手动输入 三种模式,需要使用标准的 M3U 或者 TXT 格式。

之前我们已经通过流量镜像抓包,分析出天津移动 IPTV 的组播业务,主要有两个网段:

  • 225.2.1.0/24
  • 239.0.2.0/24


端口都是 5000,大概有 500 多个 IP 地址。我们让豆包或者 DeepSeek 根据这 500 多个组播地址,生成一套完整的 M3U 频道列表。大致代码如下:

  1. #EXTM3U

  2. # ==============================
  3. # 225.2.1.0/24 组播段
  4. # ==============================
  5. #EXTINF:-1 tvg-id="225.2.1.1" tvg-name="测试1" group-title="225.2.1段",测试1
  6. http://192.168.88.253:5140/rtp/225.2.1.1:5000
  7. #EXTINF:-1 tvg-id="225.2.1.2" tvg-name="测试2" group-title="225.2.1段",测试2
  8. http://192.168.88.253:5140/rtp/225.2.1.2:5000
  9. #EXTINF:-1 tvg-id="225.2.1.3" tvg-name="测试3" group-title="225.2.1段",测试3
  10. http://192.168.88.253:5140/rtp/225.2.1.3:5000
  11. #EXTINF:-1 tvg-id="225.2.1.4" tvg-name="测试4" group-title="225.2.1段",测试4
  12. http://192.168.88.253:5140/rtp/225.2.1.4:5000
  13. #EXTINF:-1 tvg-id="225.2.1.5" tvg-name="测试5" group-title="225.2.1段",测试5
  14. http://192.168.88.253:5140/rtp/225.2.1.5:5000
  15. #EXTINF:-1 tvg-id="225.2.1.6" tvg-name="测试6" group-title="225.2.1段",测试6
  16. http://192.168.88.253:5140/rtp/225.2.1.6:5000
  17. #EXTINF:-1 tvg-id="225.2.1.7" tvg-name="测试7" group-title="225.2.1段",测试7
  18. http://192.168.88.253:5140/rtp/225.2.1.7:5000
  19. #EXTINF:-1 tvg-id="225.2.1.8" tvg-name="测试8" group-title="225.2.1段",测试8
  20. http://192.168.88.253:5140/rtp/225.2.1.8:5000
复制代码


配置​节目源_1.png

PS1:实际中,这 500 多个地址不可能都有 IPTV 信源。我们先把全量数据做成 M3U 格式,导入到直播源中,然后对直播源进行批量检测,就可以筛选出哪些组播 IP 地址有节目,哪些是空的。

PS2:这里建议在 系统设置 → 直播监测 中,把检测超时设置成 10 秒。因为直播信号需要等到一个 I 帧,有时系统默认的 5 秒不够,会导致本来有节目却因超时无法被收录。

配置​节目源_2.png

接下来,开始对新增的 500 多个直播源进行批量检测。

批量​检测直播源_1.png

经过一段时间的扫描,凡是能匹配到视频编码和视频分辨率的,说明这个 IP 地址下面有 IPTV 信源。

批量​检测直播源_2.png

5、发布直播源

点击 聚合发布 → 新增发布接口,进行直播源信息的发布。

聚合发布_1.png
聚合发布_2.png

提交后,系统会根据之前检测的直播源,生成标准的 M3U URL 地址。

聚合发布_3.png
聚合发布_4.png

这里生成的地址是:

  1. http://192.168.88.249:8023/sub/live/test
复制代码


我们把这个地址配置到 rtp2httpd 里面,就可以实现在线用浏览器观看 IPTV 电视节目了。

配置rtp2httpd.png

保存后,打开 rtp2httpd 默认的播放地址:

  1. http://服务所在的IP地址:5140/player
复制代码


如果打不开,或者提示没有找到 m3u 文件,需要重启一下 rtp2httpd 程序,一般就可以了。

IPTV测试​_1.png

从测试结果看,电视信号分成了 2 组,这些基本都是有信源的 IP 地址。我们可以通过播放列表进行不同节目之间的替换,然后记录下每组 IP 地址分别对应的名称,再直接抛给 DeepSeek 或者豆包,按类型属性重新生成一份带有电台频道信息的 M3U 分组文件,覆盖掉之前节目源测试时输入的 M3U,这样 rtp2httpd 就可以显示出频道信息了。

IPTV Tool 还有很多别的功能,比如台标匹配、聚合规则等,可以慢慢研究,让它更加适配自己的网络环境。




相关文章




本文由实际折腾经验整理,供同样使用运营商 IPTV 的朋友参考。

© 2001-2026 Discuz! Team. Powered by Discuz! X5.0

GMT+8, 2026-10-3 03:06 , Processed in 0.040833 second(s), 6 queries , Redis OnArchiver|手机版|小黑屋|『遗失的梦』 ( 津ICP备12003239号-1|违法与不良信息举报:admin@hackfans.net ) 劰载中...

快速回复 返回顶部 返回列表