Install
openclaw skills install unclecheng-bilibili-danmaku-extractorB站视频弹幕提取工具。输入B站视频链接,自动提取该视频的所有弹幕,输出JSON和Markdown两种格式的文件。
openclaw skills install unclecheng-bilibili-danmaku-extractor专注于弹幕提取的轻量工具,输入B站视频链接,自动提取所有弹幕并输出为 JSON 和 Markdown 两种格式。
pip install requests
@skill://B站弹幕提取 请提取这个视频的弹幕:https://www.bilibili.com/video/BV1xx97xx9xx
# 提取弹幕并输出到当前目录
python main.py "https://www.bilibili.com/video/BV1xx97xx9xx"
# 指定输出目录
python main.py "https://www.bilibili.com/video/BV1xx97xx9xx" -o /path/to/output
# 使用BV号
python main.py "BV1xx97xx9xx"
| 数据 | 接口URL | 参数 |
|---|---|---|
| 视频信息 | https://api.bilibili.com/x/web-interface/view?bvid={bvid} | bvid |
| 弹幕数据 | https://api.bilibili.com/x/v1/dm/list.so?oid={cid} | oid(视频cid) |
DEFAULT_HEADERS = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...',
'Referer': 'https://www.bilibili.com/',
'Origin': 'https://www.bilibili.com'
}
{
"video_info": {
"bvid": "BV1xx97xx9xx",
"title": "视频标题",
"owner": "UP主名称",
"duration": 600,
"stat": { "view": 123456, "like": 7890, ... },
"pubdate": 1234567890
},
"export_time": "2024-01-01T12:00:00",
"total_count": 1234,
"danmakus": [
{
"text": "弹幕内容",
"time": 12.5,
"type": "滚动",
"type_code": 1,
"color": "ffffff",
"timestamp": 1234567890
},
...
]
}
# 视频标题
> **BV号**: `BV1xx97xx9xx`
> **UP主**: UP主名称
> **弹幕总数**: 1234 条
> **导出时间**: 2024-01-01 12:00:00
---
## 全部弹幕 (共 1234 条)
`[00:12]` 这是第一条弹幕
`[00:15]` 这是第二条弹幕
`[00:20]` 这是第三条弹幕
...
输入B站视频链接
│
▼
1. 提取BV号 (正则匹配)
│
▼
2. 获取视频信息 (标题、UP主、时长、CID等)
│
▼
3. 获取弹幕数据 (XML/压缩格式)
│
▼
4. 解析弹幕
├── 提取文本、时间、类型、颜色等
└── 处理压缩弹幕 (zlib解压)
│
▼
5. 导出文件
├── JSON: 完整数据 + 元信息
└── Markdown: 易读格式
| 参数 | 说明 | 示例 |
|---|---|---|
url | B站视频链接或BV号 | BV1ky97B9Efn |
-o, --output | 输出目录 | -o ./output |
| 字段 | 类型 | 说明 |
|---|---|---|
text | string | 弹幕文本内容 |
time | float | 出现时间(秒) |
type | string | 弹幕类型(滚动/底端/顶端等) |
type_code | int | 弹幕类型代码 |
color | string | 弹幕颜色(十六进制) |
timestamp | int | 发送时间戳 |
| code | 类型 |
|---|---|
| 1 | 滚动弹幕 |
| 4 | 底部弹幕 |
| 5 | 顶部弹幕 |
| 6 | 逆向弹幕 |
| 7 | 高级弹幕 |
| 8 | 代码弹幕 |
| 问题 | 原因 | 解决 |
|---|---|---|
| 获取弹幕为0 | CID获取失败或视频无弹幕 | 检查网络或视频有效性 |
| 412/403错误 | 风控拦截 | 添加延时或稍后重试 |
| 视频信息获取失败 | BV号无效 | 检查链接格式是否正确 |
用户输入:
@skill://B站弹幕提取 请提取这个视频的弹幕:https://www.bilibili.com/video/BV1Am9gBzEUb
执行过程:
提取BV号:BV1Am9gBzEUb
获取视频信息:
获取弹幕:通过CID调用弹幕接口,获取到 1063 条弹幕
导出文件:
BV1Am9gBzEUb_弹幕_1063条.jsonBV1Am9gBzEUb_弹幕_1063条.md弹幕预览:
| 时间 | 弹幕内容 |
|---|---|
[07:24] | 绿坝:没想到吧,老娘回来了 |
[03:03] | 4千万身价指的是当时这玩意软件造价4,000万元人民币... |
[00:14] | 萌娘百科方便是方便,不过有的时候会夹带私货或者玩梗误导人… |
[10:37] | "不是我害了你,是这乱世害了你啊" |
[06:46] | 啊?还有这么巧的事? |
输出成果:
B站弹幕提取/
├── SKILL.md # 本说明文件
├── _skillhub_meta.json # Skill元数据
├── main.py # 核心脚本
└── requirements.txt # Python依赖