📌 项目地址:iptv-org/iptv | ⭐ 129,545 颗星 | 🔧 TypeScript | 📜 未标注
这个仓库里没有视频
iptv-org/iptv 有 129,545 颗星,是 GitHub 上星数最高的 TypeScript 项目之一。但打开仓库看,里面主体是一堆 m3u 播放列表——全球公开 IPTV 频道的流地址合集。README 里写得很清楚:仓库不存储任何视频文件,只存用户提交的流 URL。
它的更新机制挂在 GitHub Actions 的 update.yml 上,构建产物发布到 GitHub Pages。主列表地址:
https://iptv-org.github.io/iptv/index.m3u
用法只有一步:把这个链接粘进任何支持直播流的播放器,按打开。播放器清单在 iptv-org/awesome-iptv 仓库。
主列表包含全部频道,体积不小。想按国家、语言、分类拆分,去仓库根目录的 PLAYLISTS.md,里面列出了所有子列表链接。
它是一个组织里的发布端
iptv-org 下面有多个仓库,各管一段:
- iptv-org/database — 频道元数据的来源。名称、国家、语言都维护在这里。发现频道信息有错,issue 要提到 database 仓库,不是主仓库
- iptv-org/iptv — 把 database 的数据生成 m3u 列表,也就是星数最高的这个
- iptv-org/epg — 电子节目指南的抓取工具,覆盖大部分频道
- iptv-org/api — 频道数据的查询接口,文档也在对应仓库
数据单向流动:database 存数据,iptv 出列表,api 提供程序化访问。改一条频道信息不会碰发布管道。想自己生成定制列表,可以直接从 database 拉数据,绕过官方的构建流程。
这个拆分是它能撑到 12 万星的原因之一。贡献者只需要维护自己熟悉的频道条目,不用理解整个系统。
EPG 和直播流是两回事
很多教程把两者混在一起讲,README 里其实是分开的。直播流解决“看什么频道”,EPG 解决“什么时间播什么”。播放器只看频道的话,可以完全不管 EPG。
要做定时录制或节目预告,就去 iptv-org/epg 仓库下载工具,自己抓节目单。EPG 数据量大、更新频繁,打包进 m3u 会让列表臃肿,所以两个项目分开维护。我觉得这个取舍是对的。
法律声明是 README 里最值得读的一段
多数项目的 Legal 一节是走过场,这个不是。几个要点:
仓库只存链接,项目方的判断依据是这些地址由版权方主动公开。版权方认为链接侵权,可以走专门的版权投诉 issue 入口申请移除。
项目方同时说清了两件事:他们对链接指向的内容没有控制权,删掉列表里的链接,源站内容还在,要删内容得联系实际托管方。以及,提供链接不构成直接侵权,因为提供方没有复制内容,所以向 GitHub 发 DMCA 通知不成立。
这套表述是仓库存活多年的基础。但局限也明摆着:链接没有逐条经过版权验证,“公开可访问”不等于“有授权”。自己看看问题不大,拿去搭对外服务,风险自己掂量。
我的判断
这个项目的价值在数据组织,不在内容本身。全球频道元数据、EPG 工具、查询 API,从零维护成本很高,社区协作摊薄了它。
流链接的质量没有保证。频道失效是常态,GitHub Actions 的自动更新只能延缓列表腐烂,不能阻止。把它当主力电视源会失望。
我的定位:IPTV 生态研究的样本、播放器开发的测试数据源、主力服务之外的备选。
入口速查
- 主播放列表:
https://iptv-org.github.io/iptv/index.m3u - 拆分列表:仓库内 PLAYLISTS.md
- 频道数据修正:iptv-org/database 的 issues
- 提问交流:iptv-org 的 Discussions
- 常见问题:仓库内 FAQ.md
- 提 PR 前必读:CONTRIBUTING.md