Skip to content

BBDown v1.6.12

Choose a tag to compare

@github-actions github-actions released this 16 Aug 20:06
· 77 commits to master since this release

修复与安全性加固

  • 直播录制完整性校验LiveStreamUtil 合并直播分段改用临时 staging 文件并在合并后校验产物大小(outLen >= totalInputBytes * 0.8),杜绝因 ffmpeg 遇坏段截断退出而静默删除原始分段丢失数据;引入 LiveRecordResult 明确区分完全成功、合并失败保留分段及无数据状态。
  • HTTP 超时与取消语义规范化HTTPUtil 内部超时 CTS 耗尽后转为 TimeoutException 抛出,避免被 CLI 顶层误判为主观取消(退出码 130);为 GetWebSourceWithSetCookiesAsync / GetWebSourceAnonymousCheckedAsync 补齐 ApiTimeoutMs 整体超时;修复 using 声明在 EnsureSuccessStatusCode() 之前导致的 4xx/5xx 连接未 Dispose 泄露。
  • 下载编排与并发控制Download 路径独占锁命中跳过时清理败者任务已下载的临时音视频/字幕文件;为 FLV 分支补齐弹幕下载、--danmaku-only--cover-only 支持;多线程分片下载遇确定性不支持 Range 时立即抛错,不再做无意义退避重试。
  • Core 模块与各 Fetcher 健壮性BangumiInfoFetcher / IntlBangumiInfoFetcher 修正指定 epid 试看分P被意外过滤的问题,未匹配 ep 时抛出明确的 KeyNotFoundExceptionFavListFetcher 收藏夹翻页遇到风控或非零 code 时显式中断并报错;免二压第二轮请求增加异常捕获平滑降级与播放受限校验;所有 backup_url 改用 EnumerateArraySafe 杜绝畸形非数组崩溃。
  • 混流与分段合并BBDownMuxer.MergeFLV 单分片路径免除 ffmpeg 依赖直接移动;多段 FLV 合并中间 .ts 文件使用 try-finally 保证在异常或取消时必被清理;CheckFFmpegDOVI 增加 5 秒异步超时保护。
  • DRM、字幕与弹幕安全WidevineCdm 全链路传递 CancellationToken 并在密钥解析完毕后通过 CryptographicOperations.ZeroMemory 清理内存中的密钥材料;WvdDevice.ParseWvd 补充 Span 边界检查防越界;SRT 字幕正文 --> 转义防时间轴错位;ASS 弹幕正文反斜杠 \ 转义防恶意排版标签注入;弹幕时间解析失败时跳过生成该条 Dialogue。
  • Serve API 与 CLI 命令安全BBDownApiServer 净化客户端传入的 RetryCount / RetryDelay、清除 Debug 堆栈暴露标志并规范化 Host 剔除协议前缀;SubCommand / WatchLaterCommand 订阅与稍后再看单视频捕获 TimeoutException / TaskCanceledException,防止单项网络抖动中断整批任务;扫码登录严格校验接口返回码 code == 0 以及 access_token 有效性。
  • UI 与并发线程安全ProgressBar 控制台刷新加入 Logger.ConsoleLock,消除多任务并发下进度条与日志字符交织乱码。

新增测试

  • 全量单元测试扩充至 487 个并通过,覆盖直播截断拦截、HTTP 超时转换、Host 规范化、截断 WVD 格式校验、弹幕字符转义等用例。

Commits

  • release: v1.6.12
  • fix: 完整代码审查修复——直播分段合并完整性校验、HTTP超时异常转换、FLV弹幕/封面支持与全库防御性加固
  • fix: 凭据加载安全加固——自动去除 Cookie/Token 前后空白与换行符
  • fix: 遍历审查加固——Page 拷贝构造补全、Parser DRM 字段安全读取、控制台色恢复守卫、订阅目录安全创建
  • fix: 防御性解析加固——课程/直播 code 检查、BV 无效字符、字幕健壮性、UP主空投稿早退
  • fix: 防御性解析加固——fetcher 节点判空/订阅下载容错/稍后再看判空/二维码写入降级
  • fix: 审查修复——WBI 时钟补偿/长路径截断/取消碎片清理/Widevine 诊断/工具探测守卫/Cookie 过期警告/直播格式提示/UP主进度
  • fix: 审查修复——装饰字幕降级/风控页可恢复重试/API 超时重试/跳过假成功复核/尺寸错位修复/前导空白风控识别
  • fix: serve WorkDir 按流隔离 + API 层有界重试/风控页识别 + Logger 失败闭锁;perf: 下载探测合并(HEAD 优先)
  • perf: 日志持久 writer + 分片合并异步化;fix: UA 按流隔离 + 回调 DNS 异步化
  • fix: 安全加固与取消语义修正(SSL 连接池隔离/密钥脱敏/常量时间比较/超时不冒充取消/翻页去重)
  • fix: 修复审查发现的 7 个缺陷(直播断流/重试配置/aria2c 退出码/wvd v2/FLV 校验/元数据转义/路径扩展名)
  • fix: Ctrl+C 取消不再误报为错误——ExceptionHandler 显式识别取消返回 130

Downloads

Platform Architecture
Windows x64, arm64
Linux x64, arm64
macOS x64, arm64

Full Changelog: v1.6.11...v1.6.12