MCPcopy Index your code
hub / github.com/amtoaer/bili-sync

github.com/amtoaer/bili-sync @v2.11.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.11.1 ↗ · + Follow
774 symbols 1,514 edges 144 files 94 documented · 12%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

bili-sync

简介

[!NOTE] 查看文档加入 Telegram 交流群

bili-sync 是一款专为 NAS 用户编写的哔哩哔哩同步工具,由 Rust & Tokio 驱动。

效果演示

管理页

管理页

媒体库概览

媒体库概览

媒体库详情

媒体库详情

播放(使用 infuse)

播放

文件排布

文件

功能与路线图

  • [x] 使用用户填写的凭据认证,并在必要时自动刷新
  • [x] 支持收藏夹与视频列表/视频合集的下载
  • [x] 自动选择用户设置范围内最优的视频和音频流,并在下载完成后使用 FFmpeg 合并
  • [x] 使用 Tokio 与 Reqwest,对视频、视频分页进行异步并发下载
  • [x] 使用媒体服务器支持的文件命名,方便一键作为媒体库导入
  • [x] 当前轮次下载失败会在下一轮下载时重试,失败次数过多自动丢弃
  • [x] 使用数据库保存媒体信息,避免对同个视频的多次请求
  • [x] 打印日志,并在请求出现风控时自动终止,等待下一轮执行
  • [x] 提供多平台的二进制可执行文件,为 Linux 平台提供了立即可用的 Docker 镜像
  • [x] 支持对“稍后再看”内视频的自动扫描与下载
  • [x] 支持对 UP 主投稿视频的自动扫描与下载
  • [x] 支持限制任务的并行度和接口请求频率
  • [x] 支持单个文件的分块并行下载
  • [x] 支持使用 Web UI 配置,查看并管理视频、视频源

参考与借鉴

该项目实现过程中主要参考借鉴了如下的项目,感谢他们的贡献:

Extension points exported contracts — how you extend this code

ToNFO (Interface)
(no doc) [4 implementers]
crates/bili_sync/src/utils/nfo.rs
ServerEvent (Interface)
(no doc)
web/src/lib/ws.ts
Evaluatable (Interface)
(no doc) [4 implementers]
crates/bili_sync/src/utils/rule.rs
ClientEvent (Interface)
(no doc)
web/src/lib/ws.ts
FieldEvaluatable (Interface)
(no doc) [4 implementers]
crates/bili_sync/src/utils/rule.rs
ApiResponse (Interface)
(no doc)
web/src/lib/types.ts
VideoSource (Interface)
(no doc) [4 implementers]
crates/bili_sync/src/adapter/mod.rs
VideosRequest (Interface)
(no doc)
web/src/lib/types.ts

Core symbols most depended-on inside this repo

clone
called by 69
crates/bili_sync/src/api/routes/ws/log_helper.rs
as_ref
called by 36
crates/bili_sync_entity/src/custom_type/upper_vec.rs
request
called by 33
crates/bili_sync/src/bilibili/client.rs
error_for_status_ext
called by 30
crates/bili_sync/src/bilibili/mod.rs
validate
called by 24
crates/bili_sync/src/bilibili/mod.rs
ok
called by 22
crates/bili_sync/src/api/wrapper.rs
read
called by 21
crates/bili_sync/src/config/versioned_cache.rs
default
called by 18
crates/bili_sync/src/config/item.rs

Shape

Method 343
Function 162
Class 139
Interface 66
Enum 64

Languages

Rust82%
TypeScript18%
Python1%

Modules by API surface

web/src/lib/types.ts49 symbols
web/src/lib/api.ts40 symbols
crates/bili_sync/src/utils/status.rs27 symbols
crates/bili_sync/src/api/response.rs26 symbols
crates/bili_sync/src/bilibili/credential.rs24 symbols
crates/bili_sync/src/bilibili/analyzer.rs22 symbols
web/src/lib/ws.ts21 symbols
crates/bili_sync/src/api/request.rs18 symbols
crates/bili_sync/src/workflow.rs17 symbols
crates/bili_sync/src/api/routes/ws/mod.rs17 symbols
crates/bili_sync/src/bilibili/collection.rs16 symbols
crates/bili_sync/src/task/video_downloader.rs15 symbols

For agents

$ claude mcp add bili-sync \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page