电视直播中转利器iptv-rust

简介

什么是 iptv-rust ?

iptv-rust 是一个基于 Rust 开发的 IPTV 直播中转工具。它可以理解成一个安静的直播中转员:播放器来找它要频道,它负责把直播入口整理好,再把可播放的直播流递给播放器。

主要特点

  • 轻量高效:基于 Rust 编写,资源占用极低,无需额外配置即可运行
  • 零配置启动:不需要环境变量、不需要挂载卷,一条命令即可启动
  • 多架构支持:提供 amd64armv7arm64 三种架构镜像,适配各种 NAS 和嵌入式设备
  • 频道列表导出:自动生成 M3U8 格式频道列表,可直接导入各种播放器
  • 健康检查:提供 /health 接口,方便监控服务运行状态
  • HTTPS 反代友好:支持 prefix 参数指定外部访问前缀,配合反向代理无障碍使用

应用场景

  • 家庭电视直播:在 NAS 上运行后,电视、手机、电脑上的播放器都能直接导入频道列表观看直播
  • IPTV 频道管理:统一整理分散的直播源,通过一个入口为所有播放器提供服务
  • 远程观看:配合 HTTPS 反向代理,在外网也能访问家中的直播频道
  • 开发者测试:快速搭建 IPTV 测试环境,验证直播流可用性

iptv-rust 是一个专注于直播流中转的轻量工具,特别适合 NAS 用户为家庭各类播放器提供统一的直播入口。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 iptvlive,选择 iptvlive/iptv-rust,版本选择 latest

本文写作时,latest 版本对应为多架构镜像(amd64/armv7/arm64);

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
28787 8787

端口说明:官方推荐主机端口为 28787,容器内部端口为 8787。该服务无需挂载卷和环境变量,是真正的零配置容器。

命令行安装

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
docker run -d \
--name iptv-rust \
--restart always \
-p 28787:8787 \
iptvlive/iptv-rust:latest

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
services:
iptv-rust:
image: iptvlive/iptv-rust:latest
container_name: iptv-rust
restart: always
ports:
- "28787:8787"

watchtower:
image: containrrr/watchtower:latest
container_name: watchtower
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: iptv-rust --cleanup --interval 3600

docker-compose 增加了一个 watchtower 容器,用于实现对 iptv-rust 这个容器监控并更新 。

watchtowercommand 命令含义如下:

  • iptv-rust:只更新名为 iptv-rust 的容器
  • --cleanup 更新成功后自动清理旧镜像
  • --interval 3600: 每 3600 秒检查一次更新

然后通过 SSH 登录到您的群晖,执行下面的命令:

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 iptv-rust
mkdir -p /volume1/docker/iptv-rust

# 进入 iptv-rust 目录
cd /volume1/docker/iptv-rust

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker compose up -d

运行

服务启动后,默认访问端口是 28787

常用接口

接口 用途
http://<群晖IP>:28787/health 健康检查,确认服务是否正常运行
http://<群晖IP>:28787/list.m3u 频道列表,推荐直接导入播放器使用
http://<群晖IP>:28787/live/cctv1.m3u8 单频道直播流,如 CCTV1
http://<群晖IP>:28787/live/cctv5.m3u8 单频道直播流,如 CCTV5
http://<群晖IP>:28787/live/cctv13.m3u8 单频道直播流,如 CCTV13

播放器导入

在电视、手机或电脑上的 IPTV 播放器(如 PotplayerTiviMateKodiVLC 等)中,将频道列表地址设置为:

1
http://<群晖IP>:28787/list.m3u

即可自动获取所有可用频道

IPTV Pro 中也没问题

直接在网页上打开,需要在开发工具中才能看到 m3u 的内容

播放还是很流畅的

HTTPS 反向代理

如果通过域名或 HTTPS 反代访问,可以使用 prefix 参数指定外部访问前缀:

1
https://tv.example.com/list?prefix=https://tv.example.com

单频道链接示例:

1
https://tv.example.com/live/cctv1.m3u8?prefix=https%3A%2F%2Ftv.example.com

常用管理命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 查看运行状态
docker ps | grep iptv-rust

# 查看日志
docker logs -f --tail 100 iptv-rust

# 停止服务
docker stop iptv-rust

# 删除服务
docker rm -f iptv-rust

# 重启服务
docker restart iptv-rust

# 更新到最新版本
docker pull iptvlive/iptv-rust:latest
docker rm -f iptv-rust
docker run -d --name iptv-rust --restart always -p 28787:8787 iptvlive/iptv-rust:latest

注意事项

  1. 无需额外配置iptv-rust 是零配置容器,不需要挂载卷或设置环境变量,启动即用
  2. 频道来源:本工具仅负责直播流中转,频道源已内置,无需自行添加
  3. 端口冲突:如果 28787 已被其他服务占用,可修改为其他可用端口,但容器内部端口 8787 不可更改
  4. 重启策略:官方建议使用 --restart always,确保服务在 NAS 重启后自动恢复
  5. 更新方式:更新时需要先删除旧容器再重新创建,因为容器内无持久化数据,不会丢失配置

有什么问题,可以去关注官方的 tg 频道 👇

参考文档

Telegram: IPTV直播源总部
地址:https://t.me/iptvorganization

全蓝光画质,历经数日,打造最稳定的电视直播源
地址:https://www.right.com.cn/forum/thread-8473105-1-1.html

iptvlive/iptv-rust - Docker Image
地址:https://hub.docker.com/r/iptvlive/iptv-rust