BBDown v1.6.12
修复与安全性加固
- 直播录制完整性校验:
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 时抛出明确的KeyNotFoundException;FavListFetcher收藏夹翻页遇到风控或非零 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