自托管IPTV直播与体育赛事服务器rebeliptv

简介

什么是 rebeliptv ?

rebeliptv 是一个自托管的 IPTV 直播服务器,它能将电视直播频道和体育赛事聚合到一个统一的 M3U 播放列表中,同时提供完整的 EPG 电子节目指南。所有流媒体都经过代理转发,上游源地址不会暴露给客户端。

主要特点

  • 380+ 电视频道:包含体育、新闻、本地、儿童、电影、娱乐、生活、纪录片等分类,频道号固定不变
  • 实时体育赛事:支持 NHLNFLNBAMLBMLS 五大联赛,集成 ESPN 实时比分和赛程
  • 自定义 M3U 源:支持上传或 URL 导入自定义播放列表,合并到已有频道中
  • 多源流故障切换:频道和赛事自动尝试备用提供商,直播中途断流也自动切换
  • 完整 EPG 数据24 小时 XMLTV 节目指南,包含节目描述、剧集信息、分级和海报
  • 流健康监控:自动检测离线频道并自动恢复,每 5 分钟检查一次
  • Web 管理面板:频道管理、节目指南、赛事详情、设置界面一应俱全
  • 内置视频播放器:支持节目进度条、正在播放、下一节目预览和赛事比分板
  • Docker 网络友好:一键切换播放列表 URL 地址,方便 Jellyfin/Plex 同网段容器使用
  • API Key 保护:播放列表和 EPG 端点可选 API 密钥访问控制
  • 多架构支持:提供 amd64arm64 架构的 Docker 镜像
  • 专有许可:个人非商业用途免费使用

应用场景

  • 家庭电视直播:在家庭网络中搭建 IPTV 服务器,所有设备通过 Jellyfin/Plex 统一观看电视直播
  • 体育赛事追踪:自动获取 NFLNBANHLMLBMLS 等联赛的直播流和实时比分
  • 频道聚合管理:将自有 M3U 源与内置频道合并,统一管理和分配频道号
  • 媒体服务器集成:为 JellyfinPlexEmby 提供稳定的 M3U 播放列表和 XMLTV EPG 数据

rebeliptv 是一个功能完善的自托管 IPTV 解决方案,无需依赖第三方服务即可在家庭网络中搭建完整的直播电视和体育赛事观看平台。项目专为 JellyfinPlexEmby 等媒体服务器和 IPTV 客户端设计,提供开箱即用的 Web 管理面板、频道分类、节目指南、实时比分和流健康监控。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 rebeliptv,选择 rebeliptv/iptv,版本选择 latest

本文写作时,latest 版本对应为 1.1.6

docker 文件夹中,创建一个新文件夹 iptv,用于存放持久化数据

文件夹 装载路径 说明
docker/rebeliptv/data /app/data 存放频道缓存、EPG 数据、配置等

端口

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

1
2
# 查看端口占用
netstat -tunlp | grep 8080
本地端口 容器端口
8714 8080

环境

可变
TZ Asia/Shanghai

  • 环境变量说明TZ 用于设置时区,建议设置为 Asia/Shanghai。其他可选变量包括 PORT(服务端口,默认 8080)、CRON_SCHEDULE(数据刷新周期,默认每小时)、SPORTS_EVENTS(是否启用体育赛事,默认 true)、SPORTS_MODE(纯体育模式)、LEAGUES(指定联赛,如 NHL,NBA,留空表示全部)。
  • 参考官方文档:https://github.com/rebeliptv/iptv#configuration

命令行安装

docker cli 安装

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 新建文件夹 rebeliptv 和 子目录
mkdir -p /volume1/docker/rebeliptv/data

# 进入 rebeliptv 目录
cd /volume1/docker/rebeliptv

# 运行容器
docker run -d \
--restart unless-stopped \
--name rebeliptv \
-p 8714:8080 \
-v $(pwd)/data:/app/data \
-e TZ=Asia/Shanghai \
rebeliptv/iptv:latest

docker-compose 安装

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

1
2
3
4
5
6
7
8
9
10
11
services:
iptv:
image: rebeliptv/iptv:latest
container_name: rebeliptv
restart: unless-stopped
ports:
- "8714:8080"
volumes:
- ./data:/app/data
environment:
TZ: Asia/Shanghai

执行以下命令启动:

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 rebeliptv 和 子目录
mkdir -p /volume1/docker/rebeliptv/data

# 进入 rebeliptv 目录
cd /volume1/docker/rebeliptv

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

# 一键启动
docker-compose up -d

运行

在浏览器中访问 http://<群晖IP>:8714 即可进入 Web 管理面板

等扫描结束,看起来大部分离线了,可能跟网络有关

首页 Dashboard 会显示频道/事件数量、在线/离线统计和当前体育赛事。通过左侧导航可以访问:

  1. Channels — 浏览和搜索频道列表,点击频道查看详情和节目指南
  2. Guide — 横向时间线节目表,显示当前和即将播出的节目
  3. Sports — 实时和即将开始的体育赛事,带 ESPN 实时比分
  4. SettingsAPI Key 管理、主题切换、自定义 M3U 源管理

切到 Channels

带播放按钮的可以直接点击播放

或者查看详情

也可以直接筛选一下在线的

切到 Guide,可以看节目信息,也就是我们常说的 EPG

切到 Sports 可以看体育比赛直播,不过今天没有

如果你不希望什么人都能访问的话

可以加个 API Key

  • Playlist 地址: http://<群晖IP>:8714/playlist?key=YOUR_KEY
  • EPG 地址:http://<群晖IP>:8714/epg?key=YOUR_KEY

注意事项

  1. API Key 保护:建议在 Settings 中生成 API Key,否则播放列表和 EPG 端点对内网完全开放
  2. 时区设置:务必正确设置 TZ 环境变量,否则 EPG 节目时间会显示错误
  3. 频道号固定:内置频道号分配在 1-4999 范围,自定义源从 10000+ 开始,缓存清除不会打乱频道号
  4. 反向代理:项目自动识别 X-Forwarded-ProtoX-Forwarded-Host 头,使用 NginxTraefik 反代时无需额外配置
  5. 许可说明:本项目为专有许可,仅限个人非商业用途使用

参考文档

rebeliptv/iptv: Automatic M3U playlist and XML guide updater for IPTV clients.
地址:https://github.com/rebeliptv/iptv

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