运行时依赖
安装命令
点击复制技能文档
Bilibili 视频摘要工具 从 Bilibili 视频中提取全部内容 —— 转录/字幕、弹幕、评论和描述 —— 然后使用自己的 LLM 能力生成深度摘要。无需外部 AI API(无需 OpenAI / Gemini 密钥)。
功能 数据来源 方法 优先级 CC 字幕 Bilibili API 最快,若可用则使用 音频转录 whisper.cpp + Vulkan GPU 无字幕时自动回退 视频描述 yt-dlp 始终捕获 弹幕(滚动评论) yt-dlp 解析并分析频繁内容 评论 Bilibili 评论 API 热度排序、去重、提取顶级点赞
工作流程 当您收到 Bilibili 视频链接并被要求总结它时,请按照以下步骤: 步骤 1:提取所有数据 python bili-transcript.py "<视频 URL>" 脚本自动: 获取视频标题、上传者、时长、描述 尝试 Bilibili CC 字幕(最快,若可用则使用) 回退到 GPU 转录:下载音频 → 转换为 wav → whisper.cpp 与 Vulkan 下载和分析弹幕(滚动评论) 获取视频评论,按点赞数排序 输出文件保存到 ./bili-output/: transcript.txt —— 全部转录/字幕文本 danmaku.json —— 弹幕数据,包含统计信息 comments.json —— 评论数据,包含顶级点赞 JSON 输出包括预览文本、弹幕摘要和顶级评论。
步骤 2:阅读全转录 JSON 预览在 2000 个字符处截断。阅读全文件: cat ./bili-output/transcript.txt
步骤 3:阅读弹幕和评论 查看社区响应数据: cat ./bili-output/danmaku.json cat ./bili-output/comments.json
步骤 4:撰写摘要 使用自己的 LLM 能力生成综合摘要。建议结构: 视频概述 —— 标题、上传者、时长、转录来源(字幕 / GPU)。 描述中的关键信息(项目链接、更新说明等)。 核心内容 —— 视频的主要内容。 流畅的段落摘要。 关键点 —— 值得强调的显著论点、数据点或信息。 社区响应(可选) —— 弹幕和评论的反应。 如果内容不充实(垃圾信息、骚扰、无有价值的讨论),则跳过。 弹幕分析:查找频繁重复的短语(社区表情/反应)、信息性问题、技术讨论、争议点。 评论分析:查找顶级点赞意见、创作者互动、用户报告的问题、技术见解。 评估(可选) —— 内容质量、信息密度、显著的优缺点。
可用操作 # 仅视频元数据 python bili-transcript.py "" --action info # 仅 CC 字幕(若可用) python bili-transcript.py "" --action subtitle # 强制 GPU 转录(跳过字幕检查) python bili-transcript.py "" --action transcribe # 仅弹幕 python bili-transcript.py "" --action danmaku # 仅评论 python bili-transcript.py "" --action comments # 自定义输出目录 python bili-transcript.py "" --output ./my-output
环境变量 变量 目的 WHISPER_CPP_DIR whisper.cpp 目录路径(包含 whisper-cli) WHISPER_MODEL whisper 模型文件路径(例如 ggml-large-v3-turbo.bin) BILI_OUTPUT_DIR 默认输出目录(默认:./bili-output)
性能参考 视频长度 总时间 备注 5 分钟 ~15s GPU 转录很快 12 分钟 ~22s 下载 + 转换 + 转录 1 小时 ~2-3 分钟 取决于音频密度 弹幕/评论 ~5-10s 取决于评论量
依赖项 Python 包:yt-dlp、av(PyAV) 转录引擎:whisper.cpp,支持 Vulkan(可选,仅在无 CC 字幕时需要) 模型:ggml-large-v3-turbo.bin(约 1.6GB,需单独下载) GPU:任何支持 Vulkan 的 GPU(NVIDIA、AMD、Intel)—— 自动检测 无需外部 AI API 密钥
限制 需要访问 Bilibili 的互联网 一些内容需要登录(付费课程、受限视频)—— 可能失败 弹幕和评论 API 可能受到速率限制 whisper.cpp 不支持 m4a;脚本通过 PyAV 自动转换 非常长的视频(>2 小时)需要大量转录时间;先尝试 --action subtitle 评论仅从前 3 页(~60 条评论)中获取;可能无法完全覆盖非常热门的视频