Get content from Bilibili videos: official subtitles, danmaku (density/peaks/sample), comments. When no subtitles exist (no 投稿字幕), fall back to downloading audio + ASR transcription via FunASR.
SkillScore82Maintained
Automatic
◆Coding pack
Last verified 8/22/2026
What it changes
Passed 15 of 18 test cases with the skill, and 7 of 18 without it.
Without skill41%
With skill82%
Checks it passed that the model alone missed
Uses the stream copy flag -c copy
Calls arrayBuffer() on the Blob object
Includes Referer header set to Bilibili
and 9 more in the full report
9 fixed9 passed either way4 still failing0 broke
Pass-rate lift
+41 pp
Tokens
+183%
Agent turns
0%
Response time
-49%
Model gemini-3.6-flashMeasured 8/22/2026v118 of 22 cases passed with skill · 18 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 8 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 8
Prompt
When registering custom data dependencies with window.bilibiliEvolved.pluginApis for 'downloadVideo.assets' before polling for providers, what initial payload argument must be supplied to prevent provider callbacks from crashing?
What was checked, without and with the skill
Checked
Without skill
With skill
Passes an empty array as the initial registered data value
Missed
Passed
case-16 · gemini-3.6-flash · 8/22/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md419 linessingle file
Bilibili Page Reader
Core Rules
Browser access via kimi-webbridge for page state, login-only data, Bilibili Evolved (BE) providers.
Do not click BE download buttons. Call providers directly via evaluate.
Always use a named session. A session-less evaluate may land on a different tab and silently return wrong data.
Network calls outside the browser (audio download, playurl API) use Node.js — PowerShell's curl.exe and Python's requests both get blocked by Bilibili CDN TLS fingerprinting on this platform.
Workflow Overview
┌─ BE downloadSubtitles provider ──→ 投稿字幕 (timestamps)
│
BiliBili video ───┼─ BE downloadDanmaku provider ────→ danmaku density/peaks/sample
│
└─ No subtitles? ──→ Audio transcription fallback
1. Get audio stream URL (Node.js → playurl API)
2. Download .m4s audio
3. ffmpeg → .m4a
4. FunASR paraformer-zh → SRT with timestamps
Phase 1: Subtitles (preferred — via BE)
Use the one-shot evaluate below. It returns both subtitles and danmaku in a single call.