这是一个利用 Linux Crontab ,云函数, Docker 等方式实现哔哩哔哩(Bilibili)每日任务投币,点赞,分享视频,直播签到,银瓜子兑换硬币,漫画每日签到,简单配置即可每日轻松获取 65 经验值,快来和我一起成为 Lv6 吧~~~~
如果觉得好用,顺手点个 Star 吧 ❤
仓库地址:JunzhouLiu/BILIBILI-HELPER
B 站赛事预测助手已发布,每天自动参与 KPL,LPL 赛事预测,赚取硬币。
仓库地址:JunzhouLiu/bilibili-match-prediction
请不要滥用相关 API,让我们一起爱护 B 站 ❤
- 通过docker或者云函数执行定时任务。【运行时间可自定义】
- 哔哩哔哩漫画每日自动签到,自动阅读 1 章节 。
- 每日自动从热门视频中随机观看 1 个视频,分享一个视频。
- 每日从热门视频中选取 5 个进行智能投币 【如果投币不能获得经验了,则不会投币】
- 投币支持下次一定啦,可自定义每日投币数量。【如果检测到你已经投过币了,则不会投币】
- 大会员月底使用快到期的 B 币券,给自己充电,一点也不会浪费哦,默认开启。【已支持给指定 UP 充电】
- 大会员月初 1 号自动领取每月 5 张 B 币券和福利。
- 每日哔哩哔哩直播自动签到,领取签到奖励。【直播你可以不看,但是奖励咱们一定要领】
- Linux 用户支持自定义配置了。
- 投币策略更新可配置投币喜好。【可配置优先给关注的 up 投币】
- 自动送出即将过期的礼物。 【默认开启,未更新到新版本的用户默认关闭】
- 支持推送执行结果到微信,钉钉,飞书等。
- Fork 本项目
- 获取 Bilibili Cookies
- 浏览器打开并登录 bilibili 网站
- 按 F12 打开 「开发者工具」 找到 应用程序/Application -> 存储 -> Cookies
- 找到
bili_jct
SESSDATA
DEDEUSERID
三项,并复制值,后面需要用到。
请参考腾讯云函数部署
请自行参阅 基于本项目的衍生项目。
-
基于本项目的 docker 封装项目:SuperNG6/docker-bilibili-helper
-
基于本项目的 docker 镜像:superng6/bilibili-helper
- 点击 BILIBILI-HELPER/release,下载已发布的版本,解压后将 jar 包手动上传到 Linux 服务器,使用 crontab 完成定时执行,如果使用
crontab
请记得source /etc/profile
和source ~/.bashrc
,建议直接使用仓库提供的start.sh
脚本,注意修改脚本的 jar 包路径和 cookies 参数。
crontab 命令示例
30 10 * * * sh /home/start.sh
args | 说明 |
---|---|
30 10 * * * | crontab 定时时间 |
sh /home/start.sh | start.sh 的路径 |
#!/bin/bash
source /etc/profile
source ~/.bashrc
source ~/.zshrc #其他终端请自行引入环境变量
echo $PATH
java -jar /home/BILIBILI-HELPER.jar DEDEUSERID SESSDATA BILI_JCT SCKEY >> /var/log/bilibili-help.log
# 注意将jar包路径替换为实际路径。将参数修改该你自己的参数,cookies中含有% * 等特殊字符需要转义。
jar命令参数列表
参数顺序指的是java -jar /home/BILIBILI-HELP.jar
命令后所跟的参数列表顺序。
参数顺序 | 参数 | 说明| |
---|---|---|
1 | DEDEUSERID | 哔哩哔哩Cookies |
2 | SESSDATA | 哔哩哔哩Cookies |
3 | BILI_JCT | 哔哩哔哩Cookies |
4 | 推送渠道的Key | 单个参数的推送渠道,程序自动判断是哪个渠道,比如钉钉,企业微信,server酱 |
5 | 推送渠道的ID之类的 | 某些渠道的推送除了key还有id,id请跟在第五位(例如tg) |
crontab任务示例:
# *如果Cookies参数中包含特殊字符,例如`%`请使用`\`转义*,如果不执行可在命令前增加 source /etc/profile
# m h dom mon dow command
30 10 * * * java -jar /home/BILIBILI-HELP.jar DEDEUSERID SESSDATA BILI_JCT >/var/log/cron.log &
配置文件示例:
{
"matchGame": false,
"showHandModel": false,
"predictNumberOfCoins": 1,
"minimumNumberOfCoins": 1000,
"taskIntervalTime": 20,
"numberOfCoins": 5,
"reserveCoins": 10,
"selectLike": 0,
"monthEndAutoCharge": true,
"giveGift": true,
"upLive": "0",
"chargeForLove": "14602398",
"chargeDay": 28,
"devicePlatform": "ios",
"coinAddPriority": 1,
"skipDailyTask": false,
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36 Edg/91.0.864.54"
}
如果不知道自己的UA之类数据,以及看不懂每个值的含义,可以采用配置生成网页生成自己的配置,注意jar方式和docker方式运行无需填写cookies相关信息
Windows/Linux 用户使用 jar 包时,release
包中会包含一份config.json
配置文件,只需将其和BILIBILI-HELP.jar
放在同一目录即可,执行时优先加载外部配置文件
配置文件参数示意
Key | Value | 说明 |
---|---|---|
matchGame | [false,true] | 是否开启赛事预测。 |
showHandModel | [false,true] | true :压赔率高的,false:压赔率低的 |
predictNumberOfCoins | 1-10 | 单次预测的硬币数量,默认为1 |
minimumNumberOfCoins | [1,无穷大] | 预留的硬币数,低于此数量不执行赛事预测。 |
taskIntervalTime | [1,无穷大] | 任务之间的执行间隔,默认10秒,云函数用户不建议调整的太长,注意免费时长。 |
numberOfCoins | [0,5] | 每日投币数量,默认 5 ,为 0 时则不投币 |
reserveCoins | [0,4000] | 预留的硬币数,当硬币余额小于这个值时,不会进行投币任务,默认值为 50 |
selectLike | [0,1] | 投币时是否点赞,默认 0, 0:否 1:是 |
monthEndAutoCharge | [false,true] | 年度大会员月底是否用 B 币券自动充电,默认 true 。 |
giveGift | [false,true] | 直播送出即将过期的礼物,默认开启,如需关闭请改为 false |
upLive | [0,送礼 up 主的 uid] | 直播送出即将过期的礼物,指定 up 主,为 0 时则随随机选取一个 up 主 |
chargeForLove | [充电对象的 uid] | 给指定 up 主充电,值为充电对象的 uid ,默认为14602398 |
chargeDay | [1,28] | 默认为每月28号 |
devicePlatform | [ios,android] | 手机端漫画签到时的平台,建议选择你设备的平台 ,默认 ios |
coinAddPriority | [0,1] | 0:优先给热榜视频投币,1:优先给关注的 up 投币 |
userAgent | 浏览器 UA | 用户可根据部署平台配置,可根据 userAgent 参数列表自由选取 |
skipDailyTask | [false,true] | 是否跳过每日任务,默认true ,如果关闭跳过每日任务,请改为false |
- tips:从1.0.0版本开始,随机视频投币有一定的概率会将硬币投给本项目的开发者。
- 默认配置文件是给开发者充电,给自己充电或者给其他up充电,请改为对应的uid
- userAgent建议使用你自己真实常用浏览器UA,如果不知道自己的UA请到配置生成页面查看你的UA
ps:如果尝试给关注的 up 投币十次后(保不准你关注的是年更 up 主),还没完成每日投币任务,则切换成热榜模式,给热榜视频投币
投币数量代码做了处理,如果本日投币不能获得经验了,则不会投币,每天只投能获得经验的硬币。假设你设置每日投币 3 个,早上 7 点你自己投了 2 个硬币,则十点半时,程序只会投 1 个)
目前 Turbo 版本的消息通道支持以下渠道
- 企业微信应用消息
- Android,
- Bark iOS,
- 企业微信群机器人
- 钉钉群机器人
- 飞书群机器人
- 自定义微信测试号
- 方糖服务号
- 前往 sct.ftqq.com点击登入,创建账号。
- 点击点SendKey ,生成一个 Key 变量名为
SERVERPUSHKEY
,放在执行命令的第四位。 - 配置消息通道 ,选择方糖服务号,保存即可。
- 推送效果展示
旧版推送渠道sc.ftqq.com 即将与 4
月底下线,请前往sct.ftqq.com生成Turbo
版本的Key
,注意,申请 Turbo 版 Key
后请配置消息通道,如果想沿用以前的推送方式,选择方糖服务号即可
-
在 Telegram 中添加 BotFather 这个账号,然后依次发送/start /newbot 按照提示即可创建一个新的机器人。记下来给你生成的 token。
-
搜索刚刚创建的机器人的名字,并给它发送一条消息。
特别注意:需要先与机器人之间创建会话,机器人才能下发消息,否则机器人无法主动发送消息,切记!
-
在 Telegram 中搜索 userinfobot,并给它发送一条消息,它会返回给你 chatid。
-
将Telegram Token放在执行命令参数的第四位,chatid放在执行参数的第五位。
执行示例
# *如果Cookies参数中包含特殊字符,例如请使用`\`转义*,
java -jar /home/BILIBILI-HELP.jar DEDEUSERID SESSDATA BILI_JCT Telegram_Token chatid
将企业微信的key放在执行参数的第四位。
-
首先你得有个钉钉企业 快速注册
-
添加自定义关键词:BILIBILI
-
将机器人的 Webhook 放在执行参数的第四位。
执行示例
# *如果Cookies参数中包含特殊字符,例如请使用`\`转义*,
java -jar /home/BILIBILI-HELP.jar DEDEUSERID SESSDATA BILI_JCT `https://oapi.dingtalk.com/robot/send?access_token=XXX`
-
将获取到的 Token 放在执行命令的第四位。
- 本工具不会记录你的任何敏感信息,也不会上传到任何服务器上。(例如用户的 cookies 数据,cookies 数据均存在用户自己的设备上)
- 本工具不会记录任何执行过程中来自 b 站的数据信息,也不会上传到任何服务器上。(例如 av 号,bv 号,用户 uid 等)。
- 请不要把自己的敏感信息(账号,cookies等)提供给他人。(网络安全教育普及任重而道远)
- 本工具源码仅在JunzhouLiu/BILIBILI-HELPER-PRE开源。
- 开源的目的单纯是技术分享,所有代码细节都公开。
- 本项目不会增加类似于自动转发抽奖,秒杀,下载版权受限视频等侵犯 UP 主/B 站权益的功能。
- 本项目遵守MIT License,因使用造成的任何损失,纠纷等,和开发者无关,请各位知悉。
-
基于本项目的 docker 封装项目:SuperNG6/docker-bilibili-helper
-
基于本项目的 docker 镜像:superng6/bilibili-helper
-
基于本项目的 k8s 项目:yangyang0507/k8s-bilibili-helper
感谢 JetBrains 对本项目的支持。