diff --git a/README.md b/README.md new file mode 100644 index 0000000..b0bd20b --- /dev/null +++ b/README.md @@ -0,0 +1,105 @@ +![bili-sync](https://socialify.git.ci/amtoaer/bili-sync/image?description=1&font=KoHo&issues=1&language=1&logo=https%3A%2F%2Fs2.loli.net%2F2023%2F12%2F02%2F9EwT2yInOu1d3zm.png&name=1&owner=1&pattern=Signal&pulls=1&stargazers=1&theme=Light) + +## 简介 + +> 新版本已使用 Rust 重构,对于 v1.x 的 Python 版本,请前往 [v1.x](https://github.com/amtoaer/bili-sync/tree/v1.x) 分支查看。 + +> [!CAUTION] +> 当前新版本尚不稳定,可能会有未告知的不兼容更改,请优先使用 Python 版本。 + + +为 NAS 用户编写的 BILIBILI 收藏夹同步工具,可使用 EMBY 等媒体库工具浏览。 + +支持展示视频封面、名称、加入日期、标签、分页等。 + +## 效果演示 + +![概览](./assets/overview.png) + +![详情](./assets/detail.png) + +## 配置文件 + +对于配置文件的前五项,请参考[凭据获取流程](https://nemo2011.github.io/bilibili-api/#/get-credential)。 + + +程序默认会将配置文件存储于 `~/.config/bili-sync/config.toml`,数据库文件存储于 `~/.config/bili-sync/data.sqlite`,如果发现不存在则新建并写入初始配置。 + +配置文件加载时会进行简单校验,对于默认的空配置,校验将会报错,程序将会终止运行。 + +## 配置文件示例与说明 + +```toml +video_name = "{{title}}" +page_name = "{{bvid}}" +interval = 1200 + +[credential] +sessdata = "" +bili_jct = "" +buvid3 = "" +dedeuserid = "" +ac_time_value = "" + +[filter_option] +video_max_quality = "Quality8k" +video_min_quality = "Quality360p" +audio_max_quality = "QualityHiRES" +audio_min_quality = "Quality64k" +codecs = [ + "AV1", + "HEV", + "AVC", +] +no_dolby_video = false +no_dolby_audio = false +no_hdr = false +no_hires = false + +[favorite_list] +52642258 = "/home/amtoaer/HDDs/Videos/Bilibilis/混剪" +``` + +`video_name` 和 `page_name` 支持使用模板,在执行时会被动态替换为对应的内容。 + +video_name 支持设置 bvid(视频编号)、title(视频标题)、upper_name(up 主名称)、upper_mid(up 主 id)。 + +page_name 除支持 video 的全部参数外,还支持 ptitle(分 P 标题)、pid(分 P 页号)。 + +对于每个 favorite 的下载路径,程序会在其下建立如下的文件夹: +1. 单页视频: +```bash +├── {video_name} +│   ├── {page_name}.mp4 +│   ├── {page_name}.nfo +│   └── {page_name}-poster.jpg +``` +2. 多页视频: +```bash +├── {video_name} +│   ├── poster.jpg +│   ├── Season 1 +│   │   ├── {page_name} - S01E01.mp4 +│   │   ├── {page_name} - S01E01.nfo +│   │   ├── {page_name} - S01E01-thumb.jpg +│   │   ├── {page_name} - S01E02.mp4 +│   │   ├── {page_name} - S01E02.nfo +│   │   └── {page_name} - S01E02-thumb.jpg +│   └── tvshow.nfo +``` + +对于 filter_option 的可选值,请前往 [analyzer.rs](https://github.com/amtoaer/bili-sync/blob/main/src/bilibili/analyzer.rs) 查看。 +## 路线图 + +- [x] 凭证认证 +- [x] 视频选优 +- [x] 视频下载 +- [x] 支持并发下载 +- [x] 支持作为 daemon 运行 +- [x] 构建 nfo 和 poster 文件,方便以单集形式导入 emby +- [x] 支持收藏夹翻页,下载全部历史视频 +- [x] 对接数据库,提前检查,按需下载 +- [ ] 提供简单易用的打包(如 docker) +- [ ] 更好的错误处理 +- [ ] 更好的日志 +- [ ] 请求过快出现风控的 workaround \ No newline at end of file diff --git a/assets/detail.png b/assets/detail.png new file mode 100644 index 0000000..f5edfd8 Binary files /dev/null and b/assets/detail.png differ diff --git a/assets/overview.png b/assets/overview.png new file mode 100644 index 0000000..b395262 Binary files /dev/null and b/assets/overview.png differ