Skip to content

1.9.5

Choose a tag to compare

@github-actions github-actions released this 14 Oct 16:13
· 3 commits to main since this release

发布说明摘自 CHANGELOG.md 的 1.9.5 一节。

新增

  • 日志页新增「导出日志」与「系统自检」:导出日志下载带系统运行环境信息(面板版本 / Node 版本 / 平台 / 内存 / 模块清单)的完整日志文本;系统自检检查数据目录可写性、内存状态、模块加载状态、图片索引数据库可写性、缓存数据库目录等关键项。
  • 源插件可声明「直绑元数据域条目 Id」(契约 binds):此前因站点搜索精度太差、按名搜必然命中 0
    而一直拿不到版本的条目(典型 Pornhub),现在由源插件在 plugin.json 里声明认领某个元数据域,
    面板把该域条目的 entryId 直接交给插件取线路,跳过按名搜索。面板口径:先直绑、拿到可用线路即
    不再按名搜;直绑失败自动回落
    到原有的按名搜(判据 / 分数线 / 条数一律不变),两者只对同一站点
    二选一、不双算。要求插件版本已声明 binds 并(重新)安装或更新,面板才能在运行时看到它;
    插件不声明则一切照旧。契约写在插件开发套件仓的 contract-source.md,依据见
    ADR-0076。
  • 需要 Referer 的图床封面可以走「图片代取」:插件把这类封面写成根相对地址
    /api/emby/img/{host}/{path}(意思就是"这张图请面板代取"),面板在出图那一跳补一道签名,
    客户端照 Items/{id}/Images/Primary 的 302 取图时,由面板带上 Referer / User-Agent 去取 ——
    此前「不带 Referer 一律 403」的那批图床封面恒定空白,现在出得来。插件的头(mbh)与面板签名
    (mbm)都在地址里、都被签名保护,这个端点不是开放代理。要求插件版本支持这一形态
    (给根相对地址即可;给绝对 http(s) 地址仍照旧由客户端直连)。

变更

  • 公告与登录后弹窗增加 Telegram 交流群入口,移除公告正文中的维护说明。
  • HLS 清单里的分片地址改走面板自己的「域名端点」(/api/agg/hls/{host}/{path},
    Emby 实例端口上是 /api/emby/hls/{host}/{path}):原来是 ?seg=&sid= 的子地址 ——
    那串鉴权头存在面板内存里、分片地址只带一个 sid,于是面板一重启,发出去的整份清单就全废(410),
    只能等客户端重取清单。现在插件给的 Referer / User-Agent 与面板签名一起编进分片地址本身
    (mbh / mbm),面板按 host + 路径拼回上游地址、单连接去取:重启不再让已发出去的清单失效,
    也省掉那张内存表。客户端无需改动(清单还是清单,只是里面每个地址换了形态)。

修复

  • Emby 图片 404 兜底:面板重启后图片索引清空,客户端仍缓存旧条目 Id 时,主图(Primary)请求会尝试从上游取一次条目信息并重建索引,避免持续 404。仅限 Primary 类型,避免批量背景图打爆上游。
  • Emby 字幕内容端点认下 Stream.subrip / Stream.webvtt:面板给版本里的字幕流申报的 Codec
    是 Emby 内部名(SRT 记作 subrip、VTT 记作 webvtt),客户端据此拼出 …/Subtitles/{Index}/Stream.subrip
    回来,而端点此前只认 Stream.srt / Stream.vtt → 一律 501(日志记 未实现;实测 SenPlayer
    的 SRT 轨连吃 501,同批 ASS 轨走 Stream.ass 正常)。现放宽到 srt / subrip / ass / ssa / vtt / webvtt
    并归一,SRT / VTT 轨恢复可取。客户端无需改动;契约行见 docs/emby-compat.md「十」#23 的 23-6。
  • 要鉴权头的线路(playVia: proxy)不再「先探一发再重下」,段级分片也不再走切块:中继此前对每一发
    都先探一发 Range: bytes=0-1023 拿总长、随即掐掉,再按块切、多路重下,而且要按序吐块 ——
    第 1 块没读满,后面十几路即使下完也一个字节都发不出去。那套是按大文件设计的(网盘 CDN 按 Range
    形态限速,开放式 bytes=0- 只有 0.1MB/s),但 HLS 是逐分片取,分片为此白付「探测往返 + 重下 +
    等整块」,而一块慢 / 走重试时整条流就是硬停顿。同一部片子(1080p)实测:分片经面板首字节
    1089 / 1133 / 875ms,直连带 Referer 只要 302 / 291 / 311ms;上了第一版修复(只直搬 ≤512KB 的那档)后,
    清单里 1.1
    2.8MB 的分片仍进切块档,每片都下到一半被播放器掐掉(日志对得上:开始写「共 2930168 字节」、
    结束时只「搬了 0.5MB」,一部片子清单被重取了 3 次)。
    现在按对象大小分流:8MB 以内(HLS 分片正在这一档)单连接边下边发 —— 不探、不切、不重下,
    慢也是连续地慢,没有按序停顿(一片 2.8MB 从十几发上游请求降到 1 发);更大的才分块并发,
    而且第一发当流式前缀先吐、后面的块并发续上(不再掐掉重拉,客户端从第 0 字节起就有数据)。
    两档发的都是有界 Range,不会撞回开放式 Range 的限速。另外,中继那行「结束」日志现在写成
    搬了 X / 共 Y,搬少了会写明"客户端提前断开" —— 就是这次排查时对不上的那种日志。
    客户端无需改动;依据见 ADR-0077 与
    ADR-0078。

面板「设置 → 版本与更新」里可以手动更新到这个版本;它只安装正式 Release 的资产并校验 sha256。