Batch links, multi-P aware
Paste several URLs, one per line, and pick the result of each job from one preview. Append ?p=2 to a Bilibili URL to target a specific part.
Open-source desktop app · macOS & Windows
Paste a public Bilibili or YouTube link. Subquill fetches the captions, sends them to any OpenAI-compatible model you configure, and streams back a structured Markdown note with timestamps you can copy, export, or auto-save to a folder.
Runs on your machine. Bring your own OpenAI-compatible key — Subquill never touches a server of its own.
Summary
One paragraph that orients you: what the video covers and the argument it makes, written only from the caption lines.
Section breakdown
What it does
Subquill handles caption fetching, transcript chunking, generation and export end to end — with an honest preview of what it found before it spends a single token.
Paste several URLs, one per line, and pick the result of each job from one preview. Append ?p=2 to a Bilibili URL to target a specific part.
Before generating, Subquill previews title, duration, part info and available subtitle tracks — including AI and login-gated Bilibili tracks, and warns when a SESSDATA cookie is required.
Point Subquill at any base URL that speaks the OpenAI chat format — hosted providers or local servers — pick a model, and verify with one-click connection testing.
Long transcripts are chunked, generated per chunk and merged. Markdown renders live in a safe preview that strips raw HTML, so nothing injected can execute.
Copy the finished note as Markdown, save it anywhere through the native dialog, or set a notes folder once and every finished note is written there automatically.
The API key and Bilibili cookie are written to local credential files and handled entirely by the Rust core. The UI only ever shows a “configured” placeholder — never the value.
Each job reports percentage and stage with an honest “long videos take minutes” hint, and a running generation can be cancelled without closing the app.
Switch the interface between zh and en or follow the system locale. Notes are generated in the same language as the transcript and your locale.
The flow
Drop one or many Bilibili / YouTube URLs into the workspace. Subquill parses them locally.
The Rust core queries official platform APIs for metadata and caption tracks — cookies go to bilibili.com only, never to a third party.
Timestamped subtitle chunks are sent to your configured model, which writes a Summary plus Section breakdown with hh:mm:ss ranges, streamed back live.
Copy the Markdown, save it as .md, or let Subquill auto-write every finished note into your notes folder.
Integrations
Subquill is the plumbing between three things you already control: public captioned videos, an OpenAI-compatible endpoint, and wherever you keep your notes.
Bilibili
Public + AI & login-gated captions (optional SESSDATA)
YouTube
Public caption tracks, no account login
OpenAI-compatible endpoints
Any base URL + model name you own
Local servers
Works with any server exposing the chat completions format
Markdown
Summary + timestamped section breakdown
.md files
Manual export or auto-save to a folder
The note shape
Every note lands in the same shape — a Summary up top, then a Section breakdown whose titles carry hh:mm:ss ranges taken straight from the caption lines.
## Summary
One paragraph that orients you: what the video covers, the argument it makes, and who it is for — no invented facts beyond the transcript.
## Section breakdown
### Core concepts (00:00:00 - 00:04:32)
What this stretch of the video establishes, in the video's own language, so you can jump back to the exact minute.
### Worked example (00:04:32 - 00:11:07)
The demo walked through step by step, plus the caveats the speaker raised mid-way.
Privacy
Subquill runs no backend. Onboarding credentials are written straight to local files by the Rust core and the React layer is never given the plaintext values after save — the UI only shows “configured”. Outbound network traffic goes where you told it to: the platform APIs and your own LLM endpoint.
where secrets live
local only
| File | macOS / Linux | Windows |
|---|---|---|
| settings.json | ~/.config/subquill/ | %APPDATA%\subquill\ |
| auth.json | ~/.local/share/subquill/ | %LOCALAPPDATA%\subquill\ |
FAQ
Subquill AMP
Subquill AMP is our hosted OpenAI-compatible gateway. Sign up, top up, and paste the base URL into Subquill — no need to juggle provider keys. Pay as you go, cancel any time.
Clone Subquill, build it locally, drop in your model endpoint, and turn your next Bilibili or YouTube video into a Markdown note you actually keep.
Build from source