← Back to skills
extension
Category: Productivity & OfficeAPI key requirement unconfirmed

bili-summary

抓取 B 站视频的字幕全文与热门评论,输出一份 Markdown 资料包,用于快速总结视频内容或后续追问。当用户发来 B 站/哔哩哔哩链接或 BV 号,并说"总结一下""看看讲的什么""扒一下评论区""聊一聊这个视频""存下来以后聊"时使用本 Skill。也可按关键词搜索 B 站视频,按发布时间和播放量过滤。

personAuthor: MkdLucyhubModelScope

B 站视频资料包

把一个 B 站链接变成一份 Markdown 资料包:元信息 + 简介 + 字幕全文 + 热门评论。 既能立刻出总结,也能存下来当后续对话的数据源。

文件结构

| 文件 | 作用 | |---|---| | scripts/fetch_bili.py | 抓单个视频的元信息 / 字幕 / 评论 | | scripts/search_bili.py | 关键词搜索,手上没有 BV 号时用 |

两个脚本只依赖 Python 标准库,不需要 pip 安装任何东西。

环境要求

  • Python 3.9 或更高
  • 能访问 api.bilibili.com

登录凭证(可选)

不登录也能抓,但部分视频的 AI 字幕需要登录态才能拿到。

配法:

  1. 浏览器打开 https://www.bilibili.com 并登录
  2. 按 F12 → Application(应用)→ Cookies → https://www.bilibili.com
  3. 找到 SESSDATA,双击 Value 全选复制
  4. 在本 Skill 根目录新建 cookie.txt,把值粘进去

脚本会自动读取 <Skill 目录>/cookie.txt,其次 ~/.bili_cookie。 文件里写 SESSDATA 的值,或写一整条 Cookie,两种都行。

运行时会打印 · 登录凭证:已加载 或 未加载。

cookie.txt 是账号凭证,不要提交到任何公开仓库。

用法

抓取单个视频

python scripts/fetch_bili.py "https://www.bilibili.com/video/BV1xx411c7mD"
python scripts/fetch_bili.py BV1xx411c7mD --comments 60 --out ./out

| 参数 | 说明 | 默认 | |---|---|---| | url | 视频链接或 BV 号 | 必填 | | --comments N | 抓多少条评论;0 表示跳过评论 | 300 | | --out DIR | 输出目录 | 系统桌面的 B站总结 |

成功输出四行,最后一行是 ✓ 已保存:<路径>。 输出文件名为 <BV号>_<标题>.md。

按关键词搜索

python scripts/search_bili.py "关键词1" "关键词2" --pages 2 --after 2026-01-01 --min-play 1000

| 参数 | 说明 | 默认 | |---|---|---| | keywords | 一个或多个关键词,结果自动合并去重 | 必填 | | --pages N | 每个关键词翻几页(每页 20 条) | 1 | | --after | 只要该日期之后发布的,格式 YYYY-MM-DD | 不限 | | --min-play N | 只保留播放量 ≥ N 的 | 0 | | --limit N | 最多输出多少条 | 40 |

输出文件结构

四段:元信息 → 简介 → 字幕全文 → 热门评论。 字幕一般在前 900 行内,评论在文件后段。

已知限制

| 情况 | 说明 | |---|---| | 字幕为空 | 该视频确实没有字幕,或 cookie 过期(脚本会打印 未加载)。不要反复重试 | | 多 P 视频 | 默认只抓第 1 个分 P | | 接口返回 -352 | B 站风控,稍后再试或降低请求频率 | | cookie 过期 | 约一个月一次,按上面的步骤重新取 SESSDATA |

实现要点(改代码前先看)

| 坑 | 正解 | |---|---| | 旧评论接口 x/v2/reply 只返回 3 条,翻页全空 | 改用 wbi 签名的 x/v2/reply/wbi/main + cursor 翻页 | | x/player/v2 返回的字幕列表里 subtitle_url 是空的 | 改用 wbi 签名的 x/player/wbi/v2,且必须带 bvid 参数 | | 评论翻页过快触发风控 -352 | 每页间隔 0.4 秒 |

wbi 签名所需的固定重排表(MIXIN_TAB)已写在 fetch_bili.py 里,search_bili.py 直接复用。

<!-- OB-S:bDkxnGtlWxi3MDVik3IvhQ -->