Metadata-Version: 2.3
Name: bilibili-game-review-analyzer
Version: 0.1.3
Summary: B站游戏评论分析工具
Author: WZJ
Author-email: WZJ <1298683025@qq.com>
Requires-Dist: bilibili-api-python>=17.4.2
Requires-Dist: httpx>=0.28.1
Requires-Dist: langchain-qwq>=0.3.5
Requires-Dist: mcp[cli]>=2.0.0
Requires-Dist: python-dotenv>=1.2.2
Requires-Python: >=3.14
Description-Content-Type: text/markdown

# Bilibili Game Review Analyzer

基于 FastMCP 框架的 B 站视频分析服务，支持视频搜索、播放地址获取及 AI 内容概括。

## 功能特性

本项目提供以下三个 MCP 工具：

1. **get_video_results** — 根据关键词搜索相关视频，返回视频标题和 BV 号
2. **extract_videos_url** — 根据关键词获取视频的播放地址（含 cid）
3. **get_video_summary_tool** — 根据关键词搜索视频，并使用大语言模型概括视频内容

## 技术栈

- Python 3.14+
- FastMCP — MCP 服务器框架
- [bilibili-api-python](https://github.com/Nemo2011/bilibili-api) — B 站 API 客户端
- LangChain + Qwen — 视频内容智能概括

## 环境要求

- Python >= 3.14
- uv 包管理器

## 项目结构

```
bilibili-game-review-analyzer/
├── pyproject.toml                 # 项目配置与依赖管理
├── uv.lock                        # 依赖锁定文件（自动生成）
├── .env.example                   # 环境变量模板（可复制为 .env）
├── .gitignore                     # Git 忽略文件
├── README.md                      # 项目文档
│
├── src/
│   └── bilibili_game_review_analyzer/   # 包根目录
│       ├── __init__.py            # 包初始化，暴露公共 API
│       ├── __main__.py            # 支持 python -m 直接运行
│       ├── server.py              # MCP 服务器核心逻辑与工具注册
│       └── bilibili_client.py     # B 站 API 客户端封装
│
└── tests/                         # 测试目录（可选）
    └── test_bilibili_client.py
```

## 安装步骤

1. **克隆项目**

```bash
git clone <repository-url>
cd bilibili-game-review-analyzer
```

2. **使用 uv 安装依赖**

```bash
uv sync
```

## 环境变量配置

在项目根目录创建 `.env` 文件，配置以下环境变量：

```env
API_KEY=your_api_key_here
BASE_URL=your_api_base_url_here
MODEL=your_model_name_here
```

| 变量名 | 说明 |
|--------|------|
| API_KEY | Qwen 模型的 API 密钥 |
| BASE_URL | Qwen 模型的 API 基础地址 |
| MODEL | 模型名称（如 qwen-vl-plus） |

建议将 `.env` 添加到 `.gitignore` 中，避免敏感信息泄露。可参考 `.env.example` 模板文件。

## 使用方式

### 方式一：直接运行（开发模式）

```bash
uv run python -m bilibili_game_review_analyzer
```

### 方式二：通过命令行入口运行

安装后可通过注册的脚本命令启动：

```bash
uv run bilibili-game-review
```

### 方式三：通过 MCP 客户端集成

服务器默认使用 stdio 传输协议运行，可与支持 MCP 标准的客户端（如 Claude Desktop、Cursor、Continue 等）集成。

**本地开发测试配置**（使用本地代码）：

```json
{
  "mcpServers": {
    "bilibili_game_review_analyzer": {
      "command": "uvx",
      "args": [
        "--from",
        "D:/path/to/bilibili-game-review-analyzer",
        "bilibili_game_review_analyzer"
      ],
      "env": {
        "API_KEY": "your_api_key",
        "BASE_URL": "your_base_url",
        "MODEL": "your_model"
      }
    }
  }
}
```

**线上部署配置**（发布到 PyPI 后）：

```json
{
  "mcpServers": {
    "bilibili_game_review_analyzer": {
      "command": "uvx",
      "args": ["bilibili_game_review_analyzer"],
      "env": {
        "API_KEY": "your_api_key",
        "BASE_URL": "your_base_url",
        "MODEL": "your_model"
      }
    }
  }
}
```

## 工具说明

### get_video_results

根据关键词搜索相关视频，返回视频标题和 BV 号。

**参数**：
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|--------|------|------|--------|------|
| keyword | str | ✅ | — | 搜索关键词 |
| limit | int | ❌ | 1 | 返回结果数量限制 |

**返回**：视频列表 `List[Dict]`，每个元素包含 `title`（标题）和 `bvid`（BV 号）

---

### extract_videos_url

根据关键词获取视频的播放地址。

**参数**：
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|--------|------|------|--------|------|
| keyword | str | ✅ | — | 视频关键词 |
| limit | int | ❌ | 1 | 最大返回视频数量 |

**返回**：视频信息列表 `List[Dict]`，每个元素包含 `title`、`bvid`、`cid`、`video_url`（播放地址）

---

### get_video_summary_tool

根据关键词搜索视频，并使用大语言模型概括视频内容。

**参数**：
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|--------|------|------|--------|------|
| keyword | str | ✅ | — | 视频关键词 |
| limit | int | ❌ | 1 | 最大返回视频内容数量 |

**返回**：概括内容列表 `List[str]`

## 配置说明

项目通过 `pyproject.toml` 集中管理所有配置：

```toml
[project]
name = "bilibili_game_review_analyzer"
version = "0.1.0"
description = "B站视频搜索与总结 MCP 服务器"
requires-python = ">=3.10"
dependencies = [
    "mcp>=1.0.0",
    "bilibili-api-python>=16.0.0",
    "python-dotenv>=1.0.0",
    "langchain-qwq>=0.1.0",
]

[project.scripts]
bilibili-game-review = "bilibili_game_review_analyzer:main"
```

## 开发与测试

运行测试（如有）：

```bash
uv run pytest
```

代码格式化与检查（建议使用 ruff）：

```bash
uv run ruff check .
uv run ruff format .
```

## 注意事项

- 请确保环境变量正确配置，否则 LLM 调用将失败。
- B 站 API 存在访问频率限制，高频请求可能触发风控。
- 视频播放地址存在有效期，获取后请及时使用。

## 免责声明

- **本项目仅供个人学习研究使用，请勿用于商业用途。**
- 本项目非 B 站官方产品，与哔哩哔哩公司无任何关联。
- 本项目使用的第三方库 [bilibili-api-python](https://github.com/Nemo2011/bilibili-api) 为开源项目，非 B 站官方提供的 API。
- 通过本项目获取的视频内容版权归原作者所有，未经授权不得转载或商用。
- 使用本项目时请严格遵守 B 站用户协议及相关法律法规，使用者需自行承担因使用本项目而产生的一切风险和责任。
- 本项目不对第三方库的合法性、稳定性及安全性做任何担保。

## 许可证

本项目使用 MIT 许可证，详见 [LICENSE](LICENSE) 文件。