B站直播间挂机助手

自动获取小心心,参加天选时刻抽奖,直播区签到,应援团签到,银瓜子换硬币,完成主站每日任务(登录,观看视频,投币,分享视频),批量送礼、点亮勋章,参与实物抽奖,参与Bilibili直播区礼物抽奖(现在极少),参加被广播的节奏风暴(几乎没有),定时发弹幕,快捷购买粉丝勋章

Pada tanggal 30 Oktober 2020. Lihat %(latest_version_link).

Penulis
andywang
Nilai
0 0 0
Versi
5.4.1
Dibuat
25 Juni 2020
Diperbarui
30 Oktober 2020
Size
291 KB
Kompatibilitas
Kompatibel dengan Firefox Kompatibel dengan Chrome Kompatibel dengan Opera
Lisensi
MIT
Berlaku untuk

TamperMonkey 4.10 Chromium 83 Firefox 77

github项目地址:https://github.com/andywang425/BLTH

使用方法

在Tampermonkey中启用脚本,登陆bilibili后打开任意b站直播间。


一些建议

  • 初次使用时若出现看不到控制面板的情况,请等待一会或尝试刷新(shift+F5)页面。
  • 部分设置更改后需要刷新页面才能生效。
  • 使用前建议先关闭广告拦截插件,并确认相关浏览器设置(如cookie权限,脚本拦截)否则该脚本可能无法正常运行。
  • 建议通过修改浏览器设置缩减或不发送Referer。

    点击展开具体方法
    • Chrome
      在地址栏输入chrome://flags,搜索Reduce default 'referer' header granularity将这个功能设置为Enabled
    • Edge
      在地址栏输入edge://flags,搜索Reduce default 'referer' header granularity将这个功能设置为Enabled
    • FireFox
      在地址栏输入about:config,搜索network.http.sendRefererHeader,把这个设置的值改为0
    • 建议这样做的原因: B站直播间api在被调用时,其referer值为https://live.bilibili.com/当前房间号。所以若不修改设置,脚本发出的相当一部分api请求所携带的referer值是不合理的。如在直播间777使用脚本,参加了直播间666的天选时刻,那么发出请求所携带的referer值就是https://live.bilibili.com/777。但正常情况下天选时刻只能在对应房间参加,如果B站有相关检测的话很容易发现刚刚那个请求是异常的。
    • 请注意: 某些网站为了防盗链要求referer必须为本站链接,不发送referer可能导致无法正常访问这些网站。同时不发送referer还可能会影响网站的广告收入。

交流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点执行。

    节奏风暴

    • 仅会参加被广播的节奏风暴。若无法参加请尝试实名后再参加。

    内容屏蔽

    • 【屏蔽挂机检测】脚本每十分钟触发一次页面可见性改变事件防检测。
    • 【隐身入场】开启后进任意直播间时不会出现提示【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后停止检测】如果你不理解此项保持默认配置即可。

    天选时刻

    • 【忽略关键字】中每一项之间用半角逗号,隔开。若奖品名中含有忽略关键字则跳过该天选。
    • 【忽略关键字】可以填正则表达式。正则格式为以/开头且以/结尾,如/测.*试/

    分享一个来自群友的正则:/(([^十百千万拾佰仟01234][零0oO]|^[零0oO])[\.点、。][01234一二三四零壹贰叁肆Oo])|[01234一二三四零壹贰叁肆Oo][分]|(图片|照片|写真|相片|排位|车位|一起|代打|好友|专属头衔|素颜照|卸妆照|美照|皮肤|空气)/

    • 【请求间隔_毫秒】轮询天选,取关,获取房间列表时每两个请求间的间隔时间。如果间隔时间过短可能会被风控。
    • 【发出请求后等待回复】勾选后发出轮询天选,取关的请求后会等待回复,收到回复后等待一个间隔时间再发起下一个请求。

    流程:发出请求 - 等待回复 - 等待一个间隔时间 - 发出下一个请求

    • 【检测到未中奖后自动取关发起抽奖的UP】如果该UP在白名单内或一开始就在默认分组则不会被取关。
    • 【保存当前关注列表为白名单】【取关不在白名单内的UP主】参加天选时会关注很多UP。可以在参加天选前点击【保存当前关注列表为白名单】,参与完天选后再点【取关不在白名单内的UP主】来清理关注列表。不建议频繁清理,可能会被风控。
    • 轮询的房间来源于各分区小时榜和热门房间列表。获取到房间列表后脚本会缓存起来以供后续使用,若收集的房间总数超过【检查房间最大数量】则会删除一部分最开始缓存的房间。
    • 【上传天选数据至直播间个人简介】使用这个功能前你必须先拥有自己的直播间。
      上传数据格式:经base64编码的数组,每两个字符间插入一个-。数组格式:[[一些直播间号], 时间戳]
      个人简介有长度限制,建议【个人简介储存房间最大数量】不要超过500。
      【间隔__秒】:这个设置项若填10秒,并不一定是每10秒上传一次数据,而是只有在检测到了新的天选数据时才会上传。
    • 【检查房间最大数量】并不是数值越大效率就越高。如果把这个值设置得过高会浪费很多时间去检查热度较低的,甚至已经下播的房间。【个人简介储存房间最大数量】同理。
    • 【从直播间__的个人简介获取天选时刻数据】因为在云上部署了脚本,默认值所填直播间的个人简介可以持续提供天选数据(除非被风控或遇到一些突发情况)。这个功能主要是为了减少请求数量,提高效率同时减少风控的概率。使用本功能时建议把【天选获取数据间隔】调低一些减少遗漏的天选数量。
      q群的群在线文档中有一些群友上传的能提供天选数据的直播间号。
    • 【检测到中奖后给发起抽奖的UP发一条私信】若中奖,会在开奖后10秒发送私信。建议改一下私信内容,不要和默认值完全一样。
    • 【把参与天选时关注的UP移到新分组】分组的名称为BLTH天选关注UP,请勿修改该分组名称。

    购买粉丝勋章

    • 调用官方api,消耗20硬币购买某位UP的粉丝勋章。
    • 默认值为当前房间号。点击购买按钮后有确认界面,无需担心误触。

    其它设置说明

    • 重置所有为默认:指将设置和任务执行时间缓存重置为默认。
    • 再次执行所有任务会使相关缓存重置为默认,可以在勾选了新的任务设置后使用。
    • 支持输入框回车保存。

    运行日志

    1. 普通的日志可以点击聊天区上方,大航海右侧的【日志】查看。
    2. 脚本默认开启控制台日志,打开控制台在Filter中输入IGIFTMSG即可过滤出本脚本的日志。若想关闭日志可以在脚本中搜索debugSwitch,把值改成0
      如果使用脚本过程中遇到问题,可以在控制台中寻找相关错误信息。

    关于反馈

    反馈bug前请先阅读bug_report.md


    已知问题

    1. #12
      本脚本可能与Bilibili-Evolved存在兼容性问题导致脚本窗口无法正确加载。若出现此问题,请尝试在Bilibili-Evolved设置-其它中,将加载模式设置为延后,打开启用Ajax Hook API
    2. 脚本每次更新后第一次运行可能会不工作,shift+F5刷新一下页面即可。

    许可证

    MIT License


    其它信息

    这个项目的部分代码来源于以下几个项目:

    本脚本使用的库:

    本脚本引用的外部资源:


    鸣谢

    十六夜SeaLoongpjy612lzghzrsentsinwendux风绫丨钰袖Server酱无尾玦的小尾巴
    以及所有提出过建议的用户。


    更新日志

    5.4

    【屏蔽挂机检测】优化,改为函数劫持方式;方糖SCKEY编辑方式优化;新功能:忽略金额小于__元的天选;支持参加有粉丝勋章和大航海要求的天选;修复天选时刻中奖后不添加白名单,自动取关白名单内UP的bug;不再自动取关,移动一开始在默认分组内的UP;新增内置帮助信息(目前只完成了一条)。

    完整更新日志见update-log.md