Documentation
Using Subquill
A practical guide to setup, generating notes, exporting Markdown, and where your data lives. For source and releases, see the GitHub repository.
Overview
Subquill is a desktop app for macOS and Windows, built on Tauri 2 (a React front end over a Rust core). It generates study notes from the official captions of public Bilibili and YouTube videos using any OpenAI-compatible model you configure.
- Paste one or many video URLs — Bilibili (BV links) or YouTube
- Fetches real caption tracks, including AI and login-gated Bilibili tracks when a SESSDATA cookie is configured
- Writes a Markdown note: a Summary plus a Section breakdown with hh:mm:ss timestamps from the captions
- Copy, export .md, or auto-save every finished note into a folder of your choice
Getting started
Clone Subquill, build it locally, and open it. The first launch walks you through onboarding:
- Base URL of an OpenAI-compatible API
- Model name
- API key — saved to disk immediately and never echoed back in the UI
- Interface language: Chinese, English, or follow the system
- Optional Bilibili SESSDATA cookie, only needed for login-gated or some AI caption tracks
Subquill is source-only — no pre-built installers are published. Clone the repository, install Node.js LTS and Rust, meet the Tauri 2 prerequisites for your OS, then run npm install and npm run tauri build.
Generating notes
In the workspace, paste one video URL per line and press Generate. Before the job starts, Subquill previews each video's metadata so you know what it found:
- Video title and duration, and which part (P) you are targeting — append ?p=2 to a Bilibili URL to pick a part
- “Caption tracks detected” when subtitles are available
- A cookie hint when a Bilibili video needs SESSDATA, plus a stale-cookie warning when the stored value no longer works
Long transcripts are split into chunks, generated chunk by chunk, and merged. Progress is shown as a percentage per job with a cancel button; a finished preview can be switched back to when you generated several links in one batch.
Copying & exporting
- Copy Markdown — puts the note on your clipboard
- Save as .md — opens the native save dialog
- Reveal in folder — jumps to the auto-saved file, if a notes folder is configured
- Notes preview is sanitized Markdown: raw HTML is never rendered
Settings
Settings lets you update the model endpoint and re-test the connection, choose the notes save folder, and clear stored secrets:
- Clear API key — you will have to enter it again before generating
- Clear cookie — some Bilibili videos will no longer be fetchable
- Clear notes folder — stops auto-saving; existing files are untouched
Where things are stored
| File | macOS / Linux | Windows |
|---|---|---|
| settings.json | ~/.config/subquill/settings.json | %APPDATA%\subquill\settings.json |
| auth.json | ~/.local/share/subquill/auth.json | %LOCALAPPDATA%\subquill\auth.json |
auth.json holds the API key and the optional Bilibili SESSDATA. Both files live outside the repository and outside the app bundle — never commit them anywhere.
Privacy & network
- Subquill operates no backend services; there is no telemetry and no account
- Caption requests go to Bilibili / YouTube APIs directly from your machine
- Note generation sends transcript chunks only to the model endpoint you configure
- The SESSDATA cookie is used exclusively against Bilibili's official API
- After onboarding, secrets are kept in the Rust layer; the UI shows “configured” placeholders and never the plaintext value
Updates
Subquill is distributed as source only. Pull the latest code from GitHub and rebuild locally to update — there are no pre-built installers or in-app binary updates.