☰
LunaTV 换源 3 分钟,播放源自动跟着更新
2026/11/3 12:47:38 网站建设 项目流程

LunaTV 换源 3 分钟,播放源自动跟着更新

【免费下载链接】LunaTV本项目采用 CC BY-NC-SA 协议,禁止任何商业化行为,任何衍生项目必须保留本项目地址并以相同协议开源项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTV

你手里有一份别人分享的播放源订阅地址,想接到刚跑起来的 LunaTV 上,又不想手改 JSON。LunaTV 的配置订阅就是干这个的:地址贴进管理后台,拉取解码出整份配置,保存后播放源立刻换新;再打开自动更新,源一更新你的站跟着刷,不用人工碰文件。全程约 3 分钟,是 LunaTV 换源教程里最省事的一条路。

你拿到地址之后的第一件事:确认它是编码过的

订阅接口不认任意 JSON 链接。服务端把 URL 返回的内容拿来跑一遍 Base58 解码——还原成原始 JSON 文本。所以链接必须返回 Base58 编码过的字符串,不能是明文 JSON。

  • 用浏览器直接打开这个地址看一眼。
  • 看到Lk3qX…这类字母数字串,就能用。
  • 看到{ "api_site": … }明文,说明对方没编码,让他重发或换个地址。

踩坑提醒:明文 JSON 拉不动。服务端只对 Base58 文本解码,看到明文就是地址不对,换掉重试。

把地址贴进后台,拉取并保存

  1. 用站长账号登录(拉取和保存都只对站长开放,接口只放行环境变量USERNAME对应的那个账号),进管理后台,展开配置文件标签页。
  2. 在配置订阅卡片的订阅URL输入框里贴入地址。
  3. 点拉取配置。成功提示配置拉取成功,解码出的 JSON 自动回填到下方编辑框。
  4. 扫一眼编辑框,这是整份配置:播放源SourceConfig、自定义分类CustomCategories、直播源LiveConfig都在里面。
  5. 按需打开自动更新开关,点保存。

拉取走 配置订阅拉取接口;保存走 配置文件管理接口,它先JSON.parse校验再落盘,同时写入订阅 URL、自动更新开关和最后检查时间。成功提示配置文件保存成功,卡片右上角最后更新时间刷新,新源立刻能搜能播,不用重启。

保存那一刻,服务端做了什么

手动这一路是:fetch 订阅 URL → Base58 解码 → 回填编辑框 → 保存时JSON.parse校验 → 通过才写ConfigFile,并更新ConfigSubscribtion的 URL、AutoUpdate、LastCheck。前台读的是落盘后的配置,所以新源即时生效。字段含义可对照 配置文件数据结构。

开了自动更新之后,它会自己刷

定时任务由 定时任务实现 驱动,触发时只认两个条件:订阅 URL 已填、自动更新开关开着。都满足才跑"拉取 → 解码 → 校验 → 覆盖保存";缺一就跳过,只记一条跳过刷新:未配置订阅地址或自动更新。这等于让播放源自动更新。

拉取、解码、校验任一步失败,只写一条刷新配置失败日志,不动现有配置,前台继续用旧的。频率取决于部署平台,仓库vercel.json默认每天 01:00 一次(0 1 * * *),其他环境以实际版本为准。想更频繁,去对应平台改触发频率;不想等平台,直接请求/api/cron接口立刻跑一次。

现象 → 排查

现象排查动作
拉取配置失败多半返回的不是 Base58 文本,或 URL 访问不到;浏览器确认,换地址重试
权限不足,只有站长可以拉取配置订阅当前不是站长账号;只有USERNAME那个账号能操作,换站长登录
配置文件格式错误,请检查 JSON 语法保存前JSON.parse没过;编辑框 JSON 有语法问题,改完再保存
自动更新开着,最后更新不动定时任务没触发,或拉取/解码/校验某步失败被静默记日志;用手动拉取验证地址是否还有效

想自己发布一个订阅源给别人

把本地配置 JSON 做 Base58 编码,得到一个订阅地址,放到公网可访问处分享给对方,对方贴进订阅URL即可。装一下bs58包即可运行下面片段。

const bs58 = require('bs58'); const encoded = bs58.encode(Buffer.from(JSON.stringify(config)));

多个实例要同步,把同一 URL 填进每个实例的订阅卡片即可,各自独立保存,没有中心节点。USERNAME、NEXT_PUBLIC_STORAGE_TYPE的取值见 README。

之后要换源,把订阅URL改成新地址重新拉取一次就行,自动更新开关的状态会保留。

【免费下载链接】LunaTV本项目采用 CC BY-NC-SA 协议,禁止任何商业化行为,任何衍生项目必须保留本项目地址并以相同协议开源项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTV

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询