Releases: amtoaer/bili-sync
v2.0.0
v2.0.0 已发布!
bili-sync 已经完全由 Rust 重写,带来了更快的运行速度与更少的运行时占用。
需注意的是,出于项目功能和实现难度上的考量,该版本与 v1.x 的 Python 版本配置不兼容。
Docker 方面,为了区分不同的构建,避免意料外的升级,v2.0.0 版本开始采用 amtoaer/bili-sync-rs
的包名发布。
自该版本起,每次发版会在 Release 中携带预构建的各平台二进制包。如裸机使用该程序,需确认 FFmpeg 存在于 $PATH 中。
与 v1.x 版本的区别:
- 完全重写带来的各部分差异(配置文件格式、日志等)。
- 引入模板,支持自定义视频和分页的存储路径。
- 移除分页视频是否仅下载第一页(即
paginated_video
)的选项。 - 引入了一个实验性的画布比例对齐方案,基本解决了弹幕字体大小不一致的问题。
1.1.8
该版本主要进行了一些修复:
- 修复视频标题含有非法 xml 字符,导致标题不能识别的问题(如 &、<、>)
- 修复分 p 视频不存在第一帧图片时的异常问题(修复后会 fallback 到视频的封面)
- 修复开启分 p 后执行 refresh 命令导致历史视频也被刷新为分 p 的问题
Full Changelog: 1.1.7...1.1.8
1.1.7
该版本变动较多,请尽可能阅读完版本变更。以下逐个说明。
Fix
nfo 修复
单个视频的 nfo 标签应该设置为movie
,在之前版本错误地写为了 episodedetails
。
emby 自身做了额外的兼容可以正常识别,但极空间不行(#41),该版本修复了该问题。
可能的数据库错误修复
数据库批量操作可能会出现处理数量过多导致的 SQL 错误,该版本为所有批量操作设置 batch_size 以解决该问题。
Feature
支持分P视频下载
在设置中引入 paginated_video
选项,默认关闭,用于控制分页视频的下载。
关闭时保持原始行为,开启时对于多P视频(大于1),程序会构造 tvshow
和 episodedetails
类型的 nfo 信息,将分P模拟为电视剧处理。
需要澄清的是,分P视频是共享 bvid 的,这意味着没办法判断你收藏时收藏的是哪一P。该开关关闭时的“原始行为”是指始终尝试下载第一P,而非下载你收藏时的分P位置。
如果开启该选项,程序将总是会下载全部分P,对于部分上百P的视频或者单P过大的视频可能会出现耗时长、存储占用大的情况。还请用户自行选择是否开启。(例如我刚刚找了一个 4k 的埃尔登法环全流程,下载了 189G)。
对额外命令的分P适配
做了一些额外的修改,让check
命令可以适用于分P情况。其它几个命令大概检查了一下应该没什么要适配的,遇到问题可以报告。
支持指定下载时视频、音频流的选择策略
在该版本中引入了 stream 配置,用于指定下载时视频、音频流的选择策略,codecs 也迁移为了 stream 的子选项,迁移过程会在启动时自动完成。
以下是新的配置项:
"stream": {
"video_max_quality": 127,
"audio_max_quality": 30280,
"video_min_quality": 16,
"audio_min_quality": 30216,
"codecs": [
"av01",
"avc"
],
"no_dolby_video": false,
"no_dolby_audio": false,
"no_hdr": false,
"no_hires": false
}
这些选项的变量名很清楚,唯一值得注意的是视频质量和音频质量的取值,请参考以下枚举变量设置:
class VideoQuality(Enum):
"""
视频的视频流分辨率枚举
- _360P: 流畅 360P
- _480P: 清晰 480P
- _720P: 高清 720P60
- _1080P: 高清 1080P
- _1080P_PLUS: 高清 1080P 高码率
- _1080P_60: 高清 1080P 60 帧码率
- _4K: 超清 4K
- HDR: 真彩 HDR
- DOLBY: 杜比视界
- _8K: 超高清 8K
"""
_360P = 16
_480P = 32
_720P = 64
_1080P = 80
_1080P_PLUS = 112
_1080P_60 = 116
_4K = 120
HDR = 125
DOLBY = 126
_8K = 127
class AudioQuality(Enum):
"""
视频的音频流清晰度枚举
- _64K: 64K
- _132K: 132K
- _192K: 192K
- HI_RES: Hi-Res 无损
- DOLBY: 杜比全景声
"""
_64K = 30216
_132K = 30232
DOLBY = 30250
HI_RES = 30251
_192K = 30280
Full Changelog: 1.1.6...1.1.7
1.1.6
Full Changelog: 1.1.5...1.1.6
1.1.5
更新上游依赖,修复获取视频信息和下载视频时的异常报错。
Full Changelog: 1.1.4...1.1.5
1.1.4
该版本:
- 优化了 docker 镜像的体积
- 修复终止程序时不触发 cleanup 的错误
- 支持设置编码优先级(在 config.json 中修改 codec 列表,列表顺序越靠前,优先级越高)
"codec": [
"av01",
"avc",
"hev"
]
Full Changelog: 1.1.3...1.1.4
1.1.3
该版本:
- 新增 arm64 的 docker 镜像,并做了部分优化(thanks to @DDSDerek)
- 更新上游依赖,以修复 cookie 刷新失败的问题 (相关 pr:Nemo2011/bilibili-api#593)
- 更新版本管理工具,后续发版更加方便
最近比较忙,这周末尽量抽时间写写分p视频下载(咕咕咕
Full Changelog: 1.1.2...1.1.3
1.1.2
1.1.1
Full Changelog: 1.1.0...1.1.1
现在 refresh
开头的命令默认仅处理本地不存在的部分,可通过指定 --force
参数强制覆盖。(带上这个参数会先把所有本地内容删了再执行正常逻辑)