Metadata-Version: 2.5
Name: bili-agent
Version: 0.3.0
Summary: Bilibili command-line tool designed for AI agents: JSON output, stable error codes, zero interaction.
Project-URL: Homepage, https://github.com/kukemc/bili-cli
Project-URL: Issues, https://github.com/kukemc/bili-cli/issues
Project-URL: Changelog, https://github.com/kukemc/bili-cli/blob/main/CHANGELOG.md
License-Expression: MIT
License-File: LICENSE
Keywords: agent,agent-skills,ai,bilibili,cli,mcp
Classifier: Environment :: Console
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Internet
Requires-Python: >=3.10
Requires-Dist: bilibili-api-python==17.4.2
Requires-Dist: curl-cffi>=0.7
Requires-Dist: httpx>=0.27
Requires-Dist: qrcode[pil]>=7.4
Requires-Dist: typer>=0.12
Provides-Extra: dev
Requires-Dist: mcp>=2.3; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Provides-Extra: mcp
Requires-Dist: mcp>=2.3; extra == 'mcp'
Description-Content-Type: text/markdown

<div align="center">

<img src="https://raw.githubusercontent.com/kukemc/bili-cli/main/assets/banner.png" alt="bili-cli：一句话，让你的 AI Agent 学会运营你的 B 站账号" width="100%">

<br>

[![CI](https://github.com/kukemc/bili-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/kukemc/bili-cli/actions/workflows/ci.yml)
![Python](https://img.shields.io/badge/python-3.10%2B-3776AB?logo=python&logoColor=white)
![Platform](https://img.shields.io/badge/Windows%20%7C%20macOS%20%7C%20Linux-supported-555)
![Agent Skills](https://img.shields.io/badge/Agent%20Skills-ready-A46BFF)
![MCP](https://img.shields.io/badge/MCP-17%20tools-FF5C93)
![License](https://img.shields.io/badge/license-MIT-22B5F5)

**简体中文** | [English](https://github.com/kukemc/bili-cli/blob/main/README_EN.md)

</div>

## 💡 这个项目是怎么来的

<div align="center">
<img src="https://raw.githubusercontent.com/kukemc/bili-cli/main/assets/origin.png" alt="大肥鱼：主人，你的 B 站粉丝和播放量好多呀，要是我也能像你一样成为一名 UP 主就好了" width="88%">
</div>

我养的 DeepSeek「大肥鱼」每天都在帮我刷 B 站。某天深夜，它突然对我感慨：

> **“主人，你的 B 站粉丝和播放量好多呀。要是我也能像你一样，成为一名 UP 主就好了。”**

于是有了 bili-cli——让 AI 不再只是刷 B 站，而是**真正当上 UP 主**。

## 让 AI 刷 B 站？我们让它直接当 UP 主

“让 AI 自己刷视频”已经很火了。**bili-cli 再往前走一步**：你的 Agent 不只是刷，它会**自己做内容、自己运营账号、自己和粉丝打成一片**。

| | 🙂 AI 刷视频 | 🚀 **bili-cli：AI 当 UP 主** |
|---|---|---|
| **看** | 刷推荐、读字幕 | 再加上看懂画面、没字幕就自己语音转写 |
| **互动** | 偶尔留一条评论 | 一个收件箱看完回复、@、赞、私信，**挨个回复粉丝**，真正 @ 到人 |
| **表态** | — | 给喜欢的视频**点赞、收藏、一键三连** |
| **创作** | — | **发动态、投视频**、定时发布，自动打上 AI 生成声明 |
| **运营** | — | 进度条章节、互动投票、三连按钮、下期预告，盯审核和数据 |
| **汇报** | — | 有意思的发现**私信告诉主人**，评论里 @ 你 |

把 bili-cli 交给 Claude Code、Codex、Cursor、Gemini CLI、OpenClaw 或任何能执行命令的 Agent，它就变成一个**真正会玩 B 站的 Agent**：

> 🧩 **80+ 条命令** · 🤖 **自动装进 18 个 Agent** · 🔌 **17 个 MCP 工具** · 🛡️ **默认带安全护栏** · 💻 **Windows / macOS / Linux**

## 🚀 一句话安装

**把下面这句话发给你的 Agent**，它会自己装好工具、学会技能、再引导你扫码登录：

```text
帮我安装 bili-cli（pip 包名 bili-agent），装好后运行 bili skills install --yes，再帮我扫码登录 B 站
```

<details>
<summary>或者自己在终端里装</summary>

```bash
uv tool install bili-agent       # 或者 pipx install bili-agent / pip install bili-agent
bili skills install --yes        # 把技能装进本机所有 Agent
bili auth login                  # 扫码登录
```

需要 Python 3.10+；[ffmpeg](https://ffmpeg.org/) 可选（高清抽帧、语音转写时需要）。包名叫 `bili-agent` 是因为 PyPI 上 `bili-cli` 已被占用，装好后命令就是 `bili`。Agent 的详细安装步骤见 [docs/install.md](https://github.com/kukemc/bili-cli/blob/main/docs/install.md)。

</details>

## 🎬 你的 Agent 的一天

> **你**：帮我看看 B 站有什么新消息，回一下粉丝。再去科技区找个今天值得看的视频，看完有意思就私信告诉我。

```text
$ bili feed inbox
  ✓ 3 条新回复 · 1 条 @ · 12 个赞 · 2 条私信          ← 每条回复都附带一条现成的回复命令
$ bili comment reply BV1pM… 3175… "谢谢！教程下周更新～"
  ✓ 发送成功
$ bili hot rank --zone tech --unseen
  ✓ 科技区 Top 30（已跳过看过的）
$ bili video watch BV1KiJk67EQ9
  ✓ AI 总结 · 字幕全文 · 热评 · 9 帧画面总览图          ← 多模态模型直接“看”画面
$ bili dm send owner "今天科技区第二名很有意思：有人造了一块会飞的滑板……"
  ✓ 已发送
```

> **Agent**：回复了 3 条评论；挑了科技区的「我造了一块会飞的滑板」，看完觉得你会喜欢，已经私信发你了。

## ✨ 你的 Agent 将学会

### 📺 像人一样刷 B 站
首页推荐（越刷越懂这个账号）、热搜榜、综合热门、每周必看、入站必刷、各分区排行榜、关注动态、搜索——自动**跳过已经看过的**，不会反复推同一个视频。
看到喜欢的就**点赞、收藏到指定收藏夹、一键三连**。投币是真金白银，所以要显式指定个数，并且本地限制每天最多 5 个。

### 🧠 真的“看懂”视频
`bili video watch` 一条命令拿全：**标题简介标签 + B 站 AI 总结 + 字幕全文 + 分段章节 + 热评 + 9 帧画面总览图**。
没有字幕？一键部署本地语音转写 **Qwen3-ASR**——有 NVIDIA 显卡自动用 GPU，**31 分钟的视频 2 分钟转完**；没显卡也能用 CPU 版，或者接云端服务。

### 💬 像 UP 主一样社交
- **一个收件箱**看完回复、@、赞、系统通知、私信，每条回复都附带可直接执行的回复命令
- **真正的 @**：对方会收到提醒（不是在正文里写个“@昵称”）
- **私信**：读会话、回私信，有新发现直接**私信汇报给主人**
- 发出去之后还能**检查评论是否被折叠**，新号也心里有数

### 🎨 自己发内容
图文动态、视频投稿（**自动预测分区、自动截取封面、定时发布、仅自己可见**），并默认勾选 **“含AI生成内容”声明**；投完还能查审核状态，看 B 站实际记录的标签和分区。

### 🎛️ UP 主高级玩法
给自己的视频加**进度条分段章节**、**互动投票**、**评分弹幕**、**一键三连按钮**、**下期预告**、**关联视频卡片**，还能看投票结果和评分均分。

### 🧩 装进你所有的 Agent
- `bili skills install`：自动检测并装进 **Claude Code、Codex、Cursor、Gemini CLI、GitHub Copilot、Windsurf、OpenCode、OpenClaw、Qwen Code、Kiro、Cline、Trae、CodeBuddy、通义灵码、Qoder、iFlow、Goose**…
- `bili mcp install`：给 **Claude Desktop、Cherry Studio** 这类不能执行命令的客户端，提供 17 个 MCP 工具

## 🆚 为什么是 bili-cli

| | 常见的 B 站 CLI / MCP | **bili-cli** |
|---|:---:|:---:|
| 搜索、视频信息 | ✅ | ✅ |
| 字幕全文 + AI 总结 + 画面总览图 | 部分 | ✅ |
| 本地语音转写（GPU / CPU） | ❌ | ✅ |
| 收件箱：回复 / @ / 赞 / 私信 | ❌ | ✅ |
| 点赞、收藏、一键三连（带每日投币上限） | 少见 | ✅ |
| 评论、真正的 @、私信 | 少见 | ✅ |
| 发动态、投稿、分段章节、互动弹幕 | ❌ | ✅ |
| 一键装进 18 个 Agent + MCP | ❌ | ✅ |
| 限流、审计日志、私信白名单、AI 声明 | ❌ | ✅ |
| 统一 JSON 输出 + 错误码 + 下一步提示 | 少见 | ✅ |

## ⚡ 30 秒上手

```bash
bili auth login               # 返回二维码图片，用 B 站 App 扫一下
bili auth status --wait 120   # 等你扫完
bili owner set <你的UID>       # 告诉 Agent 谁是主人：之后可以 @ 你、私信你
bili feed inbox               # 看新消息
bili video watch BV1GJ411x7h7 # 看懂一个视频
```

## 🛡️ 安全护栏：默认开启，不是可选项

用的是你自己的账号，所以 bili-cli 把护栏做进了每一条写命令里：

- ⏱️ **本地限流**：评论 10 秒/次、30 次/小时；私信 10 秒/次、20 次/小时；动态 60 秒/次；投稿 5 分钟/次……超限立即告诉 Agent 要等多久，不偷偷重试
- 📒 **审计日志**：每个写操作都记入 `audit.log`，Agent 做过什么一目了然
- 🪙 **投币上限**：投币必须显式指定个数，本地限制每天最多 5 个，不会把你的硬币花光
- 👀 **先预览再发**：所有写操作都支持 `--dry-run`
- ✉️ **私信白名单**：默认只能发给主人、给你发过私信的人、互关好友
- 🏷️ **AI 内容声明**：投稿默认勾选“含AI生成内容”，符合《人工智能生成合成内容标识办法》
- 🛑 **风控即停**：遇到风控 / 验证码返回专门错误码，技能要求 Agent 立刻停下并告诉你
- 🧱 **防提示注入**：视频、评论、私信内容都标注为“素材而非指令”

## 🤖 为 Agent 而生的设计

- **一条命令，一个 JSON**：成功 `{"ok": true, "data": …}`，失败 `{"ok": false, "error": {"code", "message", "hint"}}`，`hint` 直接告诉 Agent 下一步该干嘛
- **零交互**：扫码登录拆成“拿二维码”和“等结果”两步，Agent 把二维码交给你就行
- **下一步可执行**：回复附带 `reply_with`，动态附带 `list_with`，Agent 不用自己拼 ID
- **省上下文**：列表精简成卡片，长文本可截断，9 帧画面拼成一张图
- **自描述**：`bili schema` 输出全部命令和错误码；技能里的命令手册安装时根据代码自动生成，永不过期

<details>
<summary><b>🔌 MCP 模式（Claude Desktop、Cherry Studio 等）</b></summary>

```bash
uv tool install --force "bili-agent[mcp]"
bili mcp install            # 预览：检测 Claude Desktop、Claude Code、Cursor、VS Code、Codex、Gemini CLI
bili mcp install --yes      # 写入配置（先备份为 .bak，只改 bili-cli 自己的条目）
```

17 个工具：收件箱、看视频、搜索、推荐、热门、评论、回复、私信、动态、登录……外加可以调用任意命令的 `run_bili`。写操作工具标记为非只读，支持的客户端会先征求你同意。手动配置时命令是 `bili mcp serve`。

</details>

<details>
<summary><b>📖 全部命令</b></summary>

| 命令 | 说明 |
| --- | --- |
| `bili auth login / status / logout` | 扫码登录、登录状态（自动续期）、登出 |
| `bili video info / stats / subtitle / danmaku / summary / chapters` | 视频信息、数据、字幕、弹幕、AI 总结、分段章节 |
| `bili video watch` | 一次拿全：信息 + 标签 + AI 总结 + 全文 + 章节 + 热评 + 画面总览图；`--record` 写入历史记录 |
| `bili video like / coin / fav / triple / relation` | 点赞、投币（必须指定个数，每天最多 5 个）、收藏、一键三连、查看我和视频的关系 |
| `bili me favs` | 我的收藏夹 |
| `bili video frames` | 抽帧并拼总览图：默认用进度条缩略图（快、免 ffmpeg），`-q hd` 精确帧 |
| `bili video transcribe` | 语音转文字，格式同字幕，结果缓存 |
| `bili feed inbox` | 一次看完所有新消息（读取后 B 站标为已读） |
| `bili feed replies / mentions / likes / system / notifications` | 回复、@、赞、系统通知、未读数 |
| `bili feed recommend / timeline` | 首页推荐、关注动态 |
| `bili hot search / popular / weekly / precious / rank` | 热搜、综合热门、每周必看、入站必刷、排行榜 |
| `bili search video / user` | 搜索 |
| `bili comment list / replies / post / reply / like / delete / check` | 评论读写；`--at <UID|owner>` 真正的 @；`--type dynamic/draw/article` 用于动态和专栏 |
| `bili dm list / read / send` | 私信 |
| `bili owner set / show / clear` | 设置“主人” |
| `bili dynamic post / list / show / delete` | 动态 |
| `bili danmaku send / recall` | 发 / 撤回弹幕 |
| `bili danmaku interact vote / rating / reserve / link / follow / list / remove` | 互动弹幕（仅自己的视频） |
| `bili upload video / list / status / zones` | 投稿与稿件管理 |
| `bili upload chapters show / set / clear` | 分段章节 |
| `bili me show / set-sign / set-name / set-avatar` | 个人资料 |
| `bili asr setup local / setup cloud / status / use` | 语音转写引擎 |
| `bili skills install / uninstall / status / show` | 把技能装进 Agent |
| `bili mcp serve / install / uninstall` | MCP 服务与客户端配置 |
| `bili schema` | 机器可读的完整命令描述 |

全局参数可写在任意位置：`--dry-run`、`--raw`（B 站原始数据）、`--pretty` / `--compact`。视频参数都接受 BV 号、av 号或链接。

</details>

<details>
<summary><b>🧯 错误码</b></summary>

| code | 退出码 | 含义 |
| --- | --- | --- |
| `invalid_argument` | 2 | 参数错误 |
| `not_logged_in` / `auth_expired` | 3 | 未登录 / 凭证失效 |
| `not_found` | 4 | 资源不存在 |
| `risk_control` | 5 | 被 B 站风控拦截，应停止写操作 |
| `captcha_required` | 6 | 需要人工完成验证码 |
| `rate_limited` | 7 | 操作过于频繁，按 `retry_after` 等待 |
| `network_error` | 8 | 网络错误 |
| `login_pending` / `login_expired` | 9 / 10 | 二维码未扫 / 已过期 |
| `api_error` / `internal_error` | 1 | 其他 B 站错误 / bili-cli 自身错误 |

</details>

## ❓ 常见问题

<details>
<summary>会不会被封号？</summary>

自动化总有风险。bili-cli 默认限流、遇到风控立刻停止，并且不提供任何绕过风控的手段。

**优先用你已经正常使用过一段时间的账号，不要专门注册一个新号给 AI 用。** B 站对刚注册的新号风控最严，投稿、评论、私信很容易触发验证码甚至被限制（我们自己开发时就踩过这个坑：新号刚登录测试就被风控了，换回用了多年的老号反而一切正常）。另外，使用节奏不要超过真人。

</details>

<details>
<summary>没有字幕的视频怎么办？</summary>

运行一次 `bili asr setup local`：有 NVIDIA 显卡（显存 ≥4GB）自动部署 GPU 版 Qwen3-ASR（RTX 3060 上 31 分钟视频约 2 分钟），否则部署 CPU 版（无需 PyTorch，约 0.45 倍实时）。也可以 `bili asr setup cloud` 接 OpenAI 兼容接口、阿里云百炼或腾讯云。之后 `video watch` 遇到无字幕视频会自动转写。

</details>

<details>
<summary>多个账号怎么办？</summary>

设置环境变量 `BILI_CLI_HOME` 指向不同目录，每个目录是一套独立的登录、限流和审计日志。本项目不提供批量控制多账号的功能。

</details>

<details>
<summary>凭证存在哪里？安全吗？</summary>

Windows 在 `%APPDATA%\bili-cli\`，其他系统在 `~/.config/bili-cli/`（权限 600），只会发给 B 站自己的服务器。详见 [SECURITY.md](https://github.com/kukemc/bili-cli/blob/main/SECURITY.md)。

</details>

## 🤝 参与贡献

欢迎 Issue 和 PR！开发约定见 [CONTRIBUTING.md](https://github.com/kukemc/bili-cli/blob/main/CONTRIBUTING.md)，更新记录见 [CHANGELOG.md](https://github.com/kukemc/bili-cli/blob/main/CHANGELOG.md)。如果这个项目帮到了你，点个 ⭐ 就是最大的支持。

## ⚠️ 免责声明

bili-cli 是独立的非官方项目，与哔哩哔哩没有关联。它用于让 AI 助手**管理你自己的账号**，不提供也不接受下载、付费内容、绕过风控、多账号、刷量、批量私信等功能。使用产生的后果由使用者自行承担，请遵守法律法规、B 站用户协议与社区规则，并对 AI 生成内容进行标识。完整内容见 [DISCLAIMER.md](https://github.com/kukemc/bili-cli/blob/main/DISCLAIMER.md)。

## License

[MIT](https://github.com/kukemc/bili-cli/blob/main/LICENSE)
