Releases: amtoaer/bili-sync
v2.5.0
包含了一个比较大的修复,单独发一个 minor 更新:
- 将视频合集/视频列表修改为全量拉取,排除 b 站排序影响,确保正确检查更新(参见: #289 (comment) )
- 使用 baseUrl 下载视频失败时尝试使用 backupUrl,并支持根据 cdn 优先级对 url 排序,提高下载成功率(详情: #288 )
还请查看新引入的 cdn_sorting 选项。
What's Changed
- feat: 下载时考虑 backup_url,支持按照 cdn 优先级排序 by @amtoaer in #288
- fix: 视频合集/视频列表改为全量拉取,确保正确更新 by @amtoaer in #290
- chore: 修改 error 判断,考虑 chain by @amtoaer in #291
Full Changelog: v2.4.1...v2.5.0
v2.4.1
v2.4.0
一个不算大的版本变化,由于引入 web 服务导致二进制体积有比较明显的膨胀。主要变更包括:
- 支持下载 cc 字幕(作为 srt 字幕,不会默认选中)(效果)
- 简介中默认写入一个指向原始视频的超链接 (效果)
- 程序现在会响应 SIGINT 和 SIGTERM 信号并主动退出,不再只能被 SIGKILL 强制杀死(效果)
- 引入 web 服务,添加了简单的 API 与塑料前端,支持重置单个视频的失败状态(效果)
- 一些常见错误,如 error decoding response body 不再被计入重试次数
还请查看文档了解新引入的 auth_token 和 bind_address 配置项。
What's Changed
- feat: 支持下载 cc 字幕 by @amtoaer in #234
- chore: 使用 tokio::spawn 运行主任务 by @amtoaer in #237
- fix: 等待 task 执行 by @amtoaer in #238
- feat: 将视频的原始 URL 放到简介中 by @amtoaer in #241
- chore: 简化 up 主处理逻辑,支持 up 主信息更新 by @amtoaer in #243
- fix: 修改错误拼写 by @amtoaer in #244
- refactor: 下载部分使用 tokio 的封装代替手动实现 by @amtoaer in #245
- chore: 拆分主函数,支持响应终止信号 by @amtoaer in #247
- refactor: 使用 const 泛型约束 status by @amtoaer in #250
- fix: 修改拼写错误 seprate -> separate by @Dra-account in #253
- feat: 添加部分简单 API,相应修改程序入口的初始化流程 by @amtoaer in #251
- feat: 加入带有详细类型注释的 swagger 文档 by @amtoaer in #257
- feat: 加入重置单个视频状态的 API,视频接口返回下载状态 by @amtoaer in #258
- feat: 在状态更新时忽略掉一些常见的错误 by @amtoaer in #259
- chore: 将 video list model / video list 重命名为 video source by @amtoaer in #260
- feat: reset_failed 支持修正标记位,这允许用户手动触发新的子任务 by @amtoaer in #261
- feat: 加入塑料前端 by @amtoaer in #262
- fix: 修复 reset 执行问题 by @amtoaer in #263
- chore: 前端支持取消视频来源筛选(点击来源两次),调整 API TOKEN 填写位置 by @amtoaer in #264
- build: 在 version 中展示详细的构建信息 by @amtoaer in #265
- ci: 调整构建流,在 commit 时同样构建 binary by @amtoaer in #266
- ci: 彻底修复并优化 ci 流程,更新 justfile by @amtoaer in #269
- chore: error 会打印更加详细的信息,修正常见错误的判断 by @amtoaer in #270
- ci: 统一使用 ubuntu 24.04 运行 ci(20.04 将被弃用) by @amtoaer in #271
- fix: 修复 video 中分 p 下载状态的设置 by @amtoaer in #272
- chore: 补上缺失的 error_for_status 调用,修改一个 clippy 格式错误 by @amtoaer in #273
- fix: API TOKEN 输入框应该设置 password 类型 by @amtoaer in #274
- docs: 文档跟进最新代码变化 by @amtoaer in #275
New Contributors
- @Dra-account made their first contribution in #253
Full Changelog: v2.3.0...v2.4.0
v2.3.0
该版本基本没有外部可感知的变化,但在内部进行了不小的重构和优化,同样推荐备份后再升级。
主要更新包括:
- 引入新的视频更新检测方法并确保分页能够返回 Err,解决原有方法的边缘情况,同时提升性能( #228、#231)
- 下载方法现在会检查 Content-Length,并在写入完成后调用 flush,这应该有助于减少下载错误( 6ae8736 )
- 隐藏日志 target 并调整表述,缩减日志长度 ( 2a98359 )
What's Changed
- fix:修改配置文件写入逻辑 by @NKDark in #222
- feat: 引入更健壮的新视频检测方法 by @amtoaer in #228
- refactor: 精简代码,统一逻辑 by @amtoaer in #229
- feat: 确保 video stream 在出现错误时返回 Err by @amtoaer in #231
- refactor: 引入 enum_dispatch 静态分发,提升性能 by @amtoaer in #232
New Contributors
Full Changelog: v2.2.0...v2.3.0
v2.2.0
重拾半年前的代码,修修补补更新一波。该版本变动较大,虽然在本地测试没有发现问题,但还是推荐备份配置和数据后再更新。
主要的变化包括:
- 调整视频音频的筛选与排序逻辑,修复了筛选音频时错误认为 192K > HiRes、Dolby 的问题,参见 #212;
- 引入了可调节的并发限制,允许调整视频和分页下载任务的并行度、对 b 站 API 的请求频率;
- 支持监控下载 UP 主投稿视频(b 站对 UP 主投稿视频接口有着更严格的风控限制,建议酌情使用,如遇风控可尝试调低并发限制);
- video_name 和 page_name 中允许使用路径分割符,并添加了 fav_time 和 pubtime 两个模板参数;
- 视频页(page)分批插入数据库,避免单个视频有数百乃至上千个 page 时 SQL 过长导致的插入失败问题;
总体来说,用户可感知的配置文件变动不算多,可直接参见最新的文档内容变更 #217。
What's Changed
- docs: 修复配置文件位置的描述错误 by @amtoaer in #145
- docs: 将图片转为 webp 并压缩,大幅缩小占用空间 by @amtoaer in #147
- docs: 支持点击放大文档中的图片 by @amtoaer in #149
- feat: 支持各种任务结束之后的 delay 配置 by @amtoaer in #148
- build: 单独升级一下 time 依赖 by @amtoaer in #150
- refactor: 把循环拆分到外层,提取公共代码 by @amtoaer in #151
- feat: 支持设置时间格式化字符串,支持在 video_name 和 page_name 中使用 time by @amtoaer in #152
- refactor: 重构部分代码,调整函数位置 by @amtoaer in #154
- feat: 支持 up 主投稿视频下载 by @amtoaer in #155
- refactor: 将 filenamify 移动至本地,将正则表达式设置为 static by @amtoaer in #156
- feat: 支持设置 video 和 page 的下载并发 by @amtoaer in #157
- fix: 确保无论视频下载结果如何,都在最终删除临时文件 by @amtoaer in #159
- build: 升级依赖 by @amtoaer in #160
- fix: 修复视频 page 过多时数据库插入失败的问题 by @amtoaer in #162
- feat: 允许在 video_name 和 page_name 中使用对应平台的路径分隔符 by @amtoaer in #163
- test: 修复 windows 单元测试错误 by @amtoaer in #164
- chore: 支持使用 leaky-bucket 限制请求频率 by @amtoaer in #211
- feat: 调整并重构视频音频流的选择逻辑,应该可以提升些许性能 by @amtoaer in #212
- refactor: 一些边边角角的小重构 by @amtoaer in #213
- deps: 更新项目依赖 by @amtoaer in #214
- docs: 文档跟进最新代码变化 by @amtoaer in #217
Full Changelog: v2.1.2...v2.2.0
v2.1.2
该版本:
- 实现 wbi 签名逻辑,现在合集、视频下载接口的请求参数会添加签名,这应该能够缓解风控问题;
- 更新文档,加入“工作原理”小节,较为详细地解释了程序的运行逻辑;
- 移除一些未使用的代码,更新依赖。
What's Changed
- chore: 更正许可证文件名错误 by @A1ca7raz in #141
- feat: 为合集接口实现 wbi 签名 by @amtoaer in #140
- feat: 为下载视频接口加入 wbi 签名 by @amtoaer in #143
- refactor: 移除不必要的标记和代码块,统一 use 格式 by @amtoaer in #144
- docs: 添加"工作原理"小节 by @amtoaer in #135
New Contributors
Full Changelog: v2.1.1...v2.1.2
v2.1.1
v2.1.0
本次更新,用户可感知的变更:
- 将文档整理至单独的文档页面以避免 README 中平铺的篇幅限制,后续文档内容会与最新的程序版本保持一致
- 引入了视频合集和视频列表的下载(详情可点击上面的文档查看)
用户无感知的变更:
- 大范围重构代码、调整代码结构,现在代码应该会易读一些(希望有佬给提提 PR)
- 配置
cargo release
实现一键发版
What's Changed
- chore: 修改项目路径结构,使用 workspace 组织包 by @amtoaer in #118
- refactor: 引入 clap 处理环境变量和命令行参数 by @amtoaer in #119
- ci: 对处于 draft 状态的 PR 禁用 workflow by @amtoaer in #123
- build: 更新依赖 by @amtoaer in #125
- feat: 大范围重构,支持视频合集下载 by @amtoaer in #97
- fix: 修复重构引入的若干 bug by @amtoaer in #126
- docs: 全局修改描述,在文档中加入版本信息并在发版时自动替换 by @amtoaer in #128
Full Changelog: v2.0.7...v2.1.0
v2.0.7
- 每次扫描收藏前都调用一个简单接口检查登录状态,避免匿名用户走到后续流程,下载到 480p 的低清晰度视频。
- 支持在配置文件中自定义 NFO 文件中采用的视频时间。
可选值有两个:favtime 代表加入收藏夹的时间,pubtime 代表视频发布的时间。默认使用 favtime:
- 修复某些视频分页的 cid 过大导致的数值溢出。
What's Changed
- Update README.md - compose中指定user,附加简要说明 by @ky0utarou in #102
- feat: 每次执行前检查登录状态,避免凭据失效导致的非预期行为 by @amtoaer in #112
- ci: 使用较旧的 nightly 版本以避免语言修改导致的编译失败 by @amtoaer in #113
- feat: 支持自定义 NFO 文件中的视频时间,可选加入收藏夹的时间、视频发布的时间 by @amtoaer in #114
- fix: 修复类型错误导致的数值溢出 by @amtoaer in #115
Full Changelog: v2.0.6...v2.0.7
v2.0.6
该版本修复了如下问题:
如果视频已经下载完并成功合并,但视频下载状态还未保存至数据库中时程序被中断,继续运行时程序会尝试重新下载该视频并合并。
由于此时 ffmpeg 检测到目标文件已存在,需要手动在命令行中输入 'Y' 才能继续。但由于程序不会进行 stdin 操作,因此 ffmpeg 会卡在“是否 overwrite” 的询问无法继续运行。
该版本为 ffmpeg 的调用添加了 -y 参数,当目标文件已存在时默认进行覆盖,不会再询问。
What's Changed
Full Changelog: v2.0.5...v2.0.6