内容
# 🎬 Bili_VideoRead_MCP
> ~~让 AI 也能看 B 站~~ 把 B 站视频喂给你的 AI,一键萃取字幕和元数据,输出 Markdown 供 LLM 消化。
你的 AI 助手(Claude、ChatGPT、Cherry Studio…)不用再对 B 站链接干瞪眼了。丢个 BV 号进去,自动拉取字幕、标题、UP 主、播放量,整理成结构清晰的大段 Markdown,AI 读完就能给你总结、提炼、翻译、二次创作——**投币的事交给人类,看视频的事交给 AI** ⚡
请给个 ⭐ Star 支持一下,作者会更有动力更新和维护!
---
## ✨ 功能介绍
| 功能 | 简介 |
|------|--------|
| 🔗 链接识别 | BV/AV 号、完整链接、短链接 `b23.tv` 通吃 |
| 📋 元数据提取 | 标题、UP 主、时长、播放量……一个不落 |
| 💬 字幕提取 | 优先中文 AI 字幕,自动回退,需登录态 |
| 📄 Markdown 输出 | 结构化分层,AI 一眼看完,直接开聊 |
---
## 🚀 快速开始
### 安装
```bash
pip install -e .
# 或者用 uv:
uv pip install -e .
```
### 获取 B 站 Cookie(必须 🙏)
B 站 AI 字幕接口需要登录态。只需两个字段即可通关:
1. 打开 [bilibili.com](https://www.bilibili.com) 并**登录**
2. 按 `F12` → 顶部点 **Application** → 左侧点 **Cookies** → `bilibili.com`
3. 在表格里找到 `SESSDATA`,**双击 Value** 复制(值类似 `abc%2Cdef`)
4. 同理复制 `bili_jct`
### 接入 MCP 客户端
以 **Cherry Studio** 为例:
```json
{
"mcpServers": {
"videoread": {
"command": "C:\\Users\\22136\\AppData\\Local\\Programs\\Python\\Python312\\python.exe",
"args": ["-m", "videoread_mcp"],
"env": {
"BILIBILI_SESSDATA": "你的SESSDATA",
"BILIBILI_BILI_JCT": "你的bili_jct"
}
}
}
}
```
> 💡 也支持完整 Cookie:把两行 env 替换成 `"BILIBILI_COOKIE": "完整Cookie字符串"` 即可。
Claude Desktop / VS Code Copilot 同理,配好 `env` + 重启。
### 开用
配置完成 → 重启客户端 → 对话里直接丢链接:
> 帮我总结下这个视频讲了啥:https://www.bilibili.com/video/BV1xx411x7xx
AI 自动调 `extract_bilibili_video` 拿字幕,秒出总结。
---
## 🛠️ MCP 工具
### `extract_bilibili_video`
| 参数 | 类型 | 必填 | 默认 | 说明 |
|------|------|------|------|------|
| `url` | string | ✅ | — | B 站视频链接(BV/AV/短链均可) |
| `include_timestamps` | boolean | ❌ | `false` | 是否在字幕里带上 `[00:01]` 时间戳 |
**返回**:结构化 Markdown,包含视频信息表 + 字幕全文。
---
## 🏗️ 项目结构
```
Bili_VideoRead_MCP/
├── pyproject.toml
├── README.md ← 你在这里
├── src/videoread_mcp/
│ ├── server.py ← MCP Server(工具注册 & stdio 启动)
│ ├── extractor.py ← 核心:yt-dlp + B 站 WBI 签名 + Cookie 鉴权
│ ├── formatter.py ← 元数据 + 字幕 → Markdown
│ ├── __init__.py
│ └── __main__.py
└── tests/
└── test_extractor.py ← 17 个单元测试 ✅
```
---
## 🔧 技术栈
| 依赖 | 作用 |
|------|------|
| [MCP SDK](https://github.com/modelcontextprotocol/python-sdk) | MCP 协议 stdio 通信 |
| [yt-dlp](https://github.com/yt-dlp/yt-dlp) | 视频元数据提取 + 浏览器 Cookie 加载 |
| [httpx](https://www.python-httpx.org/) | B 站 API 直连(WBI 签名 + Cookie) |
| Python ≥ 3.10 | 🐍 |
---
## 📌 注意事项
- Cookie **会过期**,某天字幕突然拿不到了 → 重新复制 `SESSDATA` 和 `bili_jct` 即可
- 本工具**不下载视频**、**不掉用弹幕**、纯字幕 + 元数据
- 仅供学习交流,请遵守 B 站相关协议 🫡
---
## 📄 License
MIT