这篇讲的是 ym-tvbox:一个给 TVBox / 影视仓用的接口配置仓库,核心是一个每天自动更新的 JSON 文件。它自己对接 6 个上游源、每天凌晨自动探活合并,只留能用的站点。这篇把「里面有什么、它怎么做到天天更新、怎么用、怎么 Fork 一份变成你自己的、出问题在哪查在哪修」一次讲清,新手照着点也能弄出一个属于自己的接口。
一、为什么做它
用过 TVBox / 影视仓的人都熟这个循环:网上找来一个接口地址,兴冲冲填进去,第一天全是宝藏,第三天一半站点打不开,一周后整个接口直接失联。然后再去找下一个,周而复始。
毛病出在哪?这类接口大多是某个人某一天手工整理的一份静态文件:
- 失效没人管:里面的站点源站一关停、接口一改版,这份文件就烂掉一块,作者想起来才更新,想不起来就一直烂着。
- 质量没人筛:很多接口是「有多少收多少」,失效的、重复的、早跑路的全混在一起,数量看着唬人,能用的没几个。
- 来路不明的还可能夹私货:别人整理的配置里塞了什么,你根本不知道。
所以 ym-tvbox 换了个思路:不手工维护名单,让机器每天重新筛一遍。它对接 6 个相对靠谱的上游源,每天自动把上游的最新配置全抓回来,逐个探活,只把当天实测能用的合并成一份新文件。源站死了,第二天它就自动从名单里消失;上游新增了站点,第二天它就自动进来。我自己要做的只有一件事:把地址填进影视仓,然后再也不用管它。
二、它里面有什么
主文件就一个:peter_tvbox_pro.json(自动生成,别手动改,改了也会被下一次自动更新覆盖)。当前收录:共 220 个站点、40 条解析线路、8 个直播源。220 个站点由两部分组成:
采集站(15 个,实测可用优先)
走标准采集接口的资源站,相对稳定:暴风资源、量子资源、索尼资源、闪电资源、最大资源、光速资源、红牛资源、豪华资源、极速资源、非凡资源、魔都动漫、ikun 资源、U酷资源、淘片资源、豪华资源(专线)。这类站点的特点是片库大、更新快,是日常找片的主力。
爬虫站点(205 个)
靠爬虫规则抓取的站点,覆盖面广:影视、4K(玩偶、木偶、双星、虎斑等一整批 4K 向站点)、动漫、短剧、体育直播、音乐、少儿、有声书、网盘搜索(盘搜、米搜等),还有哔哩哔哩合集、央视大全这类官方源聚合。数量多、花样全,代价是单个站点的稳定性不如采集站——所以才更需要每天探活筛一遍。
解析线路(40 条)
就是播放时帮你把源站地址解析成可播地址的线路:Json 聚合、Web 聚合、qiyi[官源]、肥猫最可爱、parwix 稳定线、8090、油果、EXO、天下嗅探、夜幕嗅探等。某条线路播不了,换一条就是,这也是为什么要备这么多条。
直播源(8 个)
直播·IPv6、直播·IPv4、Gather「果」、superiptv、Kimentanm、综合直播、直播、欧歌。
对接的 6 个上游源
本站自己不生产站点,它是个「聚合 + 质检」层,上游是这 6 家:
| 上游源 | 说明 |
|---|---|
| TVboxorg 官方聚合 | TVBox 官方组织维护的聚合配置 |
| 肥猫 | 经 Lightconer 解密镜像接入 |
| 王二小放牛娃 | 经典多仓配置 |
| 摸鱼儿 | 4K 向配置 |
| Lightconer 4K 配置 | 4K 画质站点集合 |
| 欧歌多仓 | 多仓订阅配置 |
仓库里另外两个文件:merge.py 是抓取、探活与合并的脚本;.github/workflows/update.yml 是每天定时跑的更新任务。整个仓库就靠这三样东西转。
三、更新机制:它凭什么能「天天更新」
更新完全跑在 GitHub Actions 上,不需要任何服务器:
- 时间:每天北京时间 05:30 自动执行一次;也可以去仓库 Actions 页手动触发,不用等。
- 流程四步:抓取全部 6 个上游源 → 对采集接口做两轮探活(响应慢的接口单独再复检一轮,免得因为一时网络抖动错杀)→ 智能去重合并 → 只有内容真的变了才提交回仓库,没变化就不产生无意义的提交。
- 安全熔断(最重要的一条):如果某天探活结果太差——可用上游少于 3 个,或合并出的站点少于 120 个——这次更新自动放弃,保留上一份可用配置。也就是说它宁可今天不更新,也绝不会拿一份残废配置把好的覆盖掉,不会越更新越坏。
- 心跳保活:GitHub 有个规则,仓库长期没活动,定时任务会被停用。工作流里带了保活逻辑,长时间没有新提交时自动留一笔保活提交,让每日任务一直活着,不用隔段时间人工去戳一下。

应用侧不用任何操作:影视仓每次启动重新读取配置地址时,拿到的自然就是最新版。你早上打开电视,用的已经是今晨 05:30 刚筛完的名单了。
四、怎么用 / 怎么部署成自己的
只是想用(30 秒)
- 复制第八节里的配置地址(优先 raw 直达地址;在国内拉取慢就用加速地址,两份内容完全一致)。
- 打开影视仓 / TVBox → 设置 → 配置地址,粘贴进去,确定。
- 回到首页等它加载完就能用了。以后应用每次重新读取配置,拿到的都是最新版,不用再换地址。
想自建一份(Fork 成自己的)
自建的好处:地址是你自己的仓库地址,更新节奏和熔断都在你自己手里,不依赖任何人。步骤就四步:
第 1 步:Fork 仓库
打开仓库页,点右上角 Fork → 选自己的账号 → Create fork,得到一份你名下的完整副本(代码、脚本、工作流都在里面)。

第 2 步:去 Actions 页启用工作流(最关键的一步,别漏)
打开你自己那份仓库 → 点顶部的 Actions 页签 → 页面会提示工作流处于关闭状态,点绿色的启用按钮(「I understand my workflows, go ahead and enable them」一类字样)确认启用。这一步不做,后面什么都不会发生——原因第五节细说。
第 3 步:手动跑一次验通
在 Actions 页左侧点 update 工作流 → 右侧 Run workflow → 确认。等几分钟,变绿勾就是全链路通了(抓取、探活、合并、提交都在你仓库里真实跑了一遍)。从第二天起,每天 05:30 它会自己跑,不用你再点。
第 4 步:把你自己的地址填进 App
你自己仓库的配置地址格式和原站一样,只是把用户名换成你的:
https://raw.githubusercontent.com/你的用户名/ym-tvbox/main/peter_tvbox_pro.json国内拉取慢可用镜像地址(把用户名同样换成你的):
https://cdn.jsdelivr.net/gh/你的用户名/ym-tvbox@main/peter_tvbox_pro.json填进影视仓的配置地址,完工。从此这份接口只为你更新。
五、和原站的区别:为什么说它对 Fork 最友好
其他几个自建项目 Fork 之后,多多少少要自己配密钥、建存储、绑域名才能跑全功能。这个不用——它是全系列里对 Fork 最友好的一个,逐条说清:
① 更新工作流不需要任何密钥,所以 Fork 后能直接获得同款自动更新。
原站的每日更新靠的就是仓库里这一个工作流,没有任何隐藏配置:上游全是公开源,抓取不用登录;探活、合并是纯计算;提交用的是 GitHub 给每个仓库自带的临时权限。所以你 Fork 之后,只要按第 2 步把 Actions 启用,它就和原站一模一样地每天自动更新——不需要你申请任何令牌、不需要配任何 Secret、不需要服务器。这也是它和那些「Fork 得一个裸壳、功能要自己补齐」的项目最本质的区别。
② Fork 完不会自动更新,原因只有一个:GitHub 默认关着 Fork 的 Actions。
这是 GitHub 平台的安全规则(防止有人拿 Fork 乱跑定时任务),对所有仓库一视同仁,不是代码不一样、更不是原站藏了什么。表现就是:Fork 完放着不管,它永远不会自己更新,文件日期停在 Fork 那天。解法也只有一下:去 Actions 页点启用(第四节第 2 步)。启用之后,这个区别就不存在了。
③ 产物地址不同,内容可能有细微差异。
原站地址是原作者仓库的 raw 地址;你 Fork 后要用你自己仓库的 raw / 镜像地址,老地址指向的还是原站那份。内容方面:两边合并的是同一批 6 个上游,所以构成基本一致;但探活是在各自运行的那一刻做的,哪家上游当时抖一下、哪个站点当时慢一下,结果就会差几个站点——数量差几个、个别站点你有我没有,都属正常,不是你的配错了。
④ 60 天停用规则:有保活,但前提是工作流开着。
GitHub 会停用长期无活动仓库的定时任务。本仓库的工作流自带心跳保活,原站和正常启用的 Fork 都不用操心。但如果你把工作流关掉、或者 Fork 后一直没启用,那保活也无从谈起,超过 60 天没动静,定时任务可能被停——重新去 Actions 页启用即可恢复,没别的损失。
⑤ 原站升级逻辑,不会自动流进你的 Fork。
分清两种「更新」:内容更新(站点名单每天变)是你自己的工作流跑出来的,天然独立,不需要同步;逻辑更新(比如原站以后改进了合并脚本、加了新上游)属于代码变更,GitHub 不会自动推给 Fork,需要你在自己仓库页点 Sync fork 手动同步一次。同步完,下一次定时运行就用上新逻辑了。长期不追原站升级也没关系,你那份照样每天更新,只是停留在老逻辑。
一句话总结:Fork 它 = 复制一份完整的自动更新机器,你要做的只有「点一下启用」和「把地址换成自己的」,剩下的它自己转。
六、出问题怎么办
先记住排查顺序,从前往后看,别乱改文件(主 JSON 是自动生成的,手动改必被覆盖,改了也白改):
- 仓库 Actions 页 → 左侧 update 工作流 → 看最近一次运行是不是绿勾、什么时间跑的。红叉就点进去看日志。
- 仓库主页 → 看
peter_tvbox_pro.json文件旁边的最后提交时间,是不是今天凌晨 05:30 前后。是今天 = 更新链路正常,问题在应用侧;还停在很久以前 = 更新链路断了,回 Actions 页看。 - 对照 README 的常见问题一节,大部分情况里面有现成答案。
常见故障对照表:
| 现象 | 多半是什么 | 怎么办 |
|---|---|---|
| 接口在 App 里加载不出来 / 一直转圈 | 配置地址填错(多了空格、用了网页地址),或 raw 在当前网络拉不动 | 逐字核对地址;换第八节的加速地址或 jsdelivr 镜像地址再试 |
| 今天打开,站点比昨天少了一些 | 探活把失效站点剔了,或上游当天波动 | 正常现象,能用的还在;等明天自动更新即可 |
| 连着几天内容完全没变 | 触发了安全熔断(上游大面积失效,熔断保留了上一份好配置),或工作流被停用 | 先看 Actions 最近运行是否成功;成功但没提交 = 多半是熔断保护,故意的;没运行记录 = 去 Actions 页确认工作流没被停用 |
| 工作流运行红叉 | 某个上游源不可达、临时网络问题最常见 | 点进失败记录看日志确认;不用急,次日 05:30 会自动重试;想立刻恢复就手动 Run workflow 再跑一次 |
| 仓库更新了,App 里还是旧内容 | App 侧缓存 | 在影视仓里重新读取一次配置地址,或重启 App |
| 某个站点播不了 / 解析失败 | 单站失效或单条线路失效 | 先换解析线路试;还不行就换同类型的其他站点,这个站点等次日探活自然会处理 |
| 网盘类站点提示要登录 | 那是空白占位,本来就要登录 | 在 App 里登录你自己的网盘账号即可,与本仓库无关 |
七、隐私与免责
- 仓库里没有任何人的账号凭证:只有公开聚合的接口配置与合并脚本,不含任何个人账号、密码或 Cookie。
- 配置里「我的 XX 网盘」这类条目是空白占位:谁使用,谁在应用里登录谁自己的网盘账号,与仓库作者无关。
- 自动更新脚本只抓取公开的上游配置并探活,不收集任何使用者数据。
- 免责声明:本仓库仅用于个人学习与技术研究,内容聚合自公开网络接口,本站只做聚合整理、不存储任何影视资源,版权归原站点及权利方所有;如有侵权,请联系删除。
八、地址汇总
- 仓库:github.com/YiMing918/ym-tvbox
- 配置地址(raw 直达,优先用这个):
https://raw.githubusercontent.com/YiMing918/ym-tvbox/main/peter_tvbox_pro.json
- 配置地址(国内加速,两份内容完全一致):
https://gh-proxy.com/https://raw.githubusercontent.com/YiMing918/ym-tvbox/main/peter_tvbox_pro.json
- 自建者把上面地址里的用户名
YiMing918换成你自己的 GitHub 用户名,就是你那份的地址(启用 Actions 的步骤见第四节)。
最后提醒一句:这个项目的全部价值就在「不用管」三个字上。用原站地址也好、Fork 一份自己的也好,填完地址就可以忘了它——它每天凌晨自己上班。
还没有评论,来抢沙发。