使用方法
在Tampermonkey中启用脚本,登陆bilibili后打开任意b站直播间。
一些建议
交流qq群:1106094437(入群问题答案:B站直播间挂机助手),欢迎进来聊天或者提点建议~
功能细节
脚本窗口可以上下滚动!部分设置可能需要滚动后才能看到。
点击直播画面上方按钮隐藏/显示脚本窗口和提示信息。
自动参加礼物抽奖
- 抽奖前随机延迟
- 特定时段不参与抽奖
- 随机跳过抽奖
- 抽奖前模拟进入目标房间
- 抽奖前发送活跃弹幕(防检测)
- 被风控后强制重复抽奖直到成功,最多尝试5次
自动参加实物(金宝箱)抽奖
自动参与天选时刻
- 忽略所需金瓜子大于设置值的天选
- 忽略含特定关键字或匹配特定正则表达式的存疑天选
- 尝试识别天选中的金额并忽略金额低于设置值的天选
- 保存当前关注列表为白名单
- 取关不在白名单内的UP主
- 上传天选信息至自己的直播间/从特定直播间获取天选信息
- 把参与天选时关注的UP移动到新关注分组/取关该分组内的UP主
自动完成主站每日任务
- 登陆主站
- 观看视频
- 自动投币(可指定给某用户的视频投币)
- 分享视频
屏蔽不必要的内容
- 移除2233模型
- 移除活动入口
- 移除排行榜
- 屏蔽挂机检测
自动获取小心心
发送粉丝勋章打卡弹幕
自动送礼
银瓜子换硬币
直播区签到
应援团签到
自动参加被广播的节奏风暴
自动发弹幕
快捷购买粉丝勋章
隐身入场
说明
关于脚本代码格式
本脚本在三个平台上的代码格式有所不同
- github: 压缩和原格式都有
- openuserjs: 原格式
- greasyfork: 原格式
注:项目文件中的B站直播间挂机助手.user.js是压缩后的脚本。
原格式的脚本为B站直播间挂机助手.js。
输入数据格式
- 以下可填小数:抽奖-抽奖前附加随机延迟,随机跳过礼物;弹幕-发送时间,间隔时间;天选时刻-获取数据间隔。
- 以下可填数组(每一项之间用半角逗号
,
隔开):送礼-优先送礼房间,不送礼房间;小心心-自动点亮勋章房间号;弹幕-弹幕内容,房间号,间隔时间;抽奖-忽略关键字;每日任务设置 - 给用户(UID:__)的视频投币,粉丝勋章打卡弹幕;天选时刻 - 忽略关键字;天选时刻 - 编辑白名单。
自动送礼
- 若不勾选【无视礼物类型和到期时间限制】,自动送礼只会送出辣条,亿圆和小心心。
- 如果要填写多个优先送礼房间或不送礼房间,每个房间号之间需用半角逗号
,
隔开。如 666,777,888 (其实就是数组的格式)。若不勾选送礼优先高等级粉丝牌则优先送低等级粉丝牌。
- 礼物到期时间: 将要在这个时间段里过期的礼物会被送出(勾选【无视礼物类型和到期时间限制】时无论是否将要过期都会被送出)。
- 送礼设置优先级:
不送礼房间 > 优先送礼房间 > 优先高/低等级粉丝牌。
- 送礼设置逻辑规则:
无论【优先高/低等级粉丝牌】如何设置,会根据【无视礼物类型和到期时间限制】(勾选则无视是否到期补满亲密度,否则只送到期的)条件去按优先送礼房间先后顺序送礼。
之后根据【优先高/低等级粉丝牌】决定先送高级还是低级。
- 若不勾选【无视礼物类型和到期时间限制】,不会送出永久礼物。
- 【剩余礼物】指送满了所有粉丝牌,但仍有剩余的将在1天内过期的礼物。
- 【剩余礼物送礼直播间】填0则不送剩余礼物。
自动投币
- 脚本会根据今日你已获得的投币经验值判断你已经投了多少个币,然后自动投剩余没投的币。
如今日已获得投币经验20,脚本投币数量设置为4,则会投2个币。
- 【给用户(UID:___)的视频投币】若填0则给动态中的视频依次投币(不存在UID为0的用户)。如果填了多个UID,则会依次检查这些UP是否有可投币的视频。
任务执行时间
- 登陆主站,观看视频,自动投币,分享视频,银瓜子换硬币,领银瓜子宝箱,直播区签到,粉丝勋章打卡弹幕每日凌晨0点1分时时执行。
- 应援团签到在第二天早上8点执行。
节奏风暴
- 仅会参加被广播的节奏风暴。若无法参加请尝试实名后再参加。
内容屏蔽
- 【屏蔽挂机检测】劫持页面上的
addEventListener
绕过页面可见性检测,每10分钟触发一次鼠标移动事件规避鼠标移动检测。
- 【隐身入场】开启后进任意直播间时不会出现提示【xxx进入直播间】。所有人都不会发现你进入了直播间。
缺点:开启后无法获取自己是否是当前直播间房管的数据,关注按钮状态均为未关注。所以开启本功能后进任意直播间都会有【禁言】按钮(如果不是房管点击后会提示接口返回错误),发弹幕时弹幕旁边会有房管标识(如果不是房管则只有你能看到此标识)。
小心心
- 通过发送客户端心跳包获取小心心(无论目标房间是否开播都能获取)。检测到包裹内有24个7天的小心心后会停止。
- 在获取完所有小心心之前直播间不刷新。
- B站随时可以通过APP客户端热更新使该功能失效。
弹幕设置
- 弹幕内容,房间号,发送时间可填多个,数据之间用半角逗号
,
隔开(数组格式)。脚本会按顺序将这三个值一一对应,发送弹幕。
- 由于B站服务器限制,每秒最多只能发1条弹幕。若在某一时刻有多条弹幕需要发送,脚本会在每条弹幕间加上1.1秒间隔时间(对在特定时间点发送的弹幕无效)。
- 如果数据没对齐,缺失的数据会自动向前对齐。如填写
弹幕内容 lalala
,房间号 3,4
,发送时间 5m,10:30
,少填一个弹幕内容。那么在发送第二条弹幕时,第二条弹幕的弹幕内容会自动向前对齐(即第二条弹幕的弹幕内容是lalala)。
- 可以用默认值所填的房间号来测试本功能。
- 发送时间有两种填写方法
1.【小时】h【分钟】m【秒】s
- 每隔一段时间发送一条弹幕
- 例子:
1h2m3s
, 300m
, 30s
, 1h50s
, 2m6s
, 0.5h
- 可以填小数
- 可以只填写其中一项或两项
脚本会根据输入数据计算出间隔时间,每隔一个间隔时间就会发送一条弹幕。如果不加单位,如填写10
则默认单位是分钟(等同于10m
)。
注意:必须按顺序填小时,分钟,秒,否则会出错(如3s5h
就是错误的写法)
2.【小时】:【分钟】:【秒】
- 在特定时间点发一条弹幕
- 例子:
10:30:10
, 0:40
- 只能填整数
- 小时分钟必须填写,秒数可以不填
脚本会在该时间点发一条弹幕(如13:30:10
就是在下午1点30分10秒的时候发弹幕)。
实物抽奖
- 【忽略关键字】中每一项之间用半角逗号
,
隔开。若标题中含有忽略关键字则跳过该抽奖。
- 【忽略关键字】可以填正则表达式。正则格式为以
/
开头且以/
结尾,如/测.*试/
。
推荐正则教程:正则表达式30分钟入门教程 by deerchao
- 【检测到__个不存在活动的aid后停止检测】aid是活动的编号。如果你不理解此项保持默认配置即可。
天选时刻
- 【忽略关键字】中每一项之间用半角逗号
,
隔开。若奖品名中含有忽略关键字则跳过该天选。
- 【忽略关键字】可以填正则表达式。正则格式为以
/
开头且以/
结尾,如/测.*试/
。
- 【请求间隔_毫秒】轮询天选,取关,获取房间列表时每两个请求间的间隔时间。如果间隔时间过短可能会被风控。
- 【发出请求后等待回复】勾选后发出轮询天选,取关的请求后会等待回复,收到回复后等待一个间隔时间再发起下一个请求。
流程:发出请求 - 等待回复 - 等待一个间隔时间 - 发出下一个请求
- 【检测到未中奖后自动取关发起抽奖的UP】如果该UP在白名单内或一开始就在默认分组则不会被取关。
- 【保存当前关注列表为白名单】【取关不在白名单内的UP主】参加天选时会关注很多UP。可以在参加天选前点击【保存当前关注列表为白名单】,参与完天选后再点【取关不在白名单内的UP主】来清理关注列表。不建议频繁清理,可能会被风控。
- 轮询的房间来源于各分区小时榜和热门房间列表。获取到房间列表后脚本会缓存起来以供后续使用,若收集的房间总数超过【检查房间最大数量】则会删除一部分最开始缓存的房间。
- 【上传天选数据至直播间个人简介】使用这个功能前你必须先拥有自己的直播间。
上传数据格式:经base64编码的数组,每两个字符间插入一个-
。数组格式:[[一些直播间号], 时间戳]
。
个人简介有长度限制,建议【个人简介储存房间最大数量】不要超过500。
【间隔__秒】:这个设置项若填10
秒,并不一定是每10
秒上传一次数据,而是只有在检测到了新的天选数据时才会上传。
- 【检查房间最大数量】并不是数值越大效率就越高。如果把这个值设置得过高会浪费很多时间去检查热度较低的,甚至已经下播的房间。【个人简介储存房间最大数量】同理。
- 【从直播间__的个人简介获取天选时刻数据】因为在云上部署了脚本,默认值所填直播间的个人简介可以持续提供天选数据(除非被风控或遇到一些突发情况)。这个功能主要是为了减少请求数量,提高效率同时减少风控的概率。使用本功能时建议把【天选获取数据间隔】调低一些减少遗漏的天选数量。
q群的群在线文档中有一些群友上传的能提供天选数据的直播间号。
- 【检测到中奖后给发起抽奖的UP发一条私信】若中奖,会在开奖后10秒发送私信。建议改一下私信内容,不要和默认值完全一样。
- 【把参与天选时关注的UP移到新分组】分组的名称为
BLTH天选关注UP
,请勿修改该分组名称。
购买粉丝勋章
- 调用官方api,消耗20硬币购买某位UP的粉丝勋章。
- 默认值为当前房间号。点击购买按钮后有确认界面,无需担心误触。
其它设置说明
- 重置所有为默认:指将设置和任务执行时间缓存重置为默认。
- 再次执行所有任务会使相关缓存重置为默认,可以在勾选了新的任务设置后使用。
- 支持输入框回车保存。
运行日志
- 普通的日志可以点击聊天区上方,大航海右侧的【日志】查看。
- 脚本默认开启控制台日志,打开控制台在Filter中输入
IGIFTMSG
即可过滤出本脚本的日志。若想关闭日志可以在脚本中搜索debugSwitch
,把值改成0
。
如果使用脚本过程中遇到问题,可以在控制台中寻找相关错误信息。
关于反馈
反馈bug前请先阅读bug_report.md。
已知问题
- #12
本脚本可能与Bilibili-Evolved存在兼容性问题导致脚本窗口无法正确加载。若出现此问题,请尝试在Bilibili-Evolved设置-其它中,将加载模式
设置为延后,打开启用Ajax Hook API
。
- 脚本每次更新后第一次运行可能会不工作,
shift+F5
刷新一下页面即可。
许可证
其它信息
这个项目的部分代码来源于以下几个项目:
本脚本使用的库:
本脚本引用的外部资源:
鸣谢
十六夜,SeaLoong,pjy612,lzghzr,sentsin,wendux,风绫丨钰袖,Server酱,无尾玦的小尾巴
以及所有提出过建议的用户。
更新日志
5.5.1
【天选时刻】【忽略金额小于__元的天选】重构升级,能够识别更多种类的奖品名。修复忽略关键字数量,参与抽奖次数显示不正确的bug。
完整更新日志见update-log.md。