⚡️ IPTV直播源自动更新工具:自动采集、校验、测速并生成可播放结果
500K+
iptv-api/ # 项目根目录
├── config # 配置文件目录,包含配置文件、模板文件等
│ └── hls # 本地HLS推流文件目录,存放频道命名的视频文件
│ └── local # 本地源文件目录,存放本地源文件
│ └── config.ini # 配置参数文件
│ └── demo.txt # 频道模板
│ └── alias.txt # 频道别名
│ └── blacklist.txt # 接口黑名单
│ └── whitelist.txt # 接口白名单
│ └── subscribe.txt # 频道订阅源列表
│ └── local.txt # 本地源文件
│ └── epg.txt # EPG订阅源列表
└── output # 结果文件目录,包含生成的结果文件等
└── data # 结果数据缓存目录
└── epg # EPG结果目录
└── ipv4 # IPv4结果目录
└── ipv6 # IPv6结果目录
└── result.m3u/txt # m3u/txt结果
└── hls.m3u/txt # RTMP hls推流结果
└── log # 日志文件目录
└── log.log # 带时间、级别和运行 ID 的运行日志
└── runtime.jsonl # 结构化运行事件
└── result.log # 有效结果日志
└── speed_test.log # 测速日志
└── statistic.log # 统计结果日志
└── unmatch.log # 未匹配频道记录
└── *.jsonl # 对应日志的结构化 JSON Lines 版本
下载docker-compose.yml或复制内容创建(内部参数可按需更改),在文件所在路径下运行以下命令即可部署:
docker compose up -d
docker pull guovern/iptv-api:latest
🚀 代理加速(若拉取失败可以使用该命令,但有可能拉取的是旧版本):
docker pull docker.1ms.run/guovern/iptv-api:latest
docker run -d -p 80:8080 guovern/iptv-api
环境变量:
| 变量 | 描述 | 默认值 |
|---|---|---|
| PUBLIC_URL | 推荐:完整公网地址,例如 http://192.168.1.10 或 https://iptv.example.com | |
| PUBLIC_DOMAIN | 兼容配置:PUBLIC_URL 留空时使用的公网域名或 IP | 127.0.0.1 |
| PUBLIC_PORT | 兼容配置:PUBLIC_URL 留空时使用的宿主机映射端口 | 80 |
| NGINX_HTTP_PORT | 高级兼容配置:容器内部 HTTP 端口,通常保持默认 | 8080 |
当宿主机/Docker 已启用 IPv6 时,容器会自动同时监听 IPv6 地址,无需额外配置;纯 IPv4 或禁用 IPv6 的环境则自动跳过。
如果需要修改环境变量,在上述运行命令后添加以下参数:
# 推荐:直接设置完整公网地址
-e PUBLIC_URL=https://iptv.example.com
使用仓库中的 Compose 文件时,只需通过 PORT 修改宿主机端口,例如
PORT=8088 docker compose up -d;Compose 会同时更新端口映射和兼容的 PUBLIC_PORT。
未设置或留空的 PUBLIC_URL 不会覆盖挂载配置文件中的 public_url。
除了以上环境变量,还支持通过环境变量覆盖配置文件中的配置项
挂载: 实现宿主机文件与容器文件同步,修改模板、配置、获取更新结果文件可直接在宿主机文件夹下操作,在上述运行命令后添加以下参数
# 挂载配置目录
-v /iptv-api/config:/iptv-api/config
# 挂载结果目录
-v /iptv-api/output:/iptv-api/output
| 接口 | 描述 |
|---|---|
| / | 默认接口 |
| /m3u | m3u 格式接口 |
| /txt | txt 格式接口 |
| /ipv4 | ipv4 默认接口 |
| /ipv6 | ipv6 默认接口 |
| /ipv4/txt | ipv4 txt接口 |
| /ipv6/txt | ipv6 txt接口 |
| /ipv4/m3u | ipv4 m3u接口 |
| /ipv6/m3u | ipv6 m3u接口 |
| /content | 接口文本内容 |
| /log/result | 有效结果的日志 |
| /log/speed-test | 所有参与测速接口的日志 |
| /log/statistic | 统计结果的日志 |
| /log/unmatch | 未匹配频道的日志 |
日志接口默认返回兼容的纯文本格式;添加 ?format=jsonl 可获取结构化 JSON Lines。CLI 在交互式终端使用动态多任务进度,Docker、CI、重定向输出或设置 IPTV_API_PLAIN_OUTPUT=1 时自动使用稳定的逐行输出。
RTMP 推流:
Note
1. 如果是服务器部署,建议通过 `PUBLIC_URL` 配置完整公网地址;旧版 `PUBLIC_DOMAIN` 与 `PUBLIC_PORT` 仍兼容 2. 开启推流后,默认会将获取到的接口(如订阅源)进行推流;请仅对你有明确授权、可合法分发或仅用于内部测试的内容启用该功能 3. 如果需要对本地视频源进行推流,可在`config`目录下新建`hls`文件夹,将以`频道名称命名`的视频文件放入其中,程序会自动推流到对应的频道中 4. 在中国大陆使用时,请特别确认内容授权、版权、网络视听与广播电视等相关合规要求;不要将本项目用于传播、转发或公开分发未经授权的直播源/节目源
| 推流接口 | 描述 |
|---|---|
| /hls | 推流接口 |
| /hls/txt | 推流txt接口 |
| /hls/m3u | 推流m3u接口 |
| /hls/ipv4 | 推流ipv4 默认接口 |
| /hls/ipv6 | 推流ipv6 默认接口 |
| /hls/ipv4/txt | 推流ipv4 txt接口 |
| /hls/ipv4/m3u | 推流ipv4 m3u接口 |
| /hls/ipv6/txt | 推流ipv6 txt接口 |
| /hls/ipv6/m3u | 推流ipv6 m3u接口 |
| /stat | 推流状态统计接口 |
关注我的 GitHub 账号 Guovin,获取更多实用项目
微信公众号搜索 Govin,收更新推送、学习更多使用技巧
联系邮箱:[email protected]
Content type
Image
Digest
sha256:71bc7bfb4…
Size
96.7 MB
Last updated
5 days ago
docker pull guovern/iptv-api