跳转至

弹幕池轮询与丢失排查

本页介绍监视器的轮询机制、存活判定逻辑,以及发现丢失弹幕后的排查流程。


轮询机制

监视器启动后,按以下流程循环工作:

每 N 秒(轮询间隔)
       │
       ▼
  遍历队列中所有已完成/运行中的任务
       │
       ▼
  提取每个任务的 (cid, 标识) 对
       │
       ▼
  调用 B 站弹幕池 API,拉取当前视频上可见的弹幕列表
       │
       ▼
  与已发送弹幕的 dmid 进行匹配
       │
       ▼
  更新统计数据(已存活 / 待验证)
       │
       ▼
  输出日志汇总

匹配依据

每条弹幕发送成功后,B 站会返回一个唯一的 dmid(弹幕 ID)。监视器通过比对 dmid 来判断弹幕是否存活:

  • 已存活:在弹幕池中找到了对应的 dmid(状态由待验证更新为已存活)。
  • 待验证:尚未在弹幕池中找到。无论经历多少轮查询,监视器都不会自动改变这个状态。

监视器不会自动标记丢失

轮询路径在核销时固定使用 mark_lost=False——长时间未出现在弹幕池中的弹幕会一直停留在「待验证」状态,监视器永远不会自动写入「已丢失」

「已丢失」只能由你在历史记录页执行 [验证该分P所有弹幕] 手动确认后才会写入。这是刻意设计:丢失判定会覆盖数据,交由人工决策以避免审核延迟造成的误标。

三种状态的实际来源

状态 写入途径
待验证 (PENDING) 发送成功时自动写入(存证)
已存活 (VERIFIED) 监视器轮询匹配到 dmid 时自动更新
已丢失 (LOST) 历史记录页手动验证时写入

存活率的意义

场景 说明
发送成功但未存活 B 站服务器接受了弹幕请求(API 返回 code=0),但审核系统在后续拦截了该弹幕。常见原因:含敏感词、新账号限制、特殊符号。
发送失败 API 直接返回错误码,弹幕从未进入审核流程。
存活但不可见 弹幕已通过审核,但可能被用户的弹幕过滤设置屏蔽(这是正常行为,不算丢失)。

丢失排查流程

当有弹幕长时间停留在「待验证」状态时,建议按以下步骤排查:

第 1 步:手动确认丢失

B 站的弹幕审核可能有延迟,尤其是:

  • 新注册的账号(审核更严格)
  • 含有特殊符号或敏感词的弹幕
  • 高人气视频(审核队列较长)

等待一段时间后仍未看到弹幕,切换到「弹幕历史记录」页,右键对应记录 → [验证该分P所有弹幕],手动触发一次单分 P 的全量核销。此操作会写入最终的存活/丢失结论(这是唯一会标记「已丢失」的途径)。

第 2 步:检查弹幕内容

切换到「弹幕历史记录」页面,搜索对应视频的记录,查看丢失弹幕的具体内容。

常见丢失原因:

原因 表现 解决方案
含禁用符号 弹幕包含 ☢⚠⚡ 等符号 编辑器中去除符号后重新发送
含敏感词 弹幕内容触发 B 站审核 修改内容后重新发送
账号风控 大量弹幕集中丢失 暂停发送,等待风控解除(通常几小时到一天)
视频限制 目标视频关闭了弹幕或限制了弹幕发送 确认视频弹幕是否正常开放

第 3 步:重新发送丢失弹幕

在历史记录页面中,可以将丢失的弹幕导出为 XML,编辑修复后重新创建发送任务。


与历史记录页的联动

监视器和历史记录页可以配合使用:

  1. 监视器发现长时间停留在「待验证」的弹幕 → 记住对应的视频和分 P。
  2. 切换到 历史记录页 → 搜索对应 BV 号 → 筛选「已丢失」状态。
  3. 右键记录 → 「验证该分 P 所有弹幕」 → 手动触发一次单分 P 的全量验证。
  4. 根据验证结果决定是否重新发送。

停止监视

点击 [停止监视] 按钮,监视器停止轮询,统计数据清空。

何时停止

当仪表盘中「待验证」归零、且「疑似丢失」数字稳定不再变化时,说明本轮核销已完成,可以停止监视。