自动更新的IPTV源iptv-sources

什么是 iptv-sources ?

iptv-sources 是一个开源项目,旨在提供自动更新的 IPTV 源列表。为对 IPTV 服务感兴趣的用户,提供了一个集中管理和更新 IPTV 源的解决方案。

主要特点

  1. 自动更新:该项目会定期更新 IPTV 源,确保用户获取最新的频道信息。
  2. 多来源支持:它整合了多个来源的 IPTV 数据,包括: iptv.org 及其他多个频道源。
  3. EPG 数据:项目还提供电子节目指南(EPG)源,以便用户获取节目安排和信息。
  4. 部署方式:用户可以通过 GitHub PagesDockerNode.js 部署该项目,便于灵活使用。
  5. 开源协议:该项目基于 GPL-3.0 协议开源,允许用户自由使用和修改。
  6. 社区支持:用户可以通过 Discord 加入社区,获取支持和交流。

本文提供了两种方式,一种是抓取之后直接使用,另一种是抓取之后,能使用 iptv-checker 检查可用性

如果要使用第二种方式,需要你已经安装了 iptv-checker

文章传送门:IPTV播放列表可用性检查工具iptv-checker

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 iptv-sources ,选择第一个 herberthe0229/iptv-sources,版本选择 latest

docker 文件夹中,创建一个新文件夹 iptv-sources,并在其中建一个子文件夹 data

文件夹 装载路径 说明
docker/iptv-sources/data /opt/app/backend/data 存放数据库和上传文件等

端口

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

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

环境

可变
ENABLE_IPTV_CHECKER 是否需要有效性检测
IPTV_CHECKER_URL iptv-checker 检查服务的地址
CUSTOM_GITHUB_RAW_SOURCE_PROXY_URL 添加自定义 github 源代理 url,用于解决发布在 githubIPTV 源的访问

如果你没有安装 iptv-checker 检查服务,前两项可以不设置

更多环境变量,请参考官方文档:https://github.com/HerbertHe/iptv-sources#supported-environment-variables

命令行安装

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 新建文件夹 iptv-sources 和 子目录
mkdir -p /volume1/docker/iptv-sources/data

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

# 运行容器(方式一:直接使用)
docker run -d \
--restart unless-stopped \
--name iptv-sources \
-p 3084:8080 \
-v $(pwd)/data:/app/m3u \
herberthe0229/iptv-sources:latest

# 运行容器(方式二:检测之后使用)
docker run -d \
--restart unless-stopped \
--name iptv-sources \
-p 3084:8080 \
-v $(pwd)/data:/app/m3u \
-e ENABLE_IPTV_CHECKER=true \
-e IPTV_CHECKER_URL=http://192.168.0.197:8084 \
-e CUSTOM_GITHUB_RAW_SOURCE_PROXY_URL=https://ghproxy.net \
herberthe0229/iptv-sources:latest

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: '3'

services:
iptv-sources:
image: herberthe0229/iptv-sources:latest
container_name: iptv-sources
restart: unless-stopped
ports:
- "3084:8080"
volumes:
- ./data:/app/m3u
environment:
ENABLE_IPTV_CHECKER: "true"
IPTV_CHECKER_URL: "http://192.168.0.197:8084"
CUSTOM_GITHUB_RAW_SOURCE_PROXY_URL: "https://ghproxy.net"

然后执行下面的命令

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

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

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

# 一键启动
docker-compose up -d

运行

第一次会执行 yarn install,不确定对网络是否有特殊要求,但只有当日志中看到 Serving at http://127.0.0.1:8080 才可以开始使用

在浏览器中输入 http://群晖IP:3084 就能看到主界面

订阅

将鼠标移到 url 上,会看到订阅地址

cn.m3u 为例,urlhttp://群晖IP:3084/cn.m3u

可以直接导入 Potplayer ,但是能打开的不多

大部分都是报错的

检查

一种方法是将订阅地址放入 iptv-checker 中的 Source Check 中检查,但是还有更简单的办法

还是以 cn.m3u 为例,其频道名称是 cn,所以我们在浏览器中打开 http://群晖IP:3084/check/cn

需要安装了 iptv-checker 服务,并且设置了相应的环境变量

但只能检查,如果想生成新的 m3u,还是在 iptv-checker 中更方便和灵活

源文件更新

所有的源文件,都可以在 data 目录中找到

如果想要更新,可以执行下面的命令

1
2
# 执行内部更新命令
docker exec -it iptv-sources /bin/sh ./update-sources.sh

更新时间有点长

页面上会显示最近更新的时间

如果觉得手动更新麻烦,可以用群晖自带的 任务计划

1
docker exec -d iptv-sources /bin/sh ./update-sources.sh

当然你也可以用官方提供的源,基本上都是 2 小时更新一次的

参考文档

HerbertHe/iptv-sources: Autoupdate iptv sources
地址:https://github.com/HerbertHe/iptv-sources

iptv-sources | Autoupdate iptv sources
地址:https://m3u.ibert.me/

herberthe0229/iptv-sources - Docker Image | Docker Hub
地址:https://hub.docker.com/r/herberthe0229/iptv-sources

How to deploy with docker · HerbertHe/iptv-sources · Discussion #36
地址:https://github.com/HerbertHe/iptv-sources/discussions/36