Repository navigation
Releases: QCEnjoyLL/bililive-go
Releases · QCEnjoyLL/bililive-go
Release list
v1.2.9
v1.2.9 更新说明
本版本修复在线鉴权、录制停止与计时、分层配置和后处理任务并发问题。
在线鉴权与房间删除
- 在线开启或关闭 Web 鉴权、修改用户名或密码后,新请求立即使用最新配置,无需重启服务。
- 删除直播间时同步停止录制,修复未开启监听的手动录制在删除房间后仍继续运行的问题。
录制计时与配置继承
- 整场录制时长从本次录制开始时计算,分段和断流重试不再重置截止时间。
- 整场截止检查独立于分段收尾执行;停止录制时停止房间监听,避免自动重录。
- 停止后取消本次录制的定时器,避免旧定时器影响后来重新开启的录制。
- 修复全局流偏好未被房间继承的问题,平台和房间仍可按层级覆盖。
- 定时分段、定时停止和标题变化分段使用房间实际生效的配置,正确应用平台与房间覆盖设置。
后处理任务
- 多个调度入口同时触发时,运行中的任务仍遵守配置的并发上限。
- 任务启动状态保存失败时释放并发名额;管理器关闭后不再启动新任务。
上述修复均补充了回归测试。
v1.2.8
v1.2.8 更新说明
本版本优化直播间较多时的列表浏览体验,并清理公开页面中的示例信息。
直播间列表分页
- 直播间列表默认每页显示 10 条记录。
- 支持切换为每页 20、50 或 100 条记录。
- 分页区域显示当前直播间总数。
示例信息调整
- 使用
abc、12345等通用房间号替换原有示例。 - 移除 README 中不必要的平台展示信息。
v1.2.7
v1.2.7 更新说明
本版本简化 BoyFriend 直播间的添加流程,并修复构建、部署与 Go 1.26 兼容性问题。
BoyFriend 房间号自动补全
- 添加“自动补全 BoyFriend 直播间链接”开关,默认开启。
- 开启后只需输入房间号(例如
tommyjoyer),即可自动转换为https://zh.boyfriend.show/tommyjoyer。 - 输入完整的 BoyFriend 链接或其他平台直播间链接时保持原样,不会与自动补全冲突。
构建与部署
- Docker Compose 默认仅监听本机
127.0.0.1:8080,降低未配置访问控制时意外暴露服务的风险。 - 修复 Dockerfile 下载 Release 资产时使用了错误仓库地址的问题。
- 将开发环境和文档中的 Go 版本要求统一为 Go 1.26。
- 适配 Go 1.26 的反向代理 API,并清理已不再使用的录制与 HLS 代码。
- 更新 GitHub Actions 中已停止维护的旧版发布、覆盖率与脚本动作。
v1.2.6
v1.2.6 更新说明
本版本修复开启 WebUI 登录保护后,调度器页面误判 BiliLive-go API 不可达的问题,并优化调度器统计信息在不同宽度下的显示效果。
调度器连接状态
- 修复启用 WebUI 鉴权后,Scheduler 后台健康检查访问主程序 API 被
401拦截,导致页面显示“bililive-go API 不可达”的问题。 - Scheduler 现在会通过仅本机可用的内部 API 通道访问 BiliLive-go,不再依赖普通未登录 API 请求。
- 内部通道使用运行时随机 token,并限制为本机回环访问;不会把 WebUI 用户名或密码写入 Scheduler 启动参数,也不会放宽外部访问的登录保护。
- 普通 WebUI / API 访问仍保持原有鉴权逻辑,未登录访问受保护接口仍会被拦截。
调度器页面显示
- 修复调度器状态卡片中“运行中”等短状态文字在窄布局下被拆成多行的问题。
- 优化“运行时间”等较长统计值的布局:空间足够时保持单行显示,空间不足或运行时间变长时允许在标签和值之间换行,避免内容溢出或挤压。
- 继续保持 Scheduler 页面与主 WebUI 主题注入样式一致,减少外部页面在深色 / 浅色主题下的显示差异。
v1.2.5
v1.2.5 更新说明
本版本继续修复 WebUI 更新流程和外部工具管理体验,重点解决更新后页面停留、Tools 页面必需工具卸载提示不明确、版本号展示不醒目等问题。
更新与登录流程
- 点击顶部“立即更新”后,现在会显示明确的提交、等待重启、完成刷新状态,不再出现点完没有任何反馈的情况。
- 程序更新完成后会自动轮询
/api/info判断服务是否恢复;服务恢复后自动刷新页面。 - 如果更新后会话失效或需要重新登录,会自动跳转到登录页,并保留当前访问路径。
- 修复更新页面在无录制任务时仍被当成“优雅等待更新”的判断问题,只有后端明确返回等待状态时才显示等待更新。
- API 错误对象现在保留 HTTP 状态码,前端可以准确识别
401/403并跳转登录。
版本号显示
- 主 WebUI 左下角增加当前版本号常驻显示。
- 登录页左下角增加当前版本号显示。
- Tools、Scheduler 等外部代理页面也会注入当前版本号显示,便于确认当前运行的是哪个版本。
外部工具管理
- 必需 / 默认安装工具只剩最后一个已安装版本时,禁止卸载所有版本,并返回明确说明:
“这是必需工具,至少要保留一个已安装版本,不能卸载所有版本;如需切换,先安装其他版本再卸载当前版本。” - 修复外部 Tools 服务返回空
409时,页面只能显示“卸载失败”的问题。现在 BiliLive-go 会补齐err_msg、message和data.reason,前端可以显示具体原因。 - 兼容 Tools API 的真实返回结构
{"value":[...]},避免必需工具状态判断失败。 - 兼容工具操作请求里的
toolName、name、tool字段,减少不同 Tools 页面版本之间的请求字段差异导致的漏判。 - 为
/tools/api/uninstall和/tools/api/toggle增加显式保护路由,确保这些危险操作不会绕过 BiliLive-go 的保护逻辑。 - Tools 页面注入脚本增加 fetch / XHR 错误兜底提示,外部页面吞掉错误时仍尽量显示明确原因。
v1.2.4
v1.2.4 更新说明
本版本主要优化 WebUI 的外部工具管理体验,并补充若干主题、登录、配置编辑和更新检测修复。重点解决 Tools 页面多版本工具状态不一致、必需组件可误操作、深色主题显示不协调等问题。
外部工具管理
- 重构 Tools 页面多版本工具的展示方式,统一为“当前版本 / 可选版本 / 启用”流程,避免不同工具组出现旧版布局或留白。
- 修复展开工具详情时短暂闪现旧布局的问题,尤其是“锁定版本”等旧字段不再一闪而过。
- 修复多个版本共存时,切换启用版本后顶部“当前版本”和安装状态未及时刷新的问题。
- 未安装版本不再允许启用,启用按钮只会在“已安装且未启用”的版本上显示。
- 未安装版本不再显示可卸载操作,避免点击后出现“卸载完成”但实际没有任何变化的误导。
- 对
ffmpeg、dotnet、node、biliLive-tools、bililive-recorder、bililive-scheduler等必需 / 默认安装工具增加保护:- 至少必须保留一个已安装版本,不能卸载所有版本。
- 不允许停用必需工具组,录制和相关功能依赖这些工具保持启用。
- 操作被拦截时会给出明确中文说明,而不是只显示笼统的“卸载失败”。
- 对
bililive-go、klive等内部管理组件增加保护,禁止在外部工具页手动卸载、启用或禁用。 - 后端为工具卸载和启用接口增加兜底校验,避免绕过页面直接调用 API 导致必需工具进入不可用状态。
- 工具页新增工具分类说明,区分必需 / 默认安装、推荐安装、可选安装和内部管理组件。
主题与界面
- 继续优化 Tools、Scheduler 等外部页面的深色主题适配,减少白底过亮、暗块过暗、文字对比不足的问题。
- 统一 Tools 页面“已安装 / 未安装 / 已启用 / 未启用”等状态标签的字号、间距和视觉风格。
- 修复登录页输入框内容贴边的问题,增加合理内边距,并优化浏览器自动填充时的主题颜色。
- 修复登录页和外部页面部分文本在深色主题下颜色不跟随主题的问题。
配置页面
- YAML 模式编辑器改为主题适配更稳定的文本编辑区,修复深色主题下 YAML 内容几乎不可见的问题。
- 配置页保存按钮保持底部浮动,便于在长配置页面中随时保存。
- 优化云盘上传设置中的“上传时机”说明,明确“立即上传原始文件”和“处理流程结束后上传”的区别。
更新检测
- 修复本地
-dev测试版检测远程同核心版本正式版时被误判为需要更新的问题。 - 例如本地
v1.2.4-dev不会再把远程v1.2.4判断为更新;只有远程核心版本更高时才提示更新。
验证
go test ./src/servers ./src/pkg/update -count=1通过。go test ./src/... -count=1 -p 1通过。corepack yarn --cwd src/webapp build通过。- 已本地验证
/tools/注入脚本包含必需工具停用保护和卸载保护提示。
v1.2.3
v1.2.3 更新说明
本版本是一次 WebUI 深色主题显示修复,重点处理部分页面在深色主题或不同配色下仍然出现黑字、白底、对比度不一致的问题。
登录页面
- 修复深色主题下登录页标题文字没有随主题变化的问题。
BiliLive-go、进入 WebUI、欢迎回来现在会统一使用当前主题的主文字颜色,不会再在深色背景上显示成黑色。
更新页面
- 修复更新页面和顶部更新弹窗里的「更新日志」区域仍然使用浅色白底的问题。
- 更新日志内容现在会跟随当前主题使用合适的背景、边框、文字颜色和滚动条样式。
- 优化更新日志区域的代码/日志类文本显示,提升深色主题下的可读性。
直播间列表
- 修复深色主题下直播间名称不够明显的问题。
- 将直播间名称链接、列表标题和表格文字接入 WebUI 主题变量,减少硬编码浅色文字导致的显示异常。
验证
- 已通过前端构建检查。
- 已通过 Go 服务端相关测试。
- 已通过 Go vet 静态检查。
v1.2.2
v1.2.2 更新说明
本版本是一次 WebUI 登录与更新体验修复,重点解决开启鉴权后登录页图标无法显示,以及程序更新完成后因为需要重新登录而停留在更新等待页的问题。
登录页资源修复
- 修复开启 WebUI 鉴权后登录页图标裂开的问题。
/favicon.ico和/manifest.json现在会作为公开资源放行,不会再被登录鉴权拦截。- 针对当前图标文件“扩展名是
.ico、实际内容是 PNG”的情况,服务端会显式按image/png返回,避免浏览器误判导致图标加载失败。
更新后自动恢复
- 优化更新页面的重启等待逻辑,避免更新完成后一直停留在“等待服务器重启”的页面。
- 更新页现在会持续检测
/api/info:- 如果新版本启动后会话仍有效,会自动刷新页面。
- 如果新版本启动后登录会话失效,检测到
401/403后会自动跳转到登录页。 - 登录地址会带上
next参数,重新登录后可以回到原来的更新页面。
- 增加轮询保护,避免重复创建多个重启检测定时器。
交接文档
- 新增开发历程交接文档,整理了从 HLS 录制稳定性、更新系统、Docker 启动、WebUI 鉴权与主题、Tools/OpenList、配置页体验到当前未发布修复的整体脉络。
- 文档位置:
docs/handovers/2026-06-28-development-handoff.md。
验证
go test ./src/servers -count=1通过。go test ./src/...通过。go vet ./src/...通过。- 本地验证
/favicon.ico返回200,Content-Type为image/png。 - 本地验证未登录访问
/api/info返回401,更新页会按该状态进入重新登录流程。
v1.2.1
v1.2.1 更新说明
本版本是一次 WebUI 设置页体验修复,重点解决长设置页面保存不方便、保存后位置丢失的问题。
设置页保存体验
- 设置页面的保存按钮现在会固定显示在页面底部,不需要每次修改配置后再滚动到页面最底部才能保存。
- 全局设置、通知设置和 YAML 模式都使用同一套浮动保存按钮样式,视觉上与当前主题保持一致。
- 移动端页面也保留底部浮动保存按钮,并预留底部空间,避免按钮遮挡最后几项配置。
保存后位置保持
- 修复设置页保存后自动跳回顶部的问题。
- 保存配置后会静默刷新配置数据,不再把整个设置页临时替换成加载状态,从而避免页面内容卸载导致滚动位置重置。
- 滚动位置会同时记录并恢复主内容区、浏览器窗口和文档滚动容器,适配不同浏览器下的实际滚动行为。
- 顶部“刷新”按钮也会尽量保留当前滚动位置,刷新状态时不打断正在查看的配置区域。
开发验证与缺陷修复
- 修正监听器单元测试的旧预期:当前下播判定包含“连续两次离线才确认下播”的防抖逻辑,测试现在会覆盖第一次离线保持在线、第二次离线触发下播事件的行为。
- 发布前确认前端临时依赖目录没有残留,
node_modules和package-lock.json不会被带入仓库。
验证
npm run build通过。go run build.go dev通过。go test ./src/...通过。- 本地 WebUI
http://127.0.0.1:8080启动验证通过。
v1.2.0
v1.2.0 更新说明
本版本集中完善 WebUI 体验、外部工具管理器和 OpenList 云上传流程。相比 v1.1.16,这次不只是界面微调:云上传从配置展示推进到实际上传链路,设置页 GUI 补齐了更多 YAML 配置项,外部工具页也修复了加载失败、版本选择和深色主题可读性问题。
OpenList 云上传
- 云上传阶段现在会真正调用 OpenList API 上传录制文件,不再只是记录日志或占位。
- 支持外部 OpenList:如果已经通过 Docker 或其他方式部署 OpenList,可以在配置中填写服务地址、令牌和存储位置,程序会优先使用外部实例。
- 保留内置 OpenList:未填写外部地址时,仍可由 RemoteTools 准备并使用内置 OpenList。
- 新增 OpenList 配置校验接口,便于在保存配置前确认地址、Token、存储位置是否能正常访问。
- 优化云上传路径模板,默认路径改为更清晰的录播归档目录结构,避免不同直播间文件混在一起。
- 设置页文案从“存储名称”调整为“存储位置”,更贴近 OpenList 实际使用语义。
设置页与 WebUI 操作体验
- GUI 模式补齐更多 YAML 配置项,减少必须切换到 YAML 模式才能配置的情况。
- 主页面右上角增加手动刷新和自动刷新控制,开启自动刷新后图标会持续旋转,状态更新不需要整页刷新。
- 自动刷新间隔调整得更短,适合观察录制状态、运行状态和外部组件准备状态。
- 主页面、设置页、弹幕页、文件页等长页面增加“回到顶部”浮标,滚动到底部后可以快速返回顶部。
- 录制可用后,辅助组件准备提示会进入 5 秒倒计时并自动隐藏,减少顶部提示长期占位。
- 登录页、主页面和外部页面继续统一 Codex 风格主题,并保持浅色、深色与多配色方案一致。
外部工具管理器
- 修复
/tools/页面一直显示“加载工具失败”的问题:- RemoteTools 前端请求根路径
/api/...时,现在会在/tools/页面自动改写到/tools/api/...。 /tools/api/status增加快速状态响应,避免单个工具下载状态扫描卡住整个工具列表首屏。
- RemoteTools 前端请求根路径
- 工具列表现在可以稳定显示所有工具组,包括
ffmpeg、bililive-scheduler、biliLive-tools、openlist等。 - 多版本工具改为下拉选择默认版本,避免每个版本都展开成一张安装卡片。
- 修复展开详情时短暂闪过旧版“多安装卡片”布局的问题。
- 保留默认版本选择能力,切换后会保存为该工具组的默认版本。
- 深色主题下增强“未安装”“已安装”“已禁用”“运行平台”“默认版本”“版本号”等信息的区分度。
- 修复 Tools 页按钮、开关、空状态、工具组信息在深色主题下文字过亮、过暗或看不清的问题。
直播间列表与日志面板
- 修复直播间列表操作后运行状态不自动刷新的问题,状态会随轮询或手动刷新同步更新。
- 修复直播间展开详情在深色主题下背景、筛选栏、流列表和配置行不协调的问题。
- 修复最近日志面板仍然使用白底的问题,现在会跟随当前主题。
- 统一直播间列表、设置、日志、工具页中的按钮、卡片和开关样式,让深色主题下的对比更稳定。
主题与可读性
- 补齐 Codex 风格配色列表,并按字母顺序展示。
- 登录页主题配色顺序与登录后的主页面保持一致。
- 优化主题与配色下拉框的毛玻璃效果,减少原生下拉框的突兀感。
- 深色主题避免使用纯黑背景,降低覆盖原本黑色文字导致看不清的概率。
- Scheduler 和 Tools 外部页面会尽量继承主站主题变量,减少“白的太白、暗的太暗”的割裂感。
- iOS 风格开关启用后使用绿色状态,并优化按下时的滑块宽度和动画。
本地验证结果
npm run build通过。go test ./src/servers通过。go test ./src/pipeline/stages ./src/pkg/openlist ./src/servers通过。- 真实 Chrome 验证
/tools/页面:工具组正常渲染,相关接口均返回 200,不再出现“加载工具失败”。