Install any skill in seconds. Free to start, no credit card required.
Get Started Free →B站视频决策助手。当用户发送B站视频链接时,拉取视频信息、字幕正文、弹幕、热评与官方AI小结, 由脚本预消化为统计信号,再生成"值不值得看/看哪段/评论共识争议"的决策导向总结。 触发条件:用户发送B站视频链接(BV号、AV号或完整URL)时自动触发。
.claude/skills/kiakun-collab-bilibili-video-summary/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | 33% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 28% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 16% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 38% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 33% | 0% |
你(Claude)是总结者,脚本只负责取素材。 脚本以最低成本拿全原始文本素材 + 预算好的统计信号, 输出一份 ≤15KB 的固定量级 JSON;你据此写出帮助用户快速判断长视频价值的报告。
bashpython scripts/bilibili_digest.py "<B站链接 / BV号 / AV号>"
--page N(分P,默认1)、--transcript full|head|none(字幕正文,默认full,超8000字自动截头部)、--skip-comments、--skip-uploader、--no-cache。
python scripts/bilibili_whisper.py "<链接>" [--sample --peaks peaks.json] [--whisper-model small](需系统 ffmpeg)。~/.cache/bilibili-summary/)与限速;stdout 是 UTF-8 JSON,进度走 stderr。jsonc{ "ok": true, "error": null, // ok=false 时仅含 error{code,message} "video": { "bvid","aid","title","desc","duration_sec","pubdate","tname","pages_total","current_page","url","tags" }, "uploader": { "uid","name" }, "uploader_profile": { "sign","official","followers","recent_videos":[{title,play,pubdate}] }, // 可能为 null "uploader_profile_error": null, // 画像抓取失败时的原因串(区分"UP无数据"与"接口失败/wbi风控") "stats": { "view","like","coin","favorite","reply","danmaku","share" }, "value_signals": { "like_rate","fav_rate","coin_rate","danmaku_per_min","reply_rate","hint" }, "transcript": { "source":"subtitle|whisper|ai_conclusion_fallback|none", "subtitle_type":"cc|ai|null", "text":"...", "truncated":false, "segments_sample":[{t,text}] }, "auxiliary": { "ai_conclusion": { "available","source":"bilibili_official_ai","outline":[{title,timestamp}],"summary" } }, "danmaku_analysis": { "total","top_words":[{word,count}],"density_buckets":[],"bucket_sec", "peaks":[{t_sec,count,samples:[]}],"pbp_available" }, "hot_comments": [{ "rpid","user","text","likes","reply_count","is_pinned","up_replied","sub_replies":[{user,text,likes}] }], "meta": { "fetched_at","cache_hit","requests_made","elapsed_sec" } }
素材优先级:transcript.source 标注本次内容来源。subtitle/whisper 是主内容源;ai_conclusion_fallback 仅在字幕与转写都拿不到时降级采用(B站自研小模型,质量低于你对全文的总结,用时必须注明来源)。 AI 小结永远只是 auxiliary 辅助信号(分段章节可作结构锚点)。
依据 JSON 产出以下结构(无对应数据的小节注明"数据不足",不要编造):
① 一句话结论:值得完整看 / 看高能点即可 / 看本总结即可 / 不值得看(结合 value_signals 与内容判断)。 ② 内容摘要 + 分段大纲:基于 transcript.text(注明素材来源:字幕/转写/AI小结降级);有 auxiliary.ai_conclusion.outline 时用其时间戳作章节锚点。 ③ 高能点时间轴:danmaku_analysis.peaks 的 t_sec + samples 代表弹幕 + 对应内容段落;pbp_available 为 true 时说明与官方高能进度条互相印证。 ④ 评论区共识与争议:对 hot_comments 做观点聚类;用 sub_replies(楼中楼)摘要争议交锋;区分"对内容的评价"与"对UP主的评价",输出共识观点、少数派观点、风评倾向。 ⑤ UP主风评(有 uploader_profile 时):画像(粉丝量、认证、近期作品)+ 本视频舆论倾向。 ⑥ 价值信号:列 value_signals 各互动率 + hint 判断依据。
ok=false 时按 error.code 应对,不要重试到风控:
not_found:BV/AV 号可能有误或视频不可见,请用户核对。auth:需要登录态(字幕/部分接口)——提示配置 cookies.json(sessdata/bili_jct/buvid3);可继续用无需登录的字段。rate_limited(-352/-412):触发风控,稍后再试,不要连续重试。network:网络问题,检查连接后重试。unknown:附原始 message 供排查。cookies.json,其次 ~/.hermes/skills/openclaw-imports/bilibili-summary/cookies.json。不要泄露 SESSDATA/BILI_JCT。pip install -e .(或 bilibili-api-python aiohttp);Whisper 兜底另需 pip install faster-whisper + 系统 ffmpeg。| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-03 | fail→fail | 17,587 | 3,929 | -78% | 1 | 1 | 0% | 2,945 | 1,623 | -45% | 0 | 0 | — |
case-01 | fail→fail | 32,684 | 4,112 | -87% | 1 | 1 | 0% | 6,213 | 1,630 | -74% | 0 | 0 | — |
case-02 | fail→fail | 7,894 | 4,350 | -45% | 1 | 1 | 0% | 1,360 | 1,646 | +21% | 0 | 0 | — |
case-14 | pass→pass | 11,943 | 11,896 | -0% | 1 | 1 | 0% | 2,058 | 3,354 | +63% | 0 | 0 | — |
case-04 | pass→pass | 6,910 | 4,429 | -36% | 1 | 1 | 0% | 1,230 | 2,154 | +75% | 0 | 0 | — |
case-05 | pass→pass | 13,632 | 12,544 | -8% | 1 | 1 | 0% | 2,919 | 4,030 | +38% | 0 | 0 | — |
case-06 | pass→pass | 5,661 | 3,842 | -32% | 1 | 1 | 0% | 1,167 | 2,098 | +80% | 0 | 0 | — |
case-07 | pass→pass | 8,109 | 6,862 | -15% | 1 | 1 | 0% | 1,319 | 2,626 | +99% | 0 | 0 | — |
case-08 | fail→pass | 9,318 | 4,446 | -52% | 1 | 1 | 0% | 1,663 | 2,210 | +33% | 0 | 0 | — |
case-09 | pass→pass | 9,033 | 3,679 | -59% | 1 | 1 | 0% | 1,622 | 2,018 | +24% | 0 | 0 | — |
case-10 | fail→pass | 8,821 | 3,128 | -65% | 1 | 1 | 0% | 1,574 | 2,021 | +28% | 0 | 0 | — |
case-11 | fail→pass | 13,020 | 6,592 | -49% | 1 | 1 | 0% | 2,223 | 2,583 | +16% | 0 | 0 | — |
case-12 | fail→pass | 7,600 | 2,647 | -65% | 1 | 1 | 0% | 1,344 | 1,856 | +38% | 0 | 0 | — |
case-13 | fail→fail | 9,399 | 5,477 | -42% | 1 | 1 | 0% | 1,657 | 1,612 | -3% | 0 | 0 | — |
case-15 | fail→pass | 16,218 | 13,219 | -18% | 1 | 1 | 0% | 2,700 | 3,587 | +33% | 0 | 0 | — |
case-16 | fail→pass | 7,083 | 3,131 | -56% | 1 | 1 | 0% | 1,307 | 1,947 | +49% | 0 | 0 | — |
case-17 | pass→pass | 10,852 | 3,799 | -65% | 1 | 1 | 0% | 1,783 | 2,003 | +12% | 0 | 0 | — |
case-18 | fail→pass | 7,503 | 1,747 | -77% | 1 | 1 | 0% | 1,467 | 1,711 | +17% | 0 | 0 | — |
case-19 | fail→pass | 14,328 | 5,826 | -59% | 1 | 1 | 0% | 2,495 | 2,323 | -7% | 0 | 0 | — |
case-20 | fail→pass | 14,010 | 2,515 | -82% | 1 | 1 | 0% | 2,459 | 1,789 | -27% | 0 | 0 | — |
case-21 | pass→pass | 7,370 | 2,174 | -71% | 1 | 1 | 0% | 1,485 | 1,761 | +19% | 0 | 0 | — |
case-22 | pass→pass | 12,708 | 5,258 | -59% | 1 | 1 | 0% | 2,492 | 2,250 | -10% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 18 counted toward the lift figure. The other 4 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +41 percentage points is the difference between those two pass rates over the 18 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.