Releases: amtoaer/bili-sync
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
v2.0.5
- 替换日志库,现在日志的时间将读取本地时间,而非固定为 UTC 时间。
- 调低并发下载量与 read_timeout 值,尝试缓解下载速度慢时出现的阻塞现象。
What's Changed
- Dockerfile - 保留tzdata by @ky0utarou in #91
- chore: 使用 tracing 替换 env_logger by @amtoaer in #93
- chore: 减少并发下载量与 read_timeout 值 by @amtoaer in #96
New Contributors
- @ky0utarou made their first contribution in #91
Full Changelog: v2.0.4...v2.0.5
v2.0.4
What's Changed
Full Changelog: v2.0.3...v2.0.4
v2.0.3
手写的 ChangeLog
该版本主要引入了一个功能,额外拷贝一份 poster 作为 fanart,方便 emby 官方客户端或一些第三方程序使用该图作为背景。
然而,已经下载过的视频不会触发这个拷贝过程,因此我写了一个简单的 python 脚本来对已有的视频做这个操作,该脚本位于源码仓库的 scripts/2.0.3_add_fanart.py
,使用方法:
python 2.0.3_add_fanart.py <path1> <path2> ...
脚本内注释有对脚本的更多说明。
以下是 emby 官方 web 端的效果图,可以看到 emby 会读取 fanart 作为详情页的背景图:
What's Changed
- refactor: 为 serde_json::Value 实现 validate trait,避免重复代码 by @amtoaer in #82
- feat: 拷贝一份 poster 作为 fanart 使用 by @amtoaer in #84
- build: 添加 justfile,方便本地构建镜像 by @amtoaer in #85
Full Changelog: v2.0.2...v2.0.3