| name | bilibili-audio-transcribe |
| description | Download audio from Bilibili videos (single or collection/playlist), transcribe speech to text using Whisper, and generate one document per video. Triggers when user requests to (1) download Bilibili video audio or extract audio from B站视频, (2) convert Bilibili video speech/audio to text or 转文字/转录, (3) process a Bilibili video link (BV号) for transcription, (4) process a Bilibili collection/playlist/favorites for batch transcription. Outputs individual text documents for each video. Also triggers on keywords: B站音频下载, 视频转文字, 语音转文字, 字幕生成, bilibili download, audio extraction, speech recognition. |
B站视频音频下载与转文字
将B站视频(单视频或合集)下载为音频,使用Whisper转为文字,每个视频生成一个独立文档。
工作流程
处理B站视频链接的流程:
- 解析用户输入 → 判断是单视频还是合集
- 检查/安装依赖 → yt-dlp, ffmpeg, whisper
- 获取Cookie(如需)→ 指导用户获取B站Cookie
- 下载音频 → 运行
scripts/download.py
- 转文字 → 运行
scripts/transcribe.py
- 整理文档 → 为每个视频生成独立文本文件
依赖检查
运行前确保以下工具已安装:
which yt-dlp ffmpeg whisper
pip install yt-dlp openai-whisper
步骤1:下载音频
使用 scripts/download.py:
python scripts/download.py "<B站链接>" <输出目录> --cookies <cookie文件>
参数说明:
B站链接:视频URL,支持单视频、分P视频、收藏夹、合集等
输出目录:音频保存位置(默认 ./downloads)
--cookies:Netscape格式Cookie文件(B站下载必需,详见 references/cookie-setup.md)
常见链接格式:
- 单视频:
https://www.bilibili.com/video/BV1xx411c7mD
- 分P视频(下载全部):
https://www.bilibili.com/video/BV1xx411c7mD
- 收藏夹:
https://space.bilibili.com/xxxx/favlist?fid=xxxx
- 合集/列表:
https://space.bilibili.com/xxxx/channel/collectiondetail?sid=xxxx
- 用户视频列表:
https://space.bilibili.com/xxxx/video
步骤2:转文字
使用 scripts/transcribe.py:
python scripts/transcribe.py <音频目录或文件> <输出目录> --model base --language zh
参数说明:
--model:模型大小(tiny/base/small/medium/large),默认base
tiny:最快,准确率一般,适合快速预览
base:平衡速度和准确率(推荐默认)
small:较慢但更准确
medium/large:最准确但很慢
--language:语言代码,中文用 zh,英文用 en,日文用 ja
--combine:生成合并的Markdown文档(合集时使用)
模型选择建议:
| 场景 | 推荐模型 | 1小时音频耗时 |
|---|
| 快速预览 | tiny | ~2分钟 |
| 日常使用 | base | ~5分钟 |
| 需要高准确率 | small | ~15分钟 |
| 专业用途 | medium/large | ~30-60分钟 |
步骤3:文档整理
转录完成后,每个视频会生成一个 .txt 文件。如需进一步处理:
- 使用
--combine 参数可生成汇总Markdown文档
- 可用Python脚本批量添加视频标题、时间戳等元信息
- 输出格式可调整为
.md、.docx 等
Cookie获取
B站下载需要登录Cookie。如果用户未提供Cookie文件:
- 告知用户需要获取B站Cookie
- 引导阅读
references/cookie-setup.md 获取详细步骤
- 最简单的方案:安装浏览器插件导出
bilibili_cookies.txt
快速指引(告知用户):
- 安装浏览器插件 "Get cookies.txt LOCALLY"
- 登录 bilibili.com
- 导出为 Netscape 格式,保存为
cookies.txt
- 在命令中通过
--cookies cookies.txt 传入
完整示例
单视频处理:
python scripts/download.py "https://www.bilibili.com/video/BV1xx411c7mD" ./audio --cookies ./cookies.txt
python scripts/transcribe.py ./audio ./transcripts --model base --language zh
合集批量处理:
python scripts/download.py "https://space.bilibili.com/123/channel/collectiondetail?sid=456" ./audio --cookies ./cookies.txt
python scripts/transcribe.py ./audio ./transcripts --model base --language zh --combine
输出结构
transcripts/
├── 1_视频标题1_BVxxx.txt # 单个视频的文字稿
├── 2_视频标题2_BVyyy.txt
├── 3_视频标题3_BVzzz.txt
└── _combined.md # 汇总文档(--combine时生成)
每个 .txt 文件内容格式:
[00:00.000 --> 00:05.240] 第一句话的内容
[00:05.240 --> 00:12.100] 第二句话的内容
...