Bilibili Video Reader v2.1
A read-only ChatGPT/Codex plugin built as Skill + stateless MCP server, now targeting Cloudflare Workers so it can run without Render or a credit card.
MCP tools
get_bilibili_video_parts(url)— title, author, description, all P numbers and CIDs.get_bilibili_part_transcript(url, part, language, max_chars)— official/AI subtitle tracks and timestamped transcript for one P.
The Worker calls Bilibili's metadata/player/subtitle endpoints directly. No video download is needed for subtitle mode.
Deploy to Cloudflare Workers
Dashboard path
- Create/sign in to a Cloudflare account.
- Open Workers & Pages → Create → Import a repository (wording may vary slightly).
- Connect GitHub and select
limuzi23/bilibili-video-reader-mcp. - Keep the repository root as the root directory.
- Cloudflare should detect
wrangler.jsoncautomatically. - Use the default deploy command:
npx wrangler deploy. - Deploy.
The Worker name must remain bilibili-video-reader-mcp because it matches wrangler.jsonc.
After deployment, Cloudflare will give you a URL similar to:
https://bilibili-video-reader-mcp.<your-subdomain>.workers.dev
Health check:
https://bilibili-video-reader-mcp.<your-subdomain>.workers.dev/health
MCP endpoint:
https://bilibili-video-reader-mcp.<your-subdomain>.workers.dev/mcp
For public subtitles, no runtime secret is required.
Optional private login state
If a subtitle is only visible while logged in, the Worker can read an optional Cloudflare secret named BILI_COOKIE. Configure it only inside Cloudflare's encrypted Variables and Secrets UI. Never paste raw cookies into ChatGPT and never commit them to GitHub.
Connect to ChatGPT
- ChatGPT → Settings → Security and login → enable Developer mode.
- Open Plugins, press
+, and register the deployed URL ending in/mcp. - Copy the technical ID from the created connection. It begins with
plugin_asdk_app_. - Run
python scripts/configure_plugin.py plugin_asdk_app_YOUR_IDif the plugin packaging flow requires an app reference.
The OpenAI plugin manifest lives at .codex-plugin/plugin.json and the workflow Skill is in skills/bilibili-video-reader/.
Local development
npm install
npm run dev
Deploy from a local terminal if desired:
npm run deploy
Endpoints:
GET /health
MCP /mcp
Architecture
The current production path is:
ChatGPT Skill
↓
Cloudflare Workers /mcp
↓
Bilibili metadata/player/subtitle APIs
↓
structured multi-P metadata + timestamped subtitles
The old server/ Python implementation remains in the repository only as a reference/legacy implementation; Cloudflare does not use it.
Current scope
v2.1 focuses on multi-P metadata + official/AI subtitles. It does not yet download audio/video, run Whisper ASR, or OCR source code from video frames. Those are planned only after this subtitle path is verified end-to-end.