Bilibili Obsidian Clipper turns a video's subtitles into a note
在 B 站视频页抓取字幕,预览后可复制 Markdown、下载字幕文件,并一键写入 Obsidian(Local REST API)。
At a glance
- What is it?
- Bilibili Obsidian Clipper is an MIT licensed browser extension that reads the subtitle track of a Bilibili video page, shows it as Markdown, and writes it into an Obsidian vault through the Local REST API plugin, and its hard limit is stated up front, which is that a video with no subtitle track has nothing to clip.
- Who is it for?
- Bilibili Obsidian Clipper fits a reader who wants a searchable note of a talk without retyping the transcript, and the Obsidian side is done through a local plugin rather than a cloud service, which keeps the note in the vault you already manage. It does not fit anyone whose videos have no subtitle track, and it does not fit a workflow that needs the transcript of a video you cannot watch while logged in, because the extension reads the page as you see it.
- 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 63 days ago.
- What is it written in?
- Mainly JavaScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A clipper for one specific kind of page
Bilibili Obsidian Clipper is a browser extension that scrapes subtitles on a Bilibili video page, lets you preview them, and then copy them as Markdown, download the subtitle file, or write them straight into Obsidian through the Local REST API.
That is the whole product, and the limitation follows from the first word in the repository description. The documentation is explicit that only Bilibili videos with a subtitle track are supported, which in practice means the player shows a subtitles option, usually because the author uploaded an external subtitle or the platform generated an AI one. A video without a subtitle track has nothing to fetch, and no amount of configuration changes that.
The extension is MIT licensed and published in the three browser stores that matter, with the Chrome Web Store listing as the homepage, an Edge add-ons entry and a Firefox add-on. The store listings are the recommended download route, and the README carries download and Chrome user badges, so this is a project with an audience rather than a script someone wrote for themselves.
The data flow is worth stating precisely because the extension is careful about it. The extension reads the page in your own browser, using the session you are already logged in with, and writes only to your own Obsidian vault through a local API. Nothing goes through a third party server.
Four core features, then a reading view and an AI sidebar
The feature list starts with the four things the extension exists to do. It scrapes Bilibili video subtitles and automatically recognises the current part of a multi-part video. It shows a preview of the subtitles and lets you copy them as Markdown. It downloads the subtitle file, in srt or txt format. And it saves to Obsidian through the Local REST API.
Two later additions are versioned in the documentation, and the version markers tell you when they arrived.
The reading view arrived in v1.0.18. It is an immersive layout with support for typography adjustment, theme switching and subtitle synchronisation. Its limitation is stated too: the reading view on the watch-later page is not yet polished, and the recommendation is to use it on an ordinary video page.
The AI sidebar arrived in v1.1.0. It supports lightweight conversation about the subtitles of the current video, and it can also be used as a general AI chat sidebar on an ordinary web page. It includes conversation history, preset prompts and model switching, and the documentation positions it for quickly summarising, organising and distilling video content.
Both features are worth reading as a progression. The extension started as a transcript grabber, became a reading experience, and then added a summarisation layer, which is a sensible order, because each step builds on the text the previous one produced.
The Obsidian side is a local plugin and three settings
The Obsidian integration is configured on the Obsidian side first, and the documentation gives four steps.
You install and enable the Local REST API with MCP plugin from the Obsidian community plugin market. In the plugin settings you tick Enable Non-encrypted (HTTP) Server. You copy the API key from the plugin page. And then, in the extension's own settings page, you fill in the Local REST API address, the API key and the notes folder.
The plugin name is the useful part of that list. Local REST API with MCP is a community plugin that exposes the vault over a local HTTP interface, and the MCP suffix indicates it also speaks the Model Context Protocol, which means the same local interface can be driven by an assistant rather than only by this extension.
That the extension talks to a local HTTP server rather than to a proprietary Obsidian API is the design decision that matters. Obsidian has no public API for writing notes from outside, so any tool that wants to save into a vault has to go through a plugin that opens one, and this one picked the community plugin that is already widely used and that also exposes an MCP interface. The tradeoff is that two pieces have to be installed and kept in step, and the enabling of the non-encrypted server is a security decision the user has to make deliberately.
Installing the extension, and the upgrade trap
The manual installation path is the one the documentation is written for, and it differs per browser.
For Chrome and Edge you download the latest `*-chrome.zip` from the Releases page, unzip it into any local directory, open the extension management page at `chrome://extensions/` or `edge://extensions/`, switch on developer mode, click the option to load an unpacked extension, and select the unzipped directory.
For Firefox you download the `*-firefox.zip`, unzip it, open `about:addons`, click the gear icon in the top right, choose the option to debug add-ons, and load the temporary add-on by selecting the `manifest.json` file from the unzipped folder.
The upgrade note is the part that saves a user from a bad afternoon. If you installed from GitHub manually, you are advised to replace the files inside the existing extension directory and then click reload on the extension management page, and explicitly not to remove the old extension first, because doing so can lose your local settings, your AI conversation history and your saved key.
The Firefox path has the same fragility with a different cause. Temporary add-on loading is described as being more suitable for development and debugging, and removing and reloading the add-on can lose local settings and the AI conversation history. The upshot is that the Firefox route is a development convenience rather than a daily driver, and the store listing is the right way to install it for regular use.
The project is explicitly meant to be taken apart and rebuilt
There is a section on the project that is unusual for a small extension, and it is the one that best explains the codebase. It tells the reader to use their own AI programming agent to modify the project for their own workflow.
The steps are: download the source from GitHub, either as a ZIP or with git clone. Open the project folder with Cursor, Codex, Claude Code or a similar tool. Then describe the change you want in as much detail as you like, with three examples given, changing the default save folder to match your Obsidian directory structure, adding a new frontmatter property, and adjusting the AI's initial question and the format of the saved note. When the edits are done, you load the `extension/` folder locally from the browser's extension management page, open a Bilibili video page, and test whether subtitle capture, the AI conversation and the Obsidian write all still work.
The project structure section explains what you are looking at. The repository root holds the README and the LICENSE, and the `extension/` directory holds the extension source, with the manifest, the JavaScript, the CSS and the icons, and there are also `scripts/` and `docs/` directories.
The advice at the end is the sensible part: test locally before you replace the version you use daily, and keep a copy of the original so you can roll back. The example of adding a frontmatter property is the one that shows the intent, because frontmatter is what makes a note queryable in Obsidian, and a tool that writes notes without it produces a folder of text rather than a database.
The disclaimer says more about the design than the feature list
The final section of the documentation is a user responsibility clause, and it is the clearest statement of how the extension works.
The tool only obtains data when the user is already logged in to Bilibili and has access, all data is obtained through the user's own browser and cookies and does not pass through any third party server, the tool does not store or distribute any Bilibili content, and all consequences of using it are the user's own responsibility, with the request to respect the platform's user agreement and the relevant laws and regulations.
Every clause in that paragraph is a design constraint, and reading it as one explains the extension's shape. Fetching through your own session means no credential handling and no server to operate, and it also means the extension only sees what you can see, so a video you cannot access produces nothing. Not storing content means the extension is a pipe rather than a library, and the only place the text ends up is the vault you chose.
The one place the text does end up outside your vault is the AI sidebar, and that is the part to think about before enabling it, since a conversation about a video's subtitles is a conversation with a model provider. The disclaimer does not spell that out, so it is worth checking the extension's settings for which model is configured and where requests go before you use the feature on anything sensitive.
Release cadence, no tags, and a Chinese-first documentation set
The releases show a project that has been adding features quickly. The recent tags are v1.1.3 published on 2026-07-28, v1.1.0 on 2026-06-21 and v1.0.18 on 2026-06-09, so the 1.1 line with the AI sidebar arrived in June 2026 and has been revised since, and the reading view arrived in the 1.0.18 release earlier the same month.
The repository is not archived and the last push was on 2026-08-21, so the work continues between releases. The releases page lists v1.1.3, v1.1.0 and v1.0.18 as formal releases.
The documentation itself is written in Chinese, which is normal for a project serving a Chinese platform and a Chinese note-taking community, and it shapes who the project is for: someone who watches Bilibili, keeps notes in Obsidian, and reads Chinese documentation. A reader who does not will still get the behaviour from the store listing and the source, but the operational details, the exact setting names and the troubleshooting are all in the Chinese text.
The last thing in the README is a request for support, with a note that tips are welcome to keep the development going, and a video tutorial linked for the walkthrough. For an extension whose main risk is misconfiguration rather than complexity, that tutorial is worth more than any amount of documentation.
Editorial conclusion
Bilibili Obsidian Clipper fits a reader who wants a searchable note of a talk without retyping the transcript, and the Obsidian side is done through a local plugin rather than a cloud service, which keeps the note in the vault you already manage. It does not fit anyone whose videos have no subtitle track, and it does not fit a workflow that needs the transcript of a video you cannot watch while logged in, because the extension reads the page as you see it. Before installing it, enable the Local REST API plugin in Obsidian and check the extension settings for the address, the key and the note folder, and if you are upgrading from a manual GitHub install, replace the files in place rather than removing the old extension, or you will lose your settings and your saved key.
Frequently asked questions
What does the Bilibili Obsidian Clipper extension do?
It scrapes the subtitles of a Bilibili video page, automatically recognises the current part of a multi-part video, previews them, and lets you copy them as Markdown, download the subtitle file in srt or txt, or save them into Obsidian through the Local REST API.
Which videos can the extension get subtitles from?
Only videos that have a subtitle track, which usually means the player shows a subtitles option because the author uploaded an external subtitle or the platform provided an AI subtitle. A video with no subtitle track cannot be fetched.
How do I set up the Obsidian side?
Install and enable the Local REST API with MCP plugin from the Obsidian community plugin market, tick Enable Non-encrypted (HTTP) Server in its settings, copy the API key from the plugin page, and then enter the address, the key and the notes folder in the extension's own settings.
How do I install the extension in Chrome or Firefox?
Download the latest zip from the GitHub Releases page, unzip it, then in Chrome or Edge open chrome://extensions/ or edge://extensions/, enable developer mode and load the unpacked extension. In Firefox open about:addons, use the gear icon to debug add-ons and load the temporary add-on by selecting its manifest.json.
What happens to my settings when I upgrade a manual install?
The documentation advises replacing the files inside the existing extension directory and clicking reload rather than removing the old extension first, since removing it can lose local settings, the AI conversation history and the saved key. Firefox temporary add-on loading can lose settings too.
Official sources
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.
[](https://hysenlabs.com/projects/haixiong1997-bilibili-obsidian-clipper)Was this useful?