https://github.com/yangyuwuhan/astrbot_plugin_summary
一个 AstrBot 插件,可通过 URL 下载视频并生成 AI 总结。
https://github.com/yangyuwuhan/astrbot_plugin_summary
astrbot astrbot-plugin yangyuwuhan
Last synced: 5 days ago
JSON representation
一个 AstrBot 插件,可通过 URL 下载视频并生成 AI 总结。
- Host: GitHub
- URL: https://github.com/yangyuwuhan/astrbot_plugin_summary
- Owner: Yangyuwuhan
- License: mit
- Created: 2026-05-13T12:48:41.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-06-05T13:44:08.000Z (7 days ago)
- Last Synced: 2026-06-05T15:11:22.253Z (7 days ago)
- Topics: astrbot, astrbot-plugin, yangyuwuhan
- Language: Python
- Homepage: https://yangyuwuhan.fun
- Size: 152 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# astrbot_plugin_summary
一个面向 AstrBot 的视频/音频总结插件。
插件会根据用户输入的 URL 进行解析与下载资源,提取音频后调用必剪转写接口生成字幕,再交给 LLM 输出结构化中文总结。
## 功能特性
- 支持多平台 URL 解析,支持直链媒体作为回退兜底
- 借助必剪接口实现音频转文字
- 本地硬盘缓存,重复 URL 直接从本地获取字幕和总结内容,降低成本
- 支持强制总结,复用本地字幕并重新调用 LLM,覆盖旧总结,防止偶然错误
- 注册 LLM 工具,对话中自动识别视频/音频链接并提取内容,无需手动指令
## 工作流程
1. 用户发送 `/总结 url` 或 `/强制总结 url`指令
2. 解析器识别并解析目标平台链接
3. 下载媒体并提取音频
4. 调用必剪接口进行字幕转写
5. 按提示词模板构建 Prompt 并调用 LLM
6. 返回总结结果,并按配置写入本地缓存
## 安装方式
下面本仓库zip文件,在astrbot仪表盘安装
## 配置说明
- `llm_provider`:总结使用的模型提供商,留空使用全局 LLM
- `show_token_usage`:是否在结尾输出 token 使用情况与总结耗时
- `enable_cache`:是否启用本地缓存
- `processing_timeout`:LLM 总结超时秒数
- `summary_template`:总结模板选择,仅支持内置 `default.txt` 和 `concise.txt`
- `whitelist` / `blacklist`:白名单/黑名单
- `source_max_size` / `source_max_minute`:下载资源大小与时长限制
- `download_timeout` / `download_retry_times` / `common_timeout`:下载与请求超时控制
- `proxy`:全局代理地址
- `enable_media_summary_tool`:是否向 LLM 注册媒体总结工具
- `enable_media_subtitle_tool`:是否向 LLM 注册字幕提取工具
- `parsers_template`:各平台解析器开关与参数,默认启用 B站、抖音、直链媒体,具体请参考[astrbot_plugin_parser](https://github.com/Zhalslar/astrbot_plugin_parser)
## LLM 工具
插件注册了两个 LLM 工具,可在对话中由 LLM 自动判断并调用,无需用户手动输入指令:
### `summary_extract_media_summary`(媒体总结工具)
当对话中出现视频/音频链接时,LLM 可调用此工具获取内容的 AI 总结。
- **流程**:解析链接 → 下载媒体 → 提取音频 → 必剪转写 → 调用插件配置的 LLM 生成总结 → 返回精炼摘要
- **适用场景**:用户分享视频链接并询问"这个视频讲了什么"时,LLM 自动提取并总结
### `summary_extract_media_subtitle`(字幕提取工具)
提取视频/音频链接中的原始字幕文本(含时间戳),不进行 AI 总结。
- **流程**:解析链接 → 下载媒体 → 提取音频 → 必剪转写 → 返回带时间戳的字幕
- **适用场景**:需要逐字分析原始语音内容,或对字幕进行二次处理
## 缓存策略
当 `enable_cache=true`:
- `/总结 url`:若命中 URL 对应总结缓存,直接返回缓存总结
- `/强制总结 url`:若命中本地字幕缓存,跳过下载与转写,直接交给 LLM 重新总结并覆盖旧缓存总结
- LLM 工具与 `/总结` 命令共用同一套本地缓存。
缓存数据储存在 `data/plugin_data/astrbot_plugin_summary/cache/`
## 注意
- 支持的 URL 请参考 [astrbot_plugin_parser](https://github.com/Zhalslar/astrbot_plugin_parser)
- 提示词模板位于 `data/plugins/astrbot_plugin_summary/core/prompts/`,可直接修改已有模板文件来自定义输出效果;插件更新时模板会恢复为仓库原模板。
- 本插件的工作依赖于音频转文字,并非直接浏览视频
- 本插件采用 **vibe coding**,作者已对其功能进行严格审查,但不保证插件稳定性
## 致谢
- 本项目使用了 [astrbot_plugin_parser](https://github.com/Zhalslar/astrbot_plugin_parser) 的部分代码实现资源下载
- 本项目受 [astrbot_plugin_biliVideo](https://github.com/storyAura/astrbot_plugin_biliVideo) 启发,使用必剪的接口实现视频字幕提取
- 本项目使用了 [astrbot_plugin_markdown_killer](https://github.com/AlanBacker/astrbot_plugin_markdown_killer) 的主要逻辑实现对 markdown格式 的严格剔除