// the find
amtoaer/bili-sync
由 Rust & Tokio 驱动的哔哩哔哩同步工具
bili-sync is a self-hosted Bilibili download daemon for NAS users who want their favorites, watch-later lists, and UP主 subscriptions automatically synced to a local Emby or Jellyfin library. It runs on a schedule, fetches new videos concurrently, merges streams with FFmpeg, and writes NFO metadata so media servers pick everything up automatically. The web UI is a SvelteKit frontend for configuration and monitoring.
Rust + Tokio is the right call here — chunked parallel segment downloads, rate-limit backoff, and concurrent video processing are exactly what async I/O handles well without the thread overhead you'd have in a Python equivalent. The migration history (12+ SeaORM migrations) shows the schema has grown deliberately rather than been hacked in-place. Danmaku-to-ASS conversion is built in, which is a real differentiator over simpler download scripts — you get scrolling bullet comments as subtitles in Jellyfin. The anti-rate-limit behavior is pragmatic: it detects Bilibili's throttle signals and bails out of the current cycle rather than hammering and getting the IP blocked.
The entire value proposition collapses the moment Bilibili makes a non-trivial API change. The project depends on reverse-engineered, community-maintained API documentation — there is no official client API, so any platform update is a potential breakage with no advance notice. FFmpeg is an implicit hard dependency with no fallback: if it's missing or the wrong version, merging silently fails. The credential model relies on browser cookies that expire, and Bilibili's anti-bot posture is tightening; the 'wait until next cycle' failure mode means you find out about auth failures only by noticing you haven't gotten new videos. Documentation is entirely in Chinese, which is fine for the target audience but limits the Western NAS community that would otherwise be a natural fit for this tool.