Skip to content

Releases: xiaoyaya191/bilibili_learning_bot

v3.1.5 Beta / 内测版

Pre-release

Choose a tag to compare

@xiaoyaya191 xiaoyaya191 released this 25 Aug 13:10

v3.1.5 Beta / 内测版\n\n本 Release 同时包含 Web 端和 Android Jetpack Compose 工程。\n\nAndroid 附件:\n- BiliLearn-Android-v3.1.5-beta-source.zip:清理后的 Android 源码(不含签名密钥、本机路径和构建缓存)\n- BiliLearn-release.apk:Release 安装包\n- BiliLearn-debug.apk:测试安装包\n- SHA256SUMS.txt:APK 校验值\n\nAndroid 工程使用 Gradle Wrapper,compileSdk/targetSdk 35。手机端 ASR 显示暂不支持,其他功能依赖 B 站账号和 AI 服务配置。

v3.1.4

Choose a tag to compare

@xiaoyaya191 xiaoyaya191 released this 22 Aug 18:01

修复了一些已知问题,并增加了新功能

v3.1.3

Choose a tag to compare

@xiaoyaya191 xiaoyaya191 released this 16 Aug 19:55

v3.1.3

修复了一些已知问题,并增加了一些功能

v3.1.2大更新

Choose a tag to compare

@baixiangyuan baixiangyuan released this 02 Aug 06:24

BiliLearn v3.1.2 更新总结

🐛 Bug 修复

  1. 人格保存失败"不存在" — 面板未重启导致的旧代码残留问题
  2. AI 429 限流雪崩 — 新增全局 60 秒冷却机制,3 次失败后优雅放弃,不再无限重试拖垮整个系统
  3. 评论 12006"没有该评论" — rpid 路由逻辑修复,优先使用真实评论 ID(source_id),不再误用分类编号(business_id),加了 > 100 阈值区分
  4. 导出缺少 Cookie — 修复了两个导出相关的真实 bug
  5. 思维导图加载失败 — jsdelivr CDN 国内不可达,改为内联资源 + 本地回退
  6. 备份恢复不认 .zip — api_import 只接受 .json,现在 .zip 也能识别
  7. EXE 窗口崩溃 — stdout=None 导致 print 异常,加了 _safe_flush() 保护
  8. 高分视频不给三连 — 新增 ≥ 8.0 分保底机制,AI 明确想互动就直接执行,跳过随机骰子

✨ 功能增强

  1. 观看历史封面补全add_history_video 新增 pic 参数,新视频自动带封面;点赞/收藏调用处传递 pic_url
  2. 批量重新获取资料 — 自动补全逻辑修复:切换筛选/刷新时清空尝试记录,允许重试之前失败的封面
  3. 知识辅导封面优化 — 封面获取增加 history.pic 回退,和观看历史逻辑一致
  4. Agent 上下文增强 — PrivateContextDB 新增 5 个方法:对话摘要、上下文压缩、关键信息提取
  5. Web UI 性能优化 — 7 个重页面加了 loading 动画(评论、观看历史、收藏夹、知识库、思维导图、UP关注、审核记录),API 分页缩小(评论 30、观看历史 30、审核 50)

🧪 测试 & 工程

  1. 测试套件 319 passed — 全部通过
  2. 项目清理打包 — 从 418 MB 清理到 8.8 MB 纯净源码,EXE 发布包 96 MB
  3. 数据目录统一 — 用户数据统一放 %LOCALAPPDATA%\BiliLearn,旧数据已清理

v3.0.2

Choose a tag to compare

@xiaoyaya191 xiaoyaya191 released this 08 Jul 22:19
a611eeb

v3.0.2
修复了一些已知问题(更新了几个实用小功能)

bilibili_learning_bot v3.0.1

Choose a tag to compare

@xiaoyaya191 xiaoyaya191 released this 04 Jul 07:11

v3.0.1 — 紧急修复 + 视频下载/抽帧功能增强 + 多项Bug修复

🩹 紧急修复(2026-07-02)

  • 修复 _mask_urls NameErrorbrain/_brain_ai.pybrain/_brain_interact.pybrain/_brain_loop.py 中补充显式导入 from utils.helpers import _mask_urls,解决因 Python import * 不导出下划线前缀函数导致的崩溃

🎬 视频下载:DASH 音视频分离 + ffmpeg 合并

问题:下载的视频没有声音。原代码使用 fnval=0 (FLV模式) + qn=32 (480P) 单流下载,新 B站视频的 FLV 流不含音频轨道。

方案A:DASH 模式(fnval=4048, qn=127)获取分离的视频流+音频流 → 分别下载 .m4s → ffmpeg 合并为 mp4(-c:v copy -c:a aac -b:a 192k

方案B:FLV 回退(无 ffmpeg 时)

使用 WBI 签名 + x/player/wbi/playurl 端点,超时 90s → 180s。

涉及文件xingye_bot/video_modes.pybrain/_brain_video.pyutils/helpers.pyREADME.md


🎞️ 抽帧功能修复

3 个 Bug 修复

# Bug 文件 影响
1 缺少 from pathlib import Path utils/helpers.py find_ffprobe() 调用时 NameError 崩溃
2 fps + -frames:v 组合冲突 xingye_bot/video_modes.py -frames:v 无法增加 fps filter 已决定的帧数,帧数经常不足
3 ffmpeg 静默失败 brain/_brain_video.py capture_output=Truecheck=True,失败没有任何日志

核心改动

  • extract_frames():移除 -frames:v,改为 fps={frame_count}/{duration} 精确计算帧率 + -vsync vfr
  • probe_duration():ffprobe 不可用时 fallback 到 ffmpeg stderr 解析 Duration: HH:MM:SS.ms
  • _extract_and_analyze_frames():同样的 fps 精确计算 + ffmpeg 返回码检查 + 错误/空帧日志

⚠️ 注意事项

  • 视频下载需要安装 ffmpeg(winget install ffmpegbrew install ffmpeg
  • 不是 pip install ffmpeg

bilibili_learning_bot v3.0.0

Choose a tag to compare

@xiaoyaya191 xiaoyaya191 released this 02 Jul 12:54

bilibili_learning_bot v3.0.0 更新日志
v3.0.0 - 架构重构 + 新功能 + Bug修复
🏗️ 架构重构
• 16.8K 行单体 new_agent.py → 4 行入口 start_cli.py + 24 个职责清晰的模块文件
• 新增 main.py 主入口,统一 CLI 和 Web 面板启动
• 拆分为 api/ / brain/ / knowledge/ / persona/ / security/ / services/ / utils/ / xingye_bot/
• 删除重复代码(interaction_service.py 17K 行)、死代码
• 统一配置系统,密码 SHA-256 哈希存储
• 网页界面优化

🆕 新增功能
🔔 @通知响应:在任何视频下评论"@bot 总结这个视频",bot 自动识别所在视频并总结回复
• 通过 B站 x/msg/at API 拉取 @我通知
• 无需手动提供 BV 号,从评论上下文自动提取
• 双模式支持:通知模式 + legacy 模式

📡 实时监听模式:独立于视频刷取的消息监听引擎
• 只盯私信和评论,有新消息立刻 AI 回复,不刷视频、不消耗精力
• Web面板新增「📡 实时监听」页面

🎨 视频→网页 + Claude 设计系统:将已学视频生成精美 PPT 风格 HTML
• 毛玻璃卡片 + 数字滚动动画(easeOutExpo 缓动)
• templates/claude/ 含 6 个参考页面 + AI 设计规范

🌐 Web面板UI全面重设计:毛玻璃效果、渐变按钮、动画过渡、响应式布局

🛡️ 安全审查:关键词过滤 + 政治敏感拦截 + 提示词注入防护

🔄 备用API降级:主 API 连续失败自动切换备用提供商,10分钟后自动恢复

📤 隐私导出:一键导出配置,API Key/Cookie 脱敏保护

🔧 Bug 修复
• 按 Q 切换快速模式时 bili.throttle 引用错误崩溃
• 主循环 _safe_task_callback 未定义崩溃
• 评论/私信节奏控制静默失效(缺少 datetime 导入)
• _reload_all_globals 遗漏 AI_MARKER 全局变量
• asyncio.gather 无 return_exceptions=True 导致并发异常
• 13 处 JSON 写入改为 tmp+replace 原子操作
• Flask session 密钥持久化
• 字幕获取 player/wbi/v2 412 风控修复:快速 fallback 到 player/v2 获取 AI 字幕
• V 命令字幕检测修复:改用 player/wbi/v2 + WBI 签名,正确识别 AI 字幕
• Cookie 扫描增强:V 命令自动扫描多个兄弟项目目录加载登录 cookie
• 未登录字幕提示:明确提示「部分视频需登录账号获取 AI 字幕」
• W 命令保存路径:默认改为项目根目录 web/ 文件夹

🔒 隐私数据全局扫描 + 恢复出厂设置完善
• 全局扫描:发现并修补 10 个遗漏的隐私文件
• R 命令简化:从 5 个 y/N 子问题 → 一键 YES 清空全部
• 安全性验证:所有被删除文件均自动重建或带 fallback 兜底

📁 新增文件
• main.py — 主入口
• brain/standby.py — 待机监听引擎 v2
• brain/monitor.py — 实时监听引擎
• services/video_to_ppt.py — 视频→HTML 网页生成
• services/agent_service.py — Agent 技能执行
• services/knowledge_tutor.py — 知识辅导
• templates/claude/ — Claude 设计系统
• tests/ — 43 个 pytest 测试

⚠️注意事项
• 监听模式与机器人主进程互斥
• 配置文件格式有变动,请参考 config.example.json

🩹 紧急修复 (2026-07-02)
• 修复 _mask_urls NameError:brain/_brain_ai.py、brain/_brain_interact.py、brain/_brain_loop.py 中补充显式导入 from utils.helpers import _mask_urls,解决因 Python import * 不导出下划线前缀函数导致的崩溃

bilibili_learning_bot v2.2.1

Choose a tag to compare

@xiaoyaya191 xiaoyaya191 released this 02 Jul 11:50

🏗️ 模块化重构

  • 新增 core/services/adapters/ 模块目录
  • 拆出 10+ 独立模块(config、managers、reply_safety、utils 等)

🔒 安全增强

  • CSRF 修复
  • Web 面板安全加固

🐳 部署

  • Docker 部署支持
  • start.sh 一键启动脚本

🧹 清理

  • 移除旧备份文件
  • 更新 .gitignore

bilibili_learning_bot v2.2.0

Choose a tag to compare

@xiaoyaya191 xiaoyaya191 released this 02 Jul 11:50

🔧 行为优化

  • 字幕校验不再兜底返回不匹配内容
  • 移除 8 轮外层重试及 best_fallback_text 收集机制
  • 字幕轨与视频标题不匹配时,逐轨尝试,全部失败则直接返回 False 跳过视频
  • 不再将 [极低置信度字幕-8轮重试均失败] 喂给 AI 学习
  • 节省了大量无效的 API 请求和 AI token 消耗
  • 内层重试次数优化: 字幕列表获取从 10 次降为 5 次

⚠️ 已知局限性

字幕与视频内容可能不匹配 — B站字幕由 ASR(语音识别)自动生成,部分视频的字幕文本可能存在识别错误、时序错乱或与画面实际内容有偏差。bot 依赖字幕理解视频,若字幕不准会影响 AI 评分和知识库质量。v2.2.0 已移除兜底机制使不匹配字幕直接跳过,但无法根本解决 ASR 质量问题。

📦 模块补全(services/ 迁移)

new_agent.py 内联版迁移到 services/ 统一管理:

  • MoodManager.shift(reason, delta) — 根据事件偏移心情值
  • UserProfileManager.update_impression(user_id, name, impression) — 记录用户印象
  • ReplySafetyGuard.find_hits(text) / review() / review_video_for_comment() — 敏感词审查

🌟 项目完整功能

🖥️ Web 控制台

python3 web_panel.py → 浏览器打开 http://127.0.0.1:8080

面板 功能
📊 仪表盘 实时统计卡片 + 评论活跃度趋势图 + 心情/精力曲线 + 每日操作统计图 + 视频处理速率图
🎮 机器人控制 启动/停止/重启机器人大脑,实时输出日志流
🔑 B站登录 网页生成二维码 → 手机扫码登录,支持登出和状态检查
⚙️ 配置编辑 JSON 编辑器直接修改 config.json
🎭 人格管理 创建/切换/删除 AI 对话人格(毒舌/温柔/学术...)
💡 心情管理 快速切换心情、随机心情间隔、自定义心情文字
⚡ 行为设置 AI免责声明开关、精力恢复参数、评论真实/模拟模式、敏感词黑名单
💬 评论日志 浏览所有评论互动历史,查看AI回复
👤 用户画像 每个互动用户的好感度和印象标签
🧠 记忆知识库 浏览bot的长期记忆和知识库内容
📖 日记进化 阅读AI写的日记和自我进化记录
📋 操作日志 按时间线查看所有操作
🎓 知识辅导 Web端选知识文件 → AI讲解/问答/二次创作/生成HTML网页
👥 UP主关注 查看AI已关注的UP主列表
🔧 功能中心 手动视频分析、手动发送弹幕、Agent技能、知识库整理/复习/统计、ASR设置
💾 系统管理 导出/导入配置、恢复出厂设置、登录鉴权

⌨️ 命令行菜单

python new_agent.py → 交互式主菜单,20+ 热键操作:

功能
1 [START] 启动机器人
2 ⚙️ 配置 AI 参数(API/模型/提示词/并发/Token/备用API/随机数/会话限制)
3 🔑 配置登录(扫码登录 / Cookie管理)
4 📚 管理知识库(浏览/搜索/统计/复习/重命名/辅导入口)
5 [TARGET] 管理兴趣爱好
6 [MSG] 评论互动设置(模式/概率/上限/冷却/情感图片分析)
7 📩 私信设置(开关/自动回复/上下文/频率/通用回复)
8 🧬 日记/自我进化(写日记/查看/触发进化/开关/阈值)
9 🛠️ Agent技能(定目标→搜索→看→写总结 / 历史记录)
F [*] UP主关注/弹幕(关注概率/上限/弹幕概率/发送/点赞频率)
G [ASR] ASR语音识别(开关/后端Whisper或FunASR)
M 😊 AI心情管理(随机/自定义/间隔)
D [GOLD] 干货归档(高分→highlights/)
V 📹 手动视频分析(BV号/链接/标题→AI解析评分)
K 🔄 知识库重温(选已学视频→重看或优化笔记)
T 🎓 知识辅导(讲解/问答/二次创作/生成HTML网页)
O 📂 一键整理知识库(AI自动归类)
E 📤 导出配置
I 📥 导入配置
R 🔄 恢复出厂设置
S 🛡️ 关键词审查开关

🎓 AI 知识辅导

选知识文件 → AI 讲解/问答/二次创作/生成HTML网页 — AI会写出完整的 .html 网页用卡片、代码块、流程图展示知识点,可直接浏览器打开或分享。

🤖 Agent 技能系统

给AI自然语言目标:「搜深度学习入门,看前3个视频,总结核心概念」→ AI自主 search_bilibili_videos → watch_bilibili_videos → write_diary/write_memory。支持深度搜索和自动触发。

bilibili_learning_bot v2.1.0

Choose a tag to compare

@xiaoyaya191 xiaoyaya191 released this 02 Jul 11:50
b782eb1

v2.1.0
修复了一些已知问题