设计与多媒体

Bilibili Video Parser

试用

把B站视频链接一键转成中文字幕连贯稿 + 结构化 HTML 分析报告。优先使用 CC 字幕秒出结果,无字幕时本地 faster-whisper 转写,不需要任何 API key。

它能做什么

B站视频解析-把B站视频链接(bilibili.com/video/BVxxx 长链或 b23.tv 短链)转成中文字幕连贯稿和交互式 HTML 报告。原理:B站公开 API 获取元数据+cid -> 优先尝试CC字幕API(有字幕直接用,跳过转写)-> 无字幕时下载音频流 -> 本地 faster-whisper(base 模型、CPU、int8)转写 -> 本地规则提取分析 -> 生成交互式 HTML 报告(含一句话总结、金句卡片、核心观点、结构拆解、内容判断、内容亮点六大模块)。免费,不依赖任何 API key 或 cookie 登录。一条命令出连贯稿(无时间戳)+ 可视化 HTML 报告。

技能文档

B站视频解析(本地版)

这条 skill 解决什么

经常需要"读"B站视频里的内容——判断对账号有没有用、提炼观点、做素材库。 但 AI 模型本身不能听音频,必须借工具。这条 skill 就是那套工具的固化。

核心做法:

  1. 从B站链接提取 BV号
  2. api.bilibili.com/x/web-interface/view 公开 API 获取元数据(标题/UP主/时长/cid)
  3. 优先尝试CC字幕:走 api.bilibili.com/x/player/v2 获取CC字幕,有则直接用,跳过转写(秒出)
  4. 无CC字幕时:走 playurl API 拿 DASH 音频流直链,用 Python 标准库 urllib 下载(不依赖外部 curl)
  5. faster-whisper(CPU、int8、base 模型)转写
  6. 输出连贯稿(无时间戳)
  7. 本地规则提取:无 API Key 时通过关键词密度、段落结构和数字线索提取分析
  8. 生成 HTML 报告:始终生成一份交互式 HTML 报告,含六大模块

不需要:ffmpeg 外部命令、yt-dlp、curl、cookie、登录、API key。 faster-whisper 自带的 PyAV 已经能读 m4a 抽音轨。 B站CC字幕可直接从 API 获取时,完全跳过转写,速度极快。

Required Capabilities(权限声明)

以下权限均为执行B站链接解析任务所必需的最小权限。仅在用户明确提供B站链接(bilibili.com / b23.tv)时才触发,不执行任何与本任务无关的系统操作。

能力用途触发条件最小化说明
网络请求访问 api.bilibili.com 获取视频元数据、CC字幕、音频流直链用户提供B站链接时仅访问 bilibili.com 域名,不向任何第三方发送数据
网络请求(下载)下载音频流文件(DASH格式,仅音频)视频无CC字幕时仅下载音频流,不下载视频画面;请求头含 Referer: bilibili.com
网络请求(模型)首次运行时从 HuggingFace 下载 whisper base 模型(~74 MB)首次转写、模型未缓存时下载到系统临时目录后缓存,之后不再重复下载
Python 子进程运行 faster-whisper 转写脚本(CPU、int8)无CC字幕、需转写时仅调用 faster-whisper 库,无外部命令行调用
文件读写保存连贯稿 txt 文件、写入 HTML 报告转写/字幕获取完成后输出到脚本 work/ 目录(可用 --out-dir 指定受控目录)
临时文件在系统 temp 目录存放音频文件和 whisper 模型下载/转写期间音频转写完成后自动删除(--keep-audio 可保留)

不执行的操作:不读取用户本地任意文件、不访问B站以外的任意 URL(HuggingFace 模型下载除外)、不发送数据到任何第三方服务、不上传用户数据。

环境准备(AI 执行前必须检查)

收到B站链接后,第一步不是直接跑脚本,而是先检查环境:

1. 检查 Python

python3 --version

2. 检查 faster-whisper 是否已安装

python3 -c "import faster_whisper; print('ok')"

如果报 ImportError,立即安装:

pip3 install faster-whisper

首次运行脚本时会自动从 HuggingFace 下载 base 模型(~74 MB)到系统临时目录,之后不再重复下载(模型已缓存)。

3. curl 检查

不需要。脚本全部使用 Python 标准库 urllib,不依赖外部 curl。

一行命令用法

环境就绪后,直接跑:

python3 scripts/transcribe.py "https://www.bilibili.com/video/BV1Mu3y6NEzT"
# 或短链
python3 scripts/transcribe.py "https://b23.tv/xxx"
# 或直接传 BV号
python3 scripts/transcribe.py "BV1Mu3y6NEzT"

脚本会输出:

  • MMDD--连贯稿.txt(无时间戳,纯文本)
  • MMDD--报告.html(交互式 HTML 报告)
  • 连贯稿前 500 字摘要(打印到终端,完整内容见连贯稿文件;如需全文打印加 --print-transcript

如果视频有CC字幕,会直接使用字幕数据,跳过 Whisper 转写,速度极快(秒出)。

AI 深度分析注入(推荐)

脚本内置的本地规则提取(local_analysis)只是兜底,质量有限。AI Agent 跑完脚本后,应自己读连贯稿做深度分析,再用 --analysis-json 注入,重新生成高质量报告:

# 1. AI 读连贯稿 → 产出 analysis.json(结构见下)
# 2. 注入 AI 分析,重建 HTML(跳过下载/转写,秒出)
python3 scripts/transcribe.py "<链接>" \
  --from-transcript "MMDD--连贯稿.txt" \
  --analysis-json "MMDD--analysis.json"

analysis.json 结构(与 local_analysis 返回一致):

{
  "summary": "一句话总结",
  "key_points": ["观点1", "观点2"],
  "structure": {
    "type": "口播科普",
    "breakdown": {"开头钩子": "...", "核心论点": "...", "论据案例": "...", "结尾收束": "..."}
  },
  "quotes": [{"text": "金句1", "context": ""}],
  "judgment": {"stance": "立场", "credibility": "可信度", "takeaway": "可借鉴点"},
  "highlights": [{"name": "亮点名", "desc": "说明", "tag": "标签"}]
}

注意:whisper 转写文本常没有中文标点(空格分隔),local_analysis 已内置无标点降级切分,但 AI 深度分析仍建议基于连贯稿文件人工阅读后再写。

HTML 报告内容

报告为单文件 HTML,打开即可直接浏览,包含六大模块:

模块说明
Hero 区视频标题 + UP主 + 时长
一句话总结智能提取核心观点,关键词高亮
金句卡片2-3 句适合二次传播的金句
深度解析(胶囊书架)点击展开四张胶囊卡片
- 核心观点3-6 条核心观点,编号列表
- 结构拆解开场/核心/结尾分区
- 内容判断立场/可信度/可借鉴点
- 内容亮点观点排行列表

报告使用系统字体栈(不依赖外部字体 CDN),所有用户内容均经 HTML 转义防止 XSS。

转写后的后处理(AI 必须执行)

拿到连贯稿和 HTML 报告后,AI 不要只甩出文件就结束。 先读取 MMDD--连贯稿.txt 文件的完整内容(终端默认只打印前 500 字摘要,不要依赖终端输出),再按以下结构输出分析,并把分析写成 JSON 注入回 HTML--analysis-json,见上节,这样报告才是可发布级的,不要留脚本的兜底分析):

一句话总结

用一句话概括这个视频在讲什么。

核心观点(3-5 条)

  • 提取视频中表达的 3-5 个核心观点,每条一句话

结构拆解

根据视频类型,选择对应的结构框架来拆:

如果是口播/观点类:

结构内容
开头钩子视频前 5 秒用了什么话术抓住注意力
核心论点主要在讲什么
论据/案例用了什么例子支撑
结尾/CTA最后怎么收的,有没有引导行动

如果是知识/教程类:

结构内容
主题这期在教什么
步骤拆解按顺序列出教学步骤
关键提醒有没有强调注意事项
适用场景适合什么人/什么场景用

如果是测评/推荐类:

结构内容
痛点切入开头怎么戳中用户痛点
产品卖点列出提到的卖点
信任背书用了什么方式建立信任(数据/案例/权威)
转化路径怎么引导用户下单/关注/点击

金句提取

挑出 2-3 句适合二次传播的金句(有传播力、有观点、有情绪)

内容判断

  • 立场分析:UP主站在什么立场(创作者/消费者/平台/品牌方)
  • 可信度:观点有没有数据支撑,还是纯主观判断
  • 可借鉴点:对我们的内容生产有没有参考价值,具体能借鉴什么

已知限制

  • whisper base 模型对中文繁简会随机选——常见错别字示例:"护身符"被识别成"护成盒"。
    • 内容理解不受影响,但写最终稿前要人工修。
    • 如果要更准,把模型换成 smallmedium(更慢、更准):
      python3 scripts/transcribe.py "<链接>" --model small
      
  • b23.tv 短链偶尔有反爬,长链(bilibili.com/video/BVxxx)更稳。短链失败时手动从浏览器拷贝长链。
  • 视频大于 20 分钟时建议改用 medium 模型,base 在长视频上准确率会掉。
  • 部分视频可能无CC字幕,此时走 Whisper 转写,耗时与视频时长成正比(base 模型约 1:1 速度)。
  • 大会员专享/付费视频无法下载音频流,脚本会报错退出。
  • 脚本已支持跨平台(Windows/macOS/Linux),临时文件使用系统 temp 目录,不依赖 /tmp/
  • HTML 报告的本地规则提取不如 LLM 精准,如需更深分析建议 AI 结合连贯稿做后处理。

调用提醒

收到B站视频链接时,第一反应不是去浏览器截图、不是去硬装 yt-dlp。 直接:

python3 scripts/transcribe.py "<链接>"

然后读输出目录里的连贯稿文件(完整内容在文件里,终端只打印摘要),按"先看UP主站在哪儿(立场)→ 再看跟我们阶段/数据对不对得上 → 最后才说能不能用"的顺序判断。 不要直接跳进内容里去结构化。

安全声明

  • 联网行为(如实声明):本技能需要联网——每次运行访问 api.bilibili.com 获取视频信息和(可选)CC字幕;无CC字幕时从B站 CDN 下载音频流;首次运行从 HuggingFace 下载 whisper 模型(~74 MB)。不是纯离线工具
  • 隐私提醒:转写内容会写入本地 txt/HTML 文件,且视频链接、标题会出现在终端输出中。请勿在共享/受监控环境中解析隐私敏感视频;如需控制输出位置,用 --out-dir 指定目录
  • 终端输出:默认只打印连贯稿前 500 字摘要,不打印全文,避免敏感语音内容进入终端回滚和日志;确需全文打印时显式加 --print-transcript
  • 网络边界:仅访问 api.bilibili.com(获取视频信息/字幕/音频直链)和B站 CDN(下载音频流),HuggingFace(首次模型下载),不发送任何数据到第三方服务
  • 无 API Key:整个流程不需要任何 API key、cookie 或登录态
  • HTML 安全:生成的 HTML 报告中所有从视频内容提取的文本均经过 html.escape() 转义,使用 data-* 属性 + 事件委托替代 inline onclick,防止 XSS
  • 无外部字体:HTML 报告使用系统字体栈,不依赖 Google Fonts 或其他外部字体 CDN
  • 临时文件清理:音频文件在转写完成后自动删除(除非 --keep-audio

相关技能

【B站字幕获取】专业处理 B 站视频字幕问题,支持语音转文字、字幕下载、内容分析。基于实际 B 站字幕系统错误问题开发,提供完整的解决方案。

22 次安装

从主题搜索、B站当前热门或热搜、给定视频的关联推荐或具体视频开始,把视频正文、画面、弹幕、评论和回复转化为可回查的学习与研究结果。适用于查找和比较B站视频、总结教程与观点、拆解视觉表达、分析观众反馈,以及用户明确提出的产品或市场研究;Skill 按目标获取最小证据,并在数据不足时明确降级。

抖音视频解析-把抖音视频链接生成交互式 HTML 报告。免费,不依赖任何 API key。一条命令出逐字稿(带时间戳)+ 连贯稿(无时间戳)+ 可视化 HTML 报告(含一句话总结、金句卡片、核心观点、结构拆解、内容总结等)

1 次安装1 星标

专业对话稿生成助手。把视频/音频转成【带说话人标注】的专业对话稿——区分谁说的、Clean Verbatim 可读性重排、金句高亮、公众号可直接粘贴。支持 B 站视频作为输入源(下载音频、查询信息),适用于访谈、播客、会议等多人对话场景。

2 次安装

Extract, structure, and summarize Bilibili video/column content into structured notes with timestamps, key points, and chapter indexes.

4 次安装