Collect-IPTV
zilong7728/Collect-IPTV加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样的场景:周五晚上,你满心欢喜地打开电视盒子,准备看期待已久的球赛直播,结果屏幕弹出一行冰冷的提示——"频道已失效"。你开始满互联网翻帖子、找大佬求直播源,翻了半天加进去,十个里八个都是卡的。这种体验,想必不少 IPTV 爱好者都不陌生。
直播源的问题本质上是**"谁来维护"**:权威平台不会开放 API,靠谱的源站随时可能关停,论坛里的大神分享一次就不管了。而 Collect-IPTV 正是来解决这个痛点的——用自动化替代人工维护,让直播源始终保持"活着"的状态。
Collect-IPTV 的初始版本很有意思:它并非完全由手工编写,而是由 DeepSeek + ChatGPT 协作生成 的。这在当时的开源圈还属于新鲜玩法。项目作者利用 LLM 对中文媒体频道名称的强理解能力,快速构建了频道归一化、去重和测速的核心逻辑。
后续版本则持续迭代,引入 Gemini 和 GPT-5.3-Codex 进行优化。Codex 的介入尤其值得关注——它帮助项目在爬虫脚本的结构、可配置性、以及 GitHub Actions 自动化流程上做了系统化梳理,使得整个项目从"AI 生成草稿"进化为可持续维护的工程化产品。
项目架构清晰,核心是一个约 600 行的 Python 脚本 iptv.py,承担以下职责:
数据采集:通过 aiohttp 异步并发(最高 30 并发)对多个上游 IPTV 源地址进行 HTTP 请求抓取。项目包含一套繁体/简体自动归一化映射表(包含 30+ 个常见异体字替换),确保"CCTV-1"和"中央電視台"能被正确识别为同一频道。
可用性测速:每个源地址都会经过延迟测试,默认超时 10 秒。项目通过比对多个源的速度,选取"低延迟+高质量"的最佳 URL 写入最终的播放列表文件(best_sorted.m3u 和 best_sorted.m3u8 两种格式)。
去重与归类:脚本内建省份别名匹配系统(北京→北京台、上海→东方明珠/沪上),将频道按地区分类。同时通过正则表达式过滤含日期格式的无效条目(防止某些包含过期时间戳的直播流进入列表)。
自动化更新:通过 GitHub Actions Cron Job(0 */4 * * *,即每 4 小时执行一次)自动运行爬虫脚本,更新 best_sorted.m3u 文件,并同步修改 README.md 中的运行时间戳,最后自动 commit 到 main 分支。
Collect-IPTV 的使用门槛极低,完全不需要技术背景:
没有服务器、没有 Docker、没有命令行,整个过程不到一分钟。对于普通用户而言,这可能是最接近"开箱即用"的开源 IPTV 解决方案之一。
项目还维护了一个独立的 GitHub Pages 静态站点(通过 index.html + Tailwind CSS 构建),提供:
这个 Web UI 本身也通过 GitHub Actions 自动部署,每次 README 更新时同步刷新页面内容,属于"元自动化"的典型案例。
必须承认的是,这个项目的性质决定了它天然带有一些争议性。
从技术层面看,Collect-IPTV 的爬虫逻辑和自动化框架设计得相当规范——异步并发、异常处理、去重策略、跨平台播放器适配都有考虑到。它的"工程化程度"比大多数同类项目要高。
从法律与合规层面看,项目在 README 和 DISCLAIMER.md 中明确声明了免责声明:所有源地址均来自互联网公开资源,项目本身不存储、不篡改媒体内容,也不参与任何商业行为。这与同类的 IPTV 聚合项目(如 CCSH/IPTV)的立场一致。但"免责声明"并不等于"无法律风险"——在不同司法管辖区,版权和广播权的认定存在差异,用户需要自行判断使用场景的合规性。
从实用性层面看,项目通过 GitHub 服务器测速,但明确注明"不保证国内网络环境下的可用性"——这意味着实际体验高度依赖用户的网络环境,部分频道在国内可能仍然卡顿或无法播放。
Collect-IPTV 在 GitHub 上获得 2369 个 Star、354 个 Fork,收藏量在同类 IPTV 开源项目中属于头部梯队。它的出现反映了一个趋势:AI 生成代码正在降低开源项目的创建门槛,即使是非 CS 背景的爱好者,也能借助 LLM 将自己的需求转化为可维护的软件。
对于 IPTV 爱好者而言,Collect-IPTV 提供了一种"懒人友好"的解决方案:不需要理解爬虫原理,不需要搭建服务器,只要一个播放器就能用。但对于想要深度定制的开发者而言,项目代码本身(iptv.py)是一个很好的学习案例,展示了如何用 Python 构建一个生产级别的数据采集管道。
本报告基于项目 README、源码(iptv.py)、GitHub Actions workflow 及公开资料生成,数据截至 2026 年 9 月。