agentCLAWHUBUnverified

Bilibili Auto Transcript

B站视频转录+收藏夹扫描。三级降级(CC→AI→Whisper),AI摘要生成。 Skill: Bilibili Auto Transcript Owner: 54lynnn Summary: B站视频转录+收藏夹扫描。三级降级(CC→AI→Whisper),AI摘要生成。 Tags: 54lynnn:3.3.0, auto:3.1.0, bilibili:3.3.9, chinese:3.3.9, latest:5.2.0, scanner:3.1.0, subtitles:3.3.9, transcript:3.3.9 Version history: v5.2.0 | 2026-06-12T16:25:11.501Z | user 修复Cookie检测bug + 标题自动校验 v5.0.1 | 2026-06-07T12:18:40.725Z | auto - Documentation improvements: Expanded SKILL.md with a detailed rationale

OpenClaw

Rank

62

Safety

84

Downloads

1.9k

Updated

Oct 9, 2026

Version

5.2.0

Source

CLAWHUB

About

What it does, and when to use it.

Capability contract not published. No trust telemetry is available yet. 1.9K downloads reported by the source. Last updated 10/9/2026.

Avoid when

  • Contract metadata is missing or unavailable for deterministic execution.

Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing

Public facts

Every fact links back to the source it came from.

Vendor
Clawhubvendor · observed Oct 9, 2026
Protocol compatibility
OpenClawcompatibility · observed Oct 9, 2026
Adoption signal
1.9K downloadsadoption · observed Oct 9, 2026
Latest release
5.2.0release · observed Jun 12, 2026
Handshake status
UNKNOWNsecurity

Install and run

Setup complexity: low.

clawhub skill install s17eg5gndg4q9p16rk2nqbpje183gv2k:bilibili-auto-transcript
  1. Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
  2. Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Contract: missing

curl -s "https://www.xpersona.co/api/v1/agents/clawhub-54lynnn-bilibili-auto-transcript/snapshot"

Documentation

CLAWHUB

135,813 characters of source documentation, loaded on request.

Extracted files

5 files captured from the source.

SKILL.md

---
name: bilibili-auto-transcript
version: "5.2.0"
description: "B站视频转录+收藏夹扫描。三级降级(CC→AI→Whisper),AI摘要生成。"
homepage: https://clawhub.ai/54lynnn/bilibili-transcript
metadata:
  {
    "openclaw":
      {
        "emoji": "📼",
        "requires": { "bins": ["yt-dlp", "ffmpeg", "curl"] },
        "install":
          [
            {
              "id": "venv",
              "kind": "shell",
              "command": "cd {{SKILL_DIR}} && python3 -m venv .venv && .venv/bin/pip install openai-whisper requests python-dotenv",
              "label": "Setup virtual env & install Whisper",
            },
          ],
      },
  }
---

# 📼 Bilibili 视频转录 & 收藏夹自动扫描

**双模式技能** — 可以手动转录单个视频,也可以定时扫描收藏夹自动处理。

## 模式一:手动转录

当你给我一个 B站链接时,我会自动执行转录。

**用法:**
```bash
bash scripts/bilibili_transcript.sh "https://www.bilibili.com/video/BVxxxxx/"
```

**转录优先级(自动降级):**
1. ✅ **人工CC字幕**(zh-CN, zh-TW, en, ja 等)→ 100%准确,秒出
2. ✅ **AI字幕**(ai-zh, ai-en, ai-ja 等9种语言)→ 85-90%准确,秒出
3. ✅ **OpenAI Whisper 语音转文字**(智能选模型)→ 有独显≥6GB 用 medium,<6GB 用 small;无独显用 base/tiny

**Whisper 智能模型选择:**

| 条件 | 模型 | 速度参考 |
|:----:|:----:|:--------:|
| **有 GPU,显存 ≥6GB** | medium | 高质量,~0.3x 实时 |
| **有 GPU,显存 <6GB** | small | 平衡,~0.5x 实时 |
| **无 GPU,视频 ≤30 分钟** | base | 质量与速度平衡 |
| **无 GPU,视频 >30 分钟** | tiny | 避免等待过久 |

- 自动检测 CUDA / nvidia-smi 获取显存
- 音频自动转为 16kHz 单声道 WAV(统一格式)

### 设计决策:为什么从 Qwen3-ASR 换回 Whisper?

v4.x 引入了 Qwen3-ASR 作为本地转录引擎,v5.0 换回了 Whisper。核心原因:

1. **架构差异巨大** — Qwen3-ASR 是 **LLM 做语音转文字**,把音频整段送进大语言模型做推理,1.7B 模型要完整加载 LLM 权重,显存占用大、推理慢。Whisper 是**纯语音识别模型**,音频切成 30 秒一段做声学特征识别,不需要 LLM 推理,速度快得多
2. **资源占用** — Qwen3-ASR-1.7B 需要 4-6GB 显存且推理时间长(LLM 的 O(n²) attention),Whisper medium 虽然也要 ~5GB 显存但处理方式轻量,且有更小的模型可选(tiny 仅 ~39MB)
3. **安装省心** — `pip install openai-whisper` 一行搞定,模型首次使用时自动下载。Qwen3-ASR 需从 HuggingFace 下载 2-5GB 权重,国内网络经常失败
4. **够用即可** — 语音转文字在这个 skill 里是**三级降级的最后一环**,大多数视频走 CC 或 AI 字幕就完了。为这个兜底场景扛一个 LLM 级别的模型,不值当

**⚠️ 关于摘要:** 设置了 `OPENAI_API_KEY` 时,转录完成后脚本会自动调用 `generate_summary.py` 生成 AI 摘要。未设置 API key 时 TXT 中保留占位符,可后续运行 `fill_summaries.py` 批量补全。

转录只负责出文件,索引那是 knowledge-rag 自己的事。

---

## 模式二:收藏夹自动扫描

定时检查 B站收藏夹,发现新视频后自动完成「转录 → AI 摘要 → 保存 → 通知」全流程。

### 工作流

```
定时触发 → 扫描收藏夹API → 对比已处理列表
  → 发现新视频 → 转录(三级降级)
  → (可选)AI读全文、写结构化摘要
  → 覆盖TXT中的摘要占位符
  → 记录bvid到已处理列表
  → 生成转录报告CSV
  → 通知用户(标题/作者/时长/转录来源/摘要/TXT文件)
```

### 批量转录(推荐)

```bash
.venv/bin/python3 scripts/batch_transcribe.py
```

自动扫描收藏夹全部视频,逐个转录,支持:
- **断点续传** — 中断后重跑自动跳过已处理视频
- **自动重试** — 失败任务自动重试2次
- **转录报告** — 生成 CSV 报告,含来源分布统计
- **AI摘要** — 有 API key 时自动生成(三种模式统一调用 `scripts/generate_summary.py`)
- **目录组织** — 按视频发布年月自动分目录存储
- **标题校验** — 转录完成后自动对比B站最新标题,UP主改标题时自动修正

### 首次设置

#### 1. 安装依赖
在技能目录下创建虚拟环境并安装依赖:
```bash
cd ~/.openclaw/workspace/skills/bilibili-auto-transcript
python3 -m venv .venv
.venv/bin/pip install openai-whisper requests python-dotenv
```

#### 2. 创建收藏夹
B站新建一个收藏夹,设为**公开**。

#### 3. 获取收藏夹ID
URL 中 `fid=` 后面的数字。

#### 4. 配置 AI 摘要(可选)
```bash
cd ~/.openclaw/workspace/skills/bilibili-auto-transcript
cp .env.example 

README.md

# 📼 Bilibili Auto Transcript

**B站视频自动转录 & 收藏夹扫描技能**

三级降级策略:CC字幕 → B站AI字幕 → OpenAI Whisper 语音转文字,自动获取 B站视频的文字内容。

## 功能

- **三级字幕降级**:人工CC字幕 → AI字幕(9种语言) → Whisper 本地转录,逐级自动降级
- **智能模型选择**:有GPU且显存≥6GB用medium,<6GB用small;无GPU用base/tiny(依视频时长)
- **收藏夹扫描**:分页获取收藏夹所有视频,去重、断点续传
- **批量转录**:自动遍历收藏夹新视频,支持重试、报告生成
- **AI摘要**(可选):设置 `OPENAI_API_KEY` 后自动生成结构化视频摘要
- **目录组织**:按视频发布年月自动分目录存储

## 设计决策

v5.0 从 Qwen3-ASR 换回了 Whisper 作为本地语音转文字引擎。原因:

- **架构差异** — Qwen3-ASR 是 **LLM 做语音转文字**,音频整段送进大语言模型推理,慢且吃显存。Whisper 是**纯语音识别模型**,30 秒一段做声学特征识别,不需要 LLM 推理,快得多
- **资源占用** — Qwen3-ASR-1.7B 需要 4-6GB 显存且推理时间久,Whisper 有更轻量的模型可选(tiny 仅 39MB)
- **安装省心** — `pip install openai-whisper` 一行搞定,模型自动下载。Qwen3-ASR 需从 HuggingFace 下 2-5GB 权重
- **够用即可** — 语音转文字是三级降级的最后兜底,为这个场景扛一个 LLM 级别的模型不值当

## 快速开始

```bash
# 1. 安装依赖(首次)
cd ~/.openclaw/workspace/skills/bilibili-auto-transcript
python3 -m venv .venv
.venv/bin/pip install openai-whisper requests python-dotenv

# 2. 手动转录单个视频
bash scripts/bilibili_transcript.sh "https://www.bilibili.com/video/BVxxxxx/"

# 3. 批量转录收藏夹所有新视频
.venv/bin/python3 scripts/batch_transcribe.py
```

## 依赖

- yt-dlp — 视频/字幕下载
- ffmpeg — 音频处理
- `openai-whisper` — 本地语音转文字引擎(通过 `.venv/bin/pip install openai-whisper` 安装)
- `requests` — HTTP 请求(批量转录用)
- `python-dotenv` — 加载 `.env` 文件(通过 `.venv/bin/pip install python-dotenv` 安装)
- opencc — 繁转简(可选)
- chromium-browser — Cookie支持(B站AI字幕)

## 配置

1. `cp .env.example .env`,编辑 `.env` 设置 `FAV_MEDIA_ID`(收藏夹ID)和 `OPENAI_API_KEY`(AI摘要)
2. 用 chromium-browser 登录 bilibili.com 获取 Cookie
3. 支持任何 OpenAI 兼容 API(DeepSeek、OpenCode Go、OpenRouter 等)

## 项目结构

```
bilibili-auto-transcript/
├── SKILL.md                    # Skill 元数据
├── .env                        # API密钥(不提交git)
├── .env.example                # 配置模板(提交git,供朋友参考)
├── .db/                        # SQLite 数据库(不提交git)
│   └── transcripts.db          # 转录记录+摘要数据库
├── scripts/
│   ├── bilibili_scanner.py     # 收藏夹扫描
│   ├── bilibili_transcript.sh  # 核心转录引擎(v5.0,Whisper)
│   ├── generate_summary.py     # AI摘要生成器(三种模式统一调用)
│   ├── transcript_db.py        # SQLite 数据库管理层
│   ├── fill_summaries.py       # 批量补摘要(cronjob推荐)
│   ├── migrate_to_db.py        # 旧TXT迁移到数据库
│   ├── logger.py               # 共享日志模块
│   └── batch_transcribe.py     # 批量转录调度
└── references/
    ├── architecture.md         # 架构说明
    └── bilibili-fav-api.md     # B站API参考
```

## 许可

MIT

_meta.json

{
  "ownerId": "kn742cdrc476d1kbhpsvnrnznx81x4r7",
  "slug": "bilibili-auto-transcript",
  "version": "5.2.0",
  "publishedAt": 1781281511501
}

references/architecture.md

# Scan-Script / Cronjob / Agent 三体架构

这是 bilibili-auto-transcript 使用的核心架构模式,适用于任何需要**定时扫描外部源 → 发现增量 → 由 AI 处理并通知**的任务。

## 架构示意

```
定时触发 (cronjob / 系统定时器)
    ↓
扫描脚本 (bilibili_scanner.py)
    → 调用外部 API 获取数据
    → 读取本地已处理记录 (processed_videos.txt)
    → 发现增量 (取差集)
    → stdout 输出新条目 (结构化文本)
    ↓ stdout
AI Agent(加载 skill)
    → 读取 stdout 中的新条目
    → 对每个新条目执行处理流程
    → 更新已处理记录
    → 通知用户
```

## 三个组件

### 1. 扫描脚本 (Scanner)
- 职责:只做"发现",不做"处理"
- 执行方式:快速(通常 <1 秒),通过 cronjob 定时触发
- 输出格式:结构化的纯文本标记,方便 agent 解析
  - `NO_NEW_ITEMS` / `ALL_CAUGHT_UP` — 无增量,agent 不做事
  - `NEW_ITEMS:N` + 逐条详细信息 — 有增量,agent 启动处理
- 状态维护:维护一个 `processed_xxx.txt` 文件,每行一个唯一 ID

### 2. 定时触发器 (Cronjob/Scheduler)
- OpenClaw 内置 cronjob:
  - `no_agent=False`(默认):script stdout 注入 prompt,agent 按 prompt 处理
  - `script=bilibili_scanner.py`(相对路径解析到 `~/.openclaw/workspace/skills/bilibili-auto-transcript/scripts/`)
  - `skills=[...]`:加载相关 skill 提供上下文
  - 无增量时 agent 只回复一句"无新内容",不打扰用户
- 外部定时器:
  - 用 Linux systemd timer、crontab 等触发扫描

### 3. AI 处理器 (Agent)
- 职责:处理新条目(分析、转换、生成、通知)
- 输入:扫描脚本的 stdout
- 输出:最终交付给用户的结果(文件、消息、摘要等)
- skill 提供处理步骤的完整定义

## 适用场景

这个模式适用于:
- 监控网站/API 的新内容(博客、新闻、社交平台)
- 定时检查文件系统变化
- 定时抓取数据并生成报告
- 任何"定期巡检 → 发现增量 → AI 分析 → 通知"的工作流

## 关键设计原则

1. **扫描脚本必须快** — 它只是 API 调用 + 集合比对,不应包含耗时操作
2. **增量记录用唯一 ID** — 用数据集的原生 ID(如 avid),不用文件名或标题,避免重名/改名导致重复处理
3. **不重复不遗漏** — 处理完立即记录 ID,agent 中途失败也不会漏掉
4. **无增量时静默** — 用户只在有变化时才收到消息
5. **自愈** — 脚本/agent 处理失败不阻塞后续扫描,下次运行时重试发现

references/bilibili-fav-api.md

# B站收藏夹API 参考

## 端点

```
GET https://api.bilibili.com/x/v3/fav/resource/list
```

## 参数

| 参数 | 类型 | 说明 | 限制 |
|------|------|------|------|
| `media_id` | int | 收藏夹ID(URL中 `fid=` 后的数字) | 必填 |
| `ps` | int | 每页数量 | **最大20**,超过返回 `code=-400`「请求错误」 |
| `pn` | int | 页码 | 默认1 |

## 认证

- **公开收藏夹**:无需Cookie,直接GET即可
- **私有收藏夹**:需要带B站登录态Cookie

## 响应结构

```json
{
  "code": 0,
  "message": "OK",
  "data": {
    "info": { ... },
    "medias": [
      {
        "id": 116366820508713,       // ← avid(用于去重追踪)
        "bvid": "BV1rPDkB7ESC",      // ← BV号(可直接用于转录)
        "bv_id": "BV1rPDkB7ESC",     // 部分响应用这个字段名
        "title": "视频标题",
        "duration": 298,             // 时长(秒)
        "upper": {
          "name": "UP主名"
        },
        "pubtime": 1775616958,       // 发布时间戳
        "fav_time": 1779933181       // 收藏时间戳
      }
    ],
    "has_more": false               // 是否有下一页
  }
}
```

## 注意点

### ps参数上限
`ps` 最大只支持 **20**。设 `ps=50` 会返回:
```json
{"code": -400, "message": "请求错误"}
```
如果收藏夹超过20个视频,需要分页请求(检查 `has_more` 字段)。

### avid vs bvid
- `id` = avid(数字ID),适合用于**去重追踪**
- `bvid` / `bv_id` = BV号(字符串),用于**构建转录URL**
- 部分API响应用 `bvid`,部分用 `bv_id`,建议同时检查两个字段

### 公开 vs 私有
公开收藏夹的API完全开放,无需Cookie。这个skill的扫描脚本使用公开访问。

### curl -L 陷阱
不要给B站API加 `-L`(跟随重定向)参数,会导致返回非JSON内容:
```
curl -s -L "https://api.bilibili.com/x/v3/fav/resource/list?media_id=xxx&ps=20"
# 返回:{"code":-400,"message":"请求错误"}
```

## curl 测试示例

```bash
# 获取收藏夹内容(公开)
curl -s "https://api.bilibili.com/x/v3/fav/resource/list?media_id=3972051046&ps=20&pn=1"

# 带Cookie访问(私有收藏夹)
curl -s -b /tmp/cookies.txt "https://api.bilibili.com/x/v3/fav/resource/list?media_id=xxx&ps=20&pn=1"
```

## Cookie 提取(私有收藏夹/会员视频用)

通过 yt-dlp 导出 Chromium Cookie:
```bash
CHROMIUM_PATH="$HOME/snap/chromium/common/chromium"
yt-dlp \
  --cookies-from-browser "chromium:$CHROMIUM_PATH" \
  --cookies /tmp/bili_cookies.txt \
  --skip-download \
  --print title \
  "https://www.bilibili.com/video/BV1rPDkB7ESC/"
```
⚠️ `--cookies` 参数读写双用,每次调用覆盖目标文件,不要在同一tick多次调用。

通过 yt-dlp 导出 Windows Edge Cookie:
```bash
WIN_USER=$(ls /mnt/c/Users/ | grep -v "Public\|Default\|All Users" | head -1)
yt-dlp \
  --cookies-from-browser "edge:C:/Users/$WIN_USER/AppData/Local/Microsoft/Edge/User Data" \
  --cookies /tmp/bili_cookies.txt \
  --skip-download \
  --print title \
  "https://www.bilibili.com/video/BV1rPDkB7ESC/"
```
Github ReposUpdated 9h agoRank 70

AionUi

Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

activepieces

AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW

Machine-readable data

The same record, as JSON, for agents and crawlers.

{
  "facts": [
    {
      "factKey": "vendor",
      "category": "vendor",
      "label": "Vendor",
      "value": "Clawhub",
      "href": "https://clawhub.ai/54lynnn/skills/bilibili-auto-transcript",
      "sourceUrl": "https://clawhub.ai/54lynnn/skills/bilibili-auto-transcript",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-09T23:41:04.354Z",
      "isPublic": true
    },
    {
      "factKey": "protocols",
      "category": "compatibility",
      "label": "Protocol compatibility",
      "value": "OpenClaw",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-54lynnn-bilibili-auto-transcript/contract",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-54lynnn-bilibili-auto-transcript/contract",
      "sourceType": "contract",
      "confidence": "medium",
      "observedAt": "2026-10-09T23:41:04.354Z",
      "isPublic": true
    },
    {
      "factKey": "traction",
      "category": "adoption",
      "label": "Adoption signal",
      "value": "1.9K downloads",
      "href": "https://clawhub.ai/54lynnn/bilibili-auto-transcript",
      "sourceUrl": "https://clawhub.ai/54lynnn/bilibili-auto-transcript",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-09T23:41:04.354Z",
      "isPublic": true
    },
    {
      "factKey": "latest_release",
      "category": "release",
      "label": "Latest release",
      "value": "5.2.0",
      "href": "https://clawhub.ai/54lynnn/bilibili-auto-transcript",
      "sourceUrl": "https://clawhub.ai/54lynnn/bilibili-auto-transcript",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-06-12T16:25:11.501Z",
      "isPublic": true
    },
    {
      "factKey": "handshake_status",
      "category": "security",
      "label": "Handshake status",
      "value": "UNKNOWN",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-54lynnn-bilibili-auto-transcript/trust",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-54lynnn-bilibili-auto-transcript/trust",
      "sourceType": "trust",
      "confidence": "medium",
      "observedAt": null,
      "isPublic": true
    }
  ],
  "events": [
    {
      "eventType": "release",
      "title": "Release 5.2.0",
      "description": "修复Cookie检测bug + 标题自动校验",
      "href": "https://clawhub.ai/54lynnn/bilibili-auto-transcript",
      "sourceUrl": "https://clawhub.ai/54lynnn/bilibili-auto-transcript",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-06-12T16:25:11.501Z",
      "isPublic": true
    }
  ]
}

Record generated Oct 10, 2026.

Sponsored

Ads related to Bilibili Auto Transcript and adjacent AI workflows.