Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BiliWatch

轻量、零登录、无封号风险的 B 站 UP 主投稿监控工具。为日本 Vocaloid / 独立音乐人 / MCN 内容运营场景设计。

Python License Claude Skill

特性

  • 🔐 零登录:无需 B 站账号 Cookie,纯读操作
  • 🛡️ 无封号风险:只用官方 wbi 签名接口,不做任何写操作
  • 🎯 风控友好:随机延迟 + 指数退避重试,处理 HTTP 412
  • 🤖 Claude 原生技能:附带 SKILL.md,可作为 Claude / Cowork 技能安装
  • 可定时:结合 Claude scheduled task 或 cron 实现全天候监控
  • 💾 增量保存:单个 UP 处理完立即落盘,中途崩溃不丢基线
  • 🌏 UP 主适配:兼容 B 站新老两代 UID 格式(含 16-17 位新格式)

使用场景

  • Vocaloid 曲师运营:监控合作曲师、竞品曲师的新投稿
  • 歌い手 / 翻唱运营:跟踪歌手新作品,第一时间联络合作
  • 绘师 / 映像师协作:视觉团队投稿动态跟进
  • MCN 内容运营:批量监控旗下/合作 UP 主的发布节奏
  • 粉丝私人使用:喜欢的 UP 一有更新立即知道

快速开始

git clone https://github.com/lepockyio-ops/biliwatch.git
cd biliwatch
pip install -r requirements.txt

# 首次运行会自动为已订阅的 UP 建立基线(静默,不推送历史稿件)
python biliwatch.py check

常用命令

python biliwatch.py check                              # 检查所有订阅的新稿件
python biliwatch.py list                               # 列出所有订阅 + 最新已知稿件
python biliwatch.py status                             # 显示状态(上次检查时间等)
python biliwatch.py add https://space.bilibili.com/XXX # 添加订阅(支持 URL 或纯 UID)
python biliwatch.py add 12345 "自定义名字"              # 添加时指定名字
python biliwatch.py remove 12345                       # 删除订阅
python biliwatch.py init                               # 重置基线(谨慎使用)

配置

编辑 config.yaml

subscriptions:
  - uid: 3706942788733015
    name: "二錠 (Nijou)"
  - uid: 3707005669739282
    name: "お冷やohiya (歌い手)"

settings:
  # 每个 UP 之间随机等待秒数区间(越大越安全,越小越及时)
  per_up_delay_sec: [5, 12]
  # 每次抓取的稿件页数(默认 10,覆盖两次检查之间的所有新稿件足矣)
  page_size: 10

作为 Claude 技能使用

本仓库包含 SKILL.md,可以作为 Claude Skill 安装到 Claude Desktop / Cowork:

  1. biliwatch/ 目录整体打包成 .skill(zip 后改后缀)
  2. 在 Claude 设置 → Capabilities → Skills → 安装

之后可以直接对 Claude 说:

结合 Claude scheduled task 自动监控

在 Claude 中说:

每 10 分钟自动跑一次 biliwatch,有新稿件就通知我

Claude 会创建定时任务,每次运行时读取输出并把新稿件以 markdown 卡片形式推给你。

独立部署(不依赖 Claude)

Cron(Linux / macOS)

*/10 * * * * cd /path/to/biliwatch && /usr/bin/python3 biliwatch.py check >> data/cron.log 2>&1

结合 Discord Webhook(推荐)

check 命令的输出后加个简单管道脚本,把 NEW | 开头的行转成 Discord 消息即可。示例见 examples/discord_notify.py(下个版本添加)。

输出格式

NEW | 二錠 (Nijou) | [本家] 新曲名字
    时间: 2026-07-14 20:00
    链接: https://www.bilibili.com/video/BVxxxx
    时长: 04:12  首次抓到播放: 234

结构化设计,方便下游脚本 / Claude / LLM 解析。

目录结构

biliwatch/
├── biliwatch.py       # 主脚本(wbi 签名、拉取、去重、状态)
├── SKILL.md           # Claude Skill 定义
├── config.yaml        # 订阅列表 & 采集设置
├── requirements.txt   # Python 依赖
├── README.md          # 本文件
├── LICENSE            # MIT
├── .gitignore
└── data/              # 运行时状态(不进仓库)
    ├── state.json     # 每个 UP 的最新已见稿件
    └── run.log        # 运行日志

技术实现

  • wbi 签名:完整实现 B 站最新的 Wbi 签名算法(img_key + sub_keymixin_key → MD5(query + mixin_key))
  • 接口GET https://api.bilibili.com/x/space/wbi/arc/search(空间投稿列表)
  • 风控处理:非 JSON 响应视为 412 拦截,指数退避 20/40/60s 重试 3 次
  • 会话管理:自动获取 buvid3 cookie,wbi key 每小时刷新一次
  • 参考bilibili-API-collect(B 站野生 API 收集)

已知限制

  • 仅监控视频稿件,暂不支持图文动态、专栏(v2 会加)
  • 云端 IP 容易被 B 站更严格风控,若持续 412 建议部署到家用宽带或加住宅代理
  • 每 UP 每次拉取最新 10 条稿件,若一个 UP 在两次检查之间发布超过 10 条会漏(Vocaloid / 歌手场景基本不可能)
  • 单向监控:只报告"有新的",不做二次互动(评论、投币等写操作永远不做,避免风控)

迭代路线

  • v1:视频稿件监控 + 基线管理 + Claude 技能
  • v2:图文动态 / 专栏监控(/x/polymer/web-dynamic
  • v3:关键词过滤(标题命中"本家"/"投稿"/曲名才推)
  • v4:Discord / Telegram / 企业微信推送模块
  • v5:与"BiliRadar 数据雷达"联动,发现新稿后自动开始 24h 播放/点赞追踪

贡献

欢迎 PR。特别欢迎:

  • 更多推送通道(Bark / Slack / 飞书 / Server 酱)
  • Docker 镜像
  • GitHub Actions workflow 示例
  • 图文动态 API 适配

License

MIT © 2026 Pocky

免责声明

本工具使用 B 站的野生 API(非官方开放平台),仅供个人学习和轻量运营辅助。使用者自行遵守 B 站服务条款。因滥用(高频请求、批量写操作、商业化爬虫等)造成的账号封禁或法律风险,与作者无关。

如需商业化 / 企业级应用,请使用 B 站官方开放平台

About

轻量、零登录、无封号风险的 B站 UP 主投稿监控工具。为日本 Vocaloid / 独立音乐人 / MCN 内容运营场景设计。附 Claude Skill 定义。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages