自动聚合全网 IPTV 直播源,每日更新,支持 M3U / TXT 格式,可直接用于 TVBox、风萤影视、Kodi 等播放器。
⚠️ 声明:本工具仅提供技术框架,用户须自配合法数据源。所有内容仅供个人测试研究,不得用于任何商业用途。
- 自动聚合:从多个数据源抓取频道,按频道名精确匹配和模糊匹配汇总
- IPv4 / IPv6 双栈:优先使用 IPv6/IPv4 地址(可配置)
- 双引擎质量检测:HTTP 快筛 + FFprobe 中度探测,双重过滤失效和低质量源
- 第一层:aiohttp 并发拉取 playlist,验证可达性
- 第二层:ffprobe 探流,提取分辨率、码率、编解码器信息
- 智能排序:FFprobe 通过的源排前面,同层内按码率、分辨率降序排列
- 信息标注:输出 URL 末尾自动附加分辨率和码率,如
【1920x1080@256kbps】 - 黑名单建议:每次运行后打印频繁失败的域名,方便手动加入黑名单
- EPG 电子节目单:M3U 头部内置多组 EPG 地址,支持 TiviMate、Kodi 等播放器
- 公告支持:可在直播源头部插入公告条目,支持自动日期占位符
- 每日自动更新:GitHub Actions 定时任务,每天北京时间 06:00 自动推送
-
Fork 本仓库
-
点击页面右上角的 Fork 按钮,将项目复制到你的 GitHub 账号下。
-
编辑你 fork 后的仓库中的 config.py 文件,找到 source_urls 变量,替换为你自己拥有的合法直播源地址(例如自建源、已获授权的公开源)。
-
启用 GitHub Actions
-
进入你 fork 的仓库,点击 Actions 标签页,如果提示需要启用 Workflow,点击 I understand my workflows, go ahead and enable them。之后 Actions 会根据 .github/workflows 中的配置自动运行(通常为每日定时执行)。你也可以手动触发一次,验证能否正常生成 live.m3u。 获取结果 Actions 运行成功后,生成的 live.m3u 和 live.txt 会出现在仓库的根目录(或指定输出目录),可直接通过 Raw 链接导入播放器。
# 1. 克隆项目到本地
git clone https://github.com/yuanzl77/IPTV.git
cd IPTV
# 2. 安装依赖
pip install -r requirements.txt
# 3. 配置数据源(必须操作)
# 编辑 config.py,找到 source_urls 变量,替换为你自己拥有的合法直播源地址
# (例如自建源、已获授权的公开源)
# 4. 运行脚本
python main.py
# 生成的 live.m3u 和 live.txt 位于项目根目录,可直接导入播放器使用。
# 5. (可选)设置定时任务
# 如需每日自动更新,可使用 cron(Linux/macOS)或任务计划程序(Windows)定期执行 python main.py
⚠️ 重要提示:您 fork 后的仓库是您个人的独立副本,作者无法控制其内容。请确保您使用的所有直播源均已获得合法授权,任何因使用本脚本导致的版权或合规问题,均由使用者自行承担。
输出文件:
live.m3u— M3U 格式(含 EPG,带台标)live.txt— TXT 格式(TVBox / 风萤直接使用)function.log— 运行日志,含黑名单建议
本地播放建议搭配iptv-checker 实现个人环境高质量播放体验
所有配置在 config.py 中修改:
# IP 优先级:ipv6 或 ipv4
ip_version_priority = "ipv6"
# 数据源列表(支持 m3u / txt 格式)
source_urls = [ ... ]
# URL 黑名单(包含任意子串的地址会被过滤)
url_blacklist = [ ... ]
# 公告条目(写在直播源头部)
announcements = [ ... ]
# EPG 地址列表
epg_urls = [ ... ]
# 质量检测
enable_quality_check = True # True=启用质量检测(测活后过滤失效源),False=直接输出不过滤
check_timeout = 3.5 # 单个 URL HTTP 请求超时时间(秒),超时视为失效
check_max_conn = 50 # 最大并发检测数,调高可加速但更占带宽- 更低延迟:减少视频缓冲和加载时间
- 更好的组播支持:更高效地传输视频内容
- 更稳定:避免 IPv4/IPv6 地址转换带来的连接中断
查看当前网络是否支持 IPv6:test-ipv6.com

