215 lines
4.7 KiB
Markdown
215 lines
4.7 KiB
Markdown
---
|
||
name: kb-bilibili-content
|
||
description: B站内容下载 - 下载视频、字幕、专栏文章
|
||
---
|
||
|
||
# KB Bilibili Content Skill
|
||
|
||
**kb-bilibili-content** - 下载 B站视频、字幕、专栏文章。
|
||
|
||
## 什么时候使用
|
||
|
||
- kb-workflow 步骤 3a:下载视频或字幕
|
||
- kb-workflow 步骤 3b:提取专栏文章内容
|
||
|
||
## 功能
|
||
|
||
- 视频下载(使用 yt-dlp)
|
||
- 字幕提取(官方字幕)
|
||
- 专栏文章内容提取
|
||
- 多种画质选项(360P/480P/720P/1080P)
|
||
- 支持 `BILIBILI_COOKIE` 环境变量(会员视频)
|
||
|
||
## 环境变量
|
||
|
||
| 变量名 | 必需 | 说明 |
|
||
|--------|------|------|
|
||
| `BILIBILI_COOKIE` | 否 | B站登录 Cookie(会员视频需要) |
|
||
|
||
**获取 Cookie:**
|
||
1. 登录 bilibili.com
|
||
2. F12 → Network → 刷新页面
|
||
3. 从请求头复制 Cookie
|
||
|
||
```bash
|
||
export BILIBILI_COOKIE="SESSDATA=xxx; bili_jct=xxx; DedeUserID=xxx"
|
||
```
|
||
|
||
## 命令
|
||
|
||
```bash
|
||
# 下载字幕(推荐首先尝试)
|
||
python3 bilibili_content.py --id "BV1xx411c7mD" --type subtitle-download --output "/path/to/output/"
|
||
|
||
# 下载视频(720P,推荐)
|
||
python3 bilibili_content.py --id "BV1xx411c7mD" --type video --output "/path/to/output/"
|
||
|
||
# 下载视频(1080P)
|
||
python3 bilibili_content.py --id "BV1xx411c7mD" --type video --quality 80 --output "/path/to/output/"
|
||
|
||
# 提取专栏文章
|
||
python3 bilibili_content.py --id "cv43780186" --type article --output "/path/to/output/"
|
||
```
|
||
|
||
## 输出格式 Schema
|
||
|
||
### 必需字段
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| `success` | boolean | 是否成功 |
|
||
| `type` | string | 操作类型(subtitle/video/article) |
|
||
|
||
### 字幕下载特有字段
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| `has_subtitle` | boolean | 是否有官方字幕 |
|
||
| `subtitle_file` | string | 字幕文件路径(有字幕时) |
|
||
|
||
### 视频下载特有字段
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| `filepath` | string | 视频文件路径 |
|
||
| `filename` | string | 视频文件名 |
|
||
| `quality` | string | 画质 |
|
||
|
||
### 文章提取特有字段
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| `filepath` | string | 文章文件路径 |
|
||
| `content_length` | number | 内容长度 |
|
||
|
||
## 成功示例
|
||
|
||
### 字幕下载 - 有官方字幕
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"type": "subtitle-download",
|
||
"has_subtitle": true,
|
||
"subtitle_file": "content/downloads/bilibili_BV1xx411c7mD.srt",
|
||
"message": "官方字幕下载成功"
|
||
}
|
||
```
|
||
|
||
### 字幕下载 - 无官方字幕
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"type": "subtitle-download",
|
||
"has_subtitle": false,
|
||
"message": "无官方字幕,需要下载视频进行语音识别"
|
||
}
|
||
```
|
||
|
||
### 视频下载
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"type": "video",
|
||
"filename": "bilibili_BV1xx411c7mD.mp4",
|
||
"filepath": "content/downloads/bilibili_BV1xx411c7mD.mp4",
|
||
"quality": "720P",
|
||
"message": "下载完成"
|
||
}
|
||
```
|
||
|
||
### 专栏文章提取
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"type": "article",
|
||
"filename": "bilibili_cv43780186.txt",
|
||
"filepath": "content/bilibili_cv43780186.txt",
|
||
"content_length": 5234,
|
||
"message": "文章内容提取成功"
|
||
}
|
||
```
|
||
|
||
## 错误示例
|
||
|
||
### 403 禁止访问
|
||
|
||
```json
|
||
{
|
||
"success": false,
|
||
"type": "video",
|
||
"error": "403 Forbidden",
|
||
"error_code": "FORBIDDEN",
|
||
"suggestion": "可能需要会员权限,请配置 BILIBILI_COOKIE 环境变量"
|
||
}
|
||
```
|
||
|
||
### 视频不存在
|
||
|
||
```json
|
||
{
|
||
"success": false,
|
||
"type": "video",
|
||
"error": "视频不存在或已被删除",
|
||
"error_code": "NOT_FOUND"
|
||
}
|
||
```
|
||
|
||
### 网络超时
|
||
|
||
```json
|
||
{
|
||
"success": false,
|
||
"type": "video",
|
||
"error": "下载超时",
|
||
"error_code": "TIMEOUT",
|
||
"suggestion": "请检查网络连接后重试"
|
||
}
|
||
```
|
||
|
||
## 画质选项
|
||
|
||
| 画质 | ID | 分辨率 | 说明 |
|
||
|------|-----|--------|------|
|
||
| 360P | 16 | 640x360 | 最快 |
|
||
| 480P | 32 | 852x480 | 低带宽 |
|
||
| 720P | 64 | 1280x720 | **推荐** |
|
||
| 1080P | 80 | 1920x1080 | 最高画质 |
|
||
|
||
**默认画质:** 64 (720P)
|
||
|
||
## 安装
|
||
|
||
```bash
|
||
cp -r kb-bilibili-content/ ~/.openclaw/skills/
|
||
pip install aiohttp yt-dlp
|
||
```
|
||
|
||
## 在 kb-workflow 中的使用
|
||
|
||
```bash
|
||
# 步骤 3a:首先尝试字幕
|
||
python3 ~/.openclaw/skills/kb-bilibili-content/bilibili_content.py \
|
||
--id "BV1xx411c7mD" --type subtitle-download \
|
||
--output "content/downloads/"
|
||
|
||
# 判断结果:
|
||
# - has_subtitle=true → 跳过 Whisper,直接进入深度分析
|
||
# - has_subtitle=false → 下载视频,进入 Whisper 步骤
|
||
|
||
# 如果无字幕,下载视频
|
||
python3 ~/.openclaw/skills/kb-bilibili-content/bilibili_content.py \
|
||
--id "BV1xx411c7mD" --type video \
|
||
--output "content/downloads/"
|
||
```
|
||
|
||
## 注意事项
|
||
|
||
- **无官方字幕是正常的**:很多视频没有自动生成的字幕,这不是错误
|
||
- **403 错误**:通常需要配置 Cookie
|
||
- **会员视频**:必须配置 BILIBILI_COOKIE
|
||
- **下载时间**:视频可能较大,需要耐心等待
|