本仓库收集哔哩哔哩弹幕屏蔽规则。
Note
你只能在 web 端导入规则。
-
前往 Release 下载名为
bilibili-danmu-blocklist-output.json的最新版规则文件。 -
在弹出的窗口中,找到在步骤 1 中下载的 json 文件,点击
打开即可。
分别切换到 屏蔽文本、屏蔽正则 标签,按 F12 打开开发者工具,在 控制台 中执行以下代码:
document
.querySelectorAll("span.bpx-player-block-list-delete")
.forEach((button) => {
button.click();
});分别切换到 屏蔽文本、屏蔽正则 标签,按 F12 打开开发者工具,在 控制台 中执行以下代码:
document
.querySelectorAll("span.bpx-player-block-list-sync")
.forEach((button) => {
button.click();
});如果出现下图中部分规则未上传的情况,请尝试重复执行上述代码,大部分规则均可以上传成功。
Tip
上传成功后,可以在移动端 app 内打开任意视频,进入全屏,点击左下角 弹幕设置,进入 更多工具 -> 添加屏蔽词,点击右上角 同步,即可将 web 端设置的屏蔽规则同步到 app 端,具体操作步骤如下:
Warning
存在少数无法上传的规则,原因未知,这些规则只能单独在 web 端使用,例如:
(?<!乾)坤(没|难)?((?<!鹬)蚌|崩|绷)(埠|不)?(住)?(了)?
Warning
尽管通过上述方式可以将 web 端的规则同步到移动端,但实际上仍然存在部分规则无法在移动端生效的情况,原因未知。
- 如果你需要配合 pakku.js 使用,建议关闭弹幕数量标记显示,否则部分规则可能无法生效。

推荐使用 VSCode 编辑规则文件。
前置要求
-
克隆本仓库
git clone https://github.com/Snoopy1866/bilibili-danmu-block-list.git
-
初始化项目
uv sync
-
新建一个分支,名称任意(例如:
feat)git checkout -b feat
-
修改
bilibili-danmu-blocklist.json -
提交更改并推送
git add . git commit -m "feat: update rules" git push origin feat
-
发起 Pull Request
| 名称 | 含义 | 类型 | 必要性 | 取值 |
|---|---|---|---|---|
| type | 规则类型 | int | required | [0,1,2] |
| filter | 规则内容 | string | required | Any |
| opened | 规则是否启用 | boolean | required | true | false |
| id | 规则唯一标识符 | int | optional | Any |
Note
id 字段本应作为规则的唯一标识符,以便在更新规则文件时相同 id 的规则可以被正确覆盖,
但实际上导入规则文件后,哔哩哔哩会重新生成一个新的 id 值,这使得规则的原地更新无法实现。
尽管如此,本仓库仍然保留 id 字段,以便在发布 Release 时能够正确识别发生变更的规则。
| 名称 | 含义 | 类型 | 必要性 | 可选值 |
|---|---|---|---|---|
| description | 规则描述 | string | optional | Any |
| examples | 规则匹配示例 | Array[string] | optional | Any |
| excludeExamples | 规则排除示例 | Array[string] | optional | Any |
Note
excludeExamples字段用于辅助正则表达式的编写,尽可能避免错杀正常弹幕。description字段暂未启用,后续可能会移除。
Important
- 请不要添加
type=2的规则,这类规则用于屏蔽指定 UID 的用户发出的弹幕,你应该自行添加这类规则,而不是在公共仓库中添加。 - 请不要添加
id字段,该字段会在你提交 PR 后根据当前时间戳(精确到纳秒)自动生成。 - 添加或修改
屏蔽正则类型的规则需注意:- 使用
\\代替\,例如:使用\\d+代替\d+,这是因为 json 字符串本身需要对字符\进行转义 - 不要使用类似
(阿巴)*这样的正则表达式,在缺少定位符^或$的情况下使用*会导致所有弹幕都被屏蔽
- 使用





