3.0 KiB
3.0 KiB
TVBox JSON Monitor
TVBox JSON Monitor 定时抓取一个 TVBox 兼容端点,从 JPEG-like 响应里提取附加的配置载荷,解码为严格 JSON,并在内容变化时自动提交更新。
Important
本仓库只保存从配置端点解码得到的 JSON 文件,不托管视频内容,不代理媒体流,也不提供播放服务。
输出文件
| 文件 | 说明 |
|---|---|
data/tvbox.json |
解码并格式化后的 TVBox 配置,保持为标准 JSON。 |
data/tvbox.meta.json |
最近一次抓取与解码的元数据,包括哈希、大小、响应头和源地址。 |
可直接使用 raw 地址读取最新 JSON:
https://raw.githubusercontent.com/xixu-me/tvbox-json-monitor/main/data/tvbox.json
工作方式
上游端点返回给 TVBox 客户端的是一个 JPEG-like payload,真实配置追加在 JPEG EOI 标记 FF D9 之后。脚本会按以下步骤处理:
- 使用 TVBox 风格的
User-Agent请求配置端点。 - 定位 JPEG EOI 标记
FF D9。 - 读取 EOI 之后的附加载荷。
- 在附加载荷中查找
**分隔符。 - 对分隔符之后的内容进行 Base64 解码。
- 移除上游配置中的 JSONC 风格整行注释。
- 解析并重新序列化为 2 空格缩进的严格 JSON。
自动更新
GitHub Actions 每 5 分钟检查一次上游配置,也支持在 Actions 页面手动触发。
当 data/tvbox.json 或 data/tvbox.meta.json 有变化时,工作流会提交类似下面的 commit:
chore(tvbox): update decoded JSON 2026-05-13T16:00:00Z
如果上游端点临时不可用、返回格式异常或解码失败,本次更新会被跳过,已有数据保持不变,工作流不会因为这类上游问题失败。脚本使用退出码 75 标记这类上游问题;仓库变量缺失、脚本错误或文件写入失败等非上游问题仍会使工作流失败。
仓库配置
工作流依赖一个 GitHub Actions repository variable:
Name: TVBOX_URL
Value: https://www.xn--sss604efuw.com/tv/
配置路径:
Repository -> Settings -> Secrets and variables -> Actions -> Variables
由于工作流需要把生成文件提交回仓库,请确保 Actions 具备写入权限:
Repository -> Settings -> Actions -> General -> Workflow permissions -> Read and write permissions
本地运行
项目只依赖 Python 标准库,可直接运行:
export TVBOX_URL="https://www.xn--sss604efuw.com/tv/"
export TVBOX_UA="okhttp/3.15"
export OUT_JSON="data/tvbox.json"
export OUT_META="data/tvbox.meta.json"
python3 scripts/extract_tvbox.py
运行成功后,脚本会更新 data/tvbox.json 和 data/tvbox.meta.json,并在终端输出本次解码元数据。