Skip to content

SrcBox v1.1.19

Choose a tag to compare

@github-actions github-actions released this 15 Oct 15:57
· 2 commits to main since this release

v1.1.19 Release Notes

Release Date: 2026-10-15
Previous Version: v1.1.18


Highlights

本版集中解决「回看为什么播不了、拖不动」这一类现场问题:补上 Kodi / APTV 那一套时间占位符({utc} 这类写法以前会原样留在请求里,服务端当然不认),设置页新增 8 种常用回看格式一键套用;RTSP 单播回看在频道没有 EPG 节目时也能拖动进度(改为按新时间点重发回看地址);顺带把更新红点做可靠——镜像表内嵌进程序、每次启动检查一次、失败会在日志里说明每个源为什么失败,并修掉「按住说话第一个字被吞」。

  1. 回看 / 时移格式补齐 Kodi 词汇:支持 {utc}、{utcend}、{lutc}、${start}、${end}、${now}、{Y}{m}{d}{H}{M}{S}、{duration:X}、{offset:X},以及 Kodi 方言的格式串({utc:YmdHM}、${end:Ymd-H-M})——从 APTV / TV Live / IPTV-org 列表里抄过来的 catchup-source 可以直接用。
  2. 设置页「常用格式」预设:内置 8 种常见形状(playseek 本地/UTC/Unix 秒、?time={utc}、starttime/endtime 的 UTC+T 与本地、start+end、start+duration),选中即填入地址格式,不用改 m3u 就能逐个试。
  3. RTSP 单播回看可拖动:回看态拖动进度条一律按新时间点重发回看地址;没有 EPG 节目时进度条改用「本次请求的回看窗口」当量程,不再退化成 mpv 内部 seek(中转回看流在 mpv 里不可 seek,因此以前拖了没反应)。
  4. 更新红点更可靠:gh-proxy 镜像表内嵌进程序(发布包里本来从来没有这个文件,GitHub 被墙或限流时检查就静默失败)、每次启动都检测一次、本地代理异常时直连重试一次,并在日志里写明「已是最新版本 / 发现新版本 / 检查失败:哪个源返回了什么」。
  5. 语音保住句首:按住说话时保持麦克风预热(预滚缓冲 + 松开后补录尾音),不再出现「回看」被听成「谁看」这类第一个字丢失的问题。
  6. 文档:四种语言的《回看与时移》新增「Kodi 通用词汇」「常用格式预设」「RTSP 单播回看」三节,并修好了该页原有的代码块围栏错误。

1. 回看 / 时移:Kodi 词汇与常用格式预设

catchup-source 只认 ${(b)...} / ${(e)...} / {utc:...} 这一套时,用户照着 Kodi(pvr.iptvsimple)文档写 ?time={utc} 会被原样塞进请求——issue #6 里重庆联通的反馈就是这个现象(服务端收到字面量 {utc},回看自然播不了)。

新增的占位符:

占位符 含义
{utc}、${start} 开始时间的 UTC Unix 秒(10 位)
{utcend}、${end} 结束时间的 UTC Unix 秒(10 位)
{lutc}、${now} 当前时间的 UTC Unix 秒(10 位)
{Y}、{m}、{d}、{H}、{M}、{S} 开始时间的年 / 月 / 日 / 时 / 分 / 秒(本地时间)
{duration:X} 窗口长度除以 X(如 {duration:60} 为分钟)
{offset:X} 当前时间与开始时间之差除以 X

说明:

  • {utc:FORMAT} / {utcend:FORMAT} / ${start:FORMAT} / ${end:FORMAT} 都支持:写成 Kodi 方言(只用 Y m d H M S,如 {utc:YmdHM})按 Kodi 含义翻译;写成 .NET 格式(如 ${utc:yyyyMMddHHmmss})原样使用。
  • 两套方言里 m / M 含义相反(Kodi 的 m 是月、M 是分,.NET 反之),不确定时用 yyyyMMdd… 写法。
  • ${timestamp} 在 SrcBox 里仍表示窗口开始时间(历史行为,文档一直如此);要「当前时间」请写 {lutc} 或 ${now}。Kodi 的 {catchup-id}(XMLTV 节目级 ID)暂不支持。

设置 → 回放设置 / 时移设置新增「常用格式」下拉,8 个预设全部是「仅参数段」,会拼到该频道直播地址后面(直播地址已带 ? 时用 &,鉴权参数原样保留):

预设 模板
playseek 开始-结束(本地时间,中兴/PLTV 常用) ?playseek=${(b)yyyyMMddHHmmss}-${(e)yyyyMMddHHmmss}
playseek 开始-结束(UTC 时间) ?playseek=${utc:yyyyMMddHHmmss}-${utcend:yyyyMMddHHmmss}
playseek 开始-结束(Unix 秒) ?playseek=${timestamp}-${end_timestamp}
单个 Unix 时间戳(Kodi/APTV 常用) ?time={utc}
starttime/endtime(UTC + T,华为/魔百和常用) ?starttime=${(b)yyyyMMdd|UTC}T${(b)HHmmss|UTC}&endtime=${(e)yyyyMMdd|UTC}T${(e)HHmmss|UTC}
starttime/endtime(本地时间) ?starttime=${(b)yyyyMMddHHmmss}&endtime=${(e)yyyyMMddHHmmss}
start/end(Unix 秒) ?start=${timestamp}&end=${end_timestamp}
start + duration(Unix 秒) ?start=${timestamp}&duration=${duration}

2. RTSP 单播回看:进度条可以拖了

现象 原因 本版
回看能播,但拖动进度条没有反应 频道没有 EPG 节目时,拖动会退化成对回看流做 mpv 内部 seek,而中转式回看流(playseek)在 mpv 里不可 seek 一律按新时间点重发回看地址
进度条量程是空的 / 拖不动 量程取自 mpv 报告的时长,RTSP 回看流通常没有时长 没有节目时量程 = 本次请求的回看窗口(起止时间),拖动后窗口跟着走
拖动越界请求了还没产生的时段 没有夹取 目标时间夹在窗口内(右端留 1 秒)

仍然取决于服务端的一点:「点回放完全播不了」属于源端是否认这个参数——同一份 m3u 在 PotPlayer / APTV 能播、在 SrcBox 不能播的情况,需要拿到实际回看地址才能定位;本版的做法是把「格式可以试、拖动可用、日志可查」补齐。

3. 更新红点:内置镜像 + 每次启动检测

问题 说明
镜像表从来没进过发布包 清单唯一副本是 docs/public/screenshots/cdn.md(只发布到文档站),而程序在安装目录里找 docs/cdn.md / docs/screenshots/cdn.md,publish 产物里连 docs\ 都没有 → 镜像列表恒为空,api.github.com 一旦被墙或限流,检查就静默失败、红点永远不亮
每天只查一次 24 小时节流 + 「同一版本不重复查」,导致刚发布的新版本要等到第二天才可能亮红点
本地代理一挂就查不到 共享 HttpClient 走系统(WinINET)代理,代理异常时所有源都失败且没有任何提示

本版:镜像表内嵌进程序集(gh-proxy.org / hk.gh-proxy.org / cdn.gh-proxy.org,可在设置里改),每次启动检测一次(仍然是后台静默、不弹窗),所有源都失败时改用直连重试一次,并在日志里留下结论:

[Update] 发现新版本 1.1.19(当前 1.1.18)
[Update] 已是最新版本 1.1.19
[Update] 检查失败: api.github.com=403; gh-proxy.org=超时

4. 语音:保住句首

按住说话时麦克风需要 0.2–0.4 秒才能打开,用户立刻讲话时第一个音节根本没被采到,于是出现「回看」被识别成「谁看/可看」这类第一个字丢失的现象。本版把麦克风保持热:一次命令后 30 秒内不关麦(预滚 800 ms 环形缓冲,按下即可接上),松开后再补录 200 ms 尾音;页面隐藏、取消或超时会立刻彻底关麦(手机录音指示灯不会长亮)。

5. 文档与测试

  • 四种语言(中文 / English / 繁體中文 / Русский)的《回看与时移》新增三节:Kodi / APTV / TV Live 通用词汇、常用格式预设(设置页)、RTSP 单播回看(中兴 / PLTV 等);同时修好了该页中文 / 英文版本原有的代码块围栏错误(此前「优先级与覆盖」之后的整段被渲染成代码)。
  • 自动化用例总数由 v1.1.18 的 539 通过 / 0 失败 变为 558 个:557 通过 / 1 跳过 / 0 失败(跳过的仍是默认禁用的金样生成用例)。新增覆盖:Kodi 占位符与两套方言、Scaled 的 duration/offset、预设目录与全量展开、无 EPG 节目的回看拖动与量程、设置抽屉的预设交互(真实加载 XAML)、内嵌镜像表与请求顺序、代理失败后的直连重试。

Known Issues

  • 回看能否成功仍取决于服务端:运营商私有格式无法穷举,本版提供 8 种常用预设与完整占位符词汇,逐个试到能播为止;调试日志会打印实际请求地址与 [Replay] 记录。若某个源怎么试都不行,请把 m3u 里该频道的 catchup-source 与调试日志发到 issue。
  • 若 SrcBox 运行在受限完整性级别下(例如程序目录被安全策略或沙箱标记为 Low Integrity、进程被降权),它无法写入用户配置目录、也无法创建用户密钥容器,HTTPS 因此不可用;此时页面与二维码会自动给出 http://,不会给出打不开的 https://。这类限制来自运行环境,不是程序缺陷——把程序放在普通的用户目录下运行即可恢复。
  • 语音词表的识别层热词本版未启用:当前使用的 SenseVoice-Small 模型不支持热词嵌入(热词通道只在 SeacoParaformer 投影上生效),需要更换模型,留待后续评估。词表包目前作用于指令解析层(短语 / 时间词 / 噪声词)。
  • 浅色主题下全屏 EPG 浮窗的最外圈存在 1 个设备像素的浅灰边(约 #AAAAAA),深色主题下为 #707070;面板内部配色已逐像素对齐,该差异仅出现在透明分层窗口边缘,本版未处理。
  • 远程页面不显示播放源健康状态(数据模型中没有该字段)。
  • 菜单构建仍会累积内部菜单项引用(长时间运行后菜单刷新略慢),沿用上一版的记录,本版未改动。

Contributors

感谢以下用户的贡献:

  • @Neverends4 - 报告重庆联通 RTSP 单播源缺少回看 / 时移格式,并提供频道列表与抓包资料 (#6)
  • @bnnz1085199 - 报告广西联通 RTSP 单播回看部分频道无法播放、部分时段无法拖动进度,并提供带鉴权的 m3u 样例 (#6)

Download