Open-source project
lanyeeee/bilibili-video-downloader avatar
lanyeeee/bilibili-video-downloader

bilibili-video-downloader: a desktop app built for media library upkeep

A Bilibili video downloader with a GUI, NFO scraping, ad marking, subtitle download and danmu (comment) download, making it easy to add videos to media libraries like Emby.

2,276 stars146 forksRustMIT

At a glance

What is it?
A Tauri 2 application in Rust and Vue that downloads Bilibili video, audio, subtitles, covers and danmaku, then writes NFO metadata so the result drops cleanly into Emby or Jellyfin.
Who is it for?
This is one of the more opinionated downloaders around, and the opinion is that a downloader should leave a media library better organised than it found it. NFO files, poster and fanart images, chapter markers embedded in the video file and ad segments tagged as skippable chapters are not features you find in a generic tool, and they are the reason someone would choose this over a browser extension.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 59 days ago.
What is it written in?
Mainly Rust, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • lanyeeee/bilibili-video-downloader2,276 ★ · +66
Star history
Repository2026-10-072026-10-22
lanyeeee/bilibili-video-downloader2.2k2.3k

66 Stars in the last 15 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

Built to feed a media server, not to fill a folder

The feature table is the argument for this tool, and it is organised differently from most downloaders because the target is a media library rather than a downloads directory. Alongside ordinary video and audio download, the list includes NFO scraping, cover download at original quality, subtitle download as `srt`, danmaku download, and chapter marking.

The last two are the interesting ones. Danmaku can be saved in the original `xml` and `json` formats or converted to styled `ass` subtitles with configurable appearance. Chapter information from the original video is written into the video file itself, so players that understand chapters can navigate it. Advertisement segments are also written in as chapters, which means a compatible player can skip them automatically.

NFO scraping pulls poster and fanart images alongside the metadata file. That single feature is what makes the difference between a folder of mp4 files and a library that Emby, Jellyfin or Kodi reads as a proper movie or episode, with artwork and metadata already in place.

The content types covered are broad: ordinary video including collections, multi part videos and paid uploads, anime series with main episodes, previews and related clips, courses, plus audio at lossless, Dolby Atmos, 192K, 132K and 64K. Quality options run from 8K through Dolby Vision, HDR, 4K and AI upscaling, across AVC, HEVC and AV1. Naming is templated from the bv id, title, part number, publish time and uploader nickname.

Search covers video by av or bv id, anime and courses by ep or ss id, uploader submissions and personal space by uid, and favourites by fid.

Tauri 2, Vue 3 and Rust, with a plugin system nobody should use yet

The stack is a Tauri v2 desktop app. The repository language is Rust, with the interface in Vue 3 and the Naive UI component library, and topics list `tauri`, `tauri-app`, `rust` and `vue`. The tree separates the three Rust workspaces from the frontend: `src-tauri/` is the application, `src-plugin/` is the plugin system, and `src/` holds the Vue code.

The plugin section of the README is the most cautionary text in the repository. The backend provides an in process dynamic library plugin system described as very immature. There are no security restrictions on it, by design, to give plugins maximum freedom, which means the security of any third party plugin cannot be guaranteed. The author's advice is to build from source instead, to use only open source plugins and review the code before compiling, and never to load a binary plugin someone else handed you.

For a single maintainer project that is a reasonable position rather than a failure. It also means the plugin directory exists mostly as an example surface right now.

The frontend `package.json` shows how disciplined the contribution flow is. The `check` script runs Prettier in check mode, ESLint with `--max-warnings=0` over `src`, `vue-tsc --noEmit`, and `cargo clippy` with `-D warnings` across all three Rust manifests. The `format` script formats with both Prettier and `cargo fmt`. Contributors are asked to open an issue or discussion before adding a feature, and pull requests should target the `develop` branch rather than the default one.

Three commands to build from source

The README is direct about why you might build rather than download. Unsigned portable builds are frequently flagged as viruses by Windows Defender, and for a personal project the author says this is close to unsolvable without buying a code signing certificate. The listed alternatives are to compile it yourself or to trust downloads from the releases page only, with an explicit warning that files shared through netdisks, email, social messaging, issue threads, forks or third party sites may genuinely be tampered with rather than merely misdetected.

The build itself needs Rust, Node and pnpm, then three commands:

bash
git clone https://github.com/lanyeeee/bilibili-video-downloader.git
cd bilibili-video-downloader
pnpm install
pnpm tauri build

That is a short list for a project with a Vue frontend and three Rust workspaces, and it is worth pausing over what it implies: the `tauri build` invocation drives both halves, so you need the Tauri CLI's platform prerequisites (the webview libraries and bundler tooling) in place before that last command works.

Login is available by cookie or QR code. The QR route was broken and fixed in v0.2.1, which is a useful reminder that the account side of any downloader breaks periodically when the upstream site changes.

What the release notes actually tell you

Three releases are visible: v0.1.1 on 2025-12-02, v0.2.0 on 2026-03-18 and v0.2.1 on 2026-08-01. Each carries the same antivirus warning at the top, which tells you the author considers it the first thing a new user needs to know.

The fixes underneath are more revealing. v0.2.1 fixed QR code login, tracked as issue 82. v0.1.1 fixed an intermittent HTTP 412 when fetching video links, and the note adds that if you never hit the problem there is no reason to update. That is the right way to describe a server side rate limiting change: it is a symptom of being noticed, not a defect in the app.

The FAQ section at the bottom of each release is more useful than the changelog. The account entry links a discussion about downloads coming out at only 360P or 480P, which is almost always a login state problem since low quality is what the site serves to signed out clients. The Windows entry states plainly that Windows 7 is unsupported, with the note struck through that Rust 1.78 and later dropped Win7 support, and there is a discussion link for crashes on launch. A separate discussion covers install failures on macOS.

The repository has 2,163 stars, 136 forks, 19 open issues, MIT licensing and a last push on 2026-08-25. It credits `bilibili-API-collect` for the unofficial API documentation, ffmpeg for muxing, `danmu2ass` for danmaku to subtitle conversion, and BilibiliSponsorBlock for the ad segment data.

Editorial conclusion

This is one of the more opinionated downloaders around, and the opinion is that a downloader should leave a media library better organised than it found it. NFO files, poster and fanart images, chapter markers embedded in the video file and ad segments tagged as skippable chapters are not features you find in a generic tool, and they are the reason someone would choose this over a browser extension. The costs are equally concrete: unsigned portable builds get flagged by Windows Defender, the plugin system is explicitly unsandboxed, and 19 open issues sit against a fast moving Tauri dependency tree. Install from the releases page, build from source if you would rather verify it, and set up the naming template before your first batch run rather than after.

Frequently asked questions

Is Bilibili legal in the USA?

That question is about the Bilibili platform rather than this repository, so it cannot be answered from the code. What the README does address is the tool's own terms: the disclaimer states that the tool is for study, research and exchange, that users bear the risk, and that the author is not responsible for loss, legal disputes or other consequences, including actions that violate law or third party rights.

Why does Windows Defender flag the portable build?

Because the binaries are unsigned, which the README treats as an unavoidable problem for a personal project. The author's advice is to build from source, or to download only from the repository's releases page and never from netdisks, email, social messaging, issue threads, forks or other sites, since files from those sources may be genuinely tampered with rather than just misdetected.

Why are my downloads only 360P or 480P?

That quality range is what Bilibili serves to clients that are not logged in, so the fix is usually authentication rather than a setting. The tool supports both cookie login and QR code login, and the README links a discussion on the topic alongside a note that low quality often appears without being asked for.

Does it work with Emby and Jellyfin?

That is the design target. The downloader writes NFO metadata plus poster and fanart images, which is what those servers read to build a library entry, and it can name files and directories from templates built from the bv id, title, part number, publish time and uploader nickname.

Can it skip advertisements in downloaded videos?

Ad segments are written into the video file as chapters rather than cut out of the stream, so a player that understands chapters can skip them. The video's own chapter information is embedded the same way, which also gives you navigation inside the file.

Official sources

  1. Issues
  2. lanyeeee/bilibili-video-downloader on GitHub
  3. License: MIT
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/lanyeeee-bilibili-video-downloader.svg)](https://hysenlabs.com/projects/lanyeeee-bilibili-video-downloader)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/lanyeeee-bilibili-video-downloader.svg)](https://hysenlabs.com/projects/lanyeeee-bilibili-video-downloader)