WonderMaker123 / BiliBiliDailyTask

B站每日自动签到、投币、领取奖励

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

BiliBiliTool

GitHub Stars GitHub Forks GitHub Issues GitHub Contributors GitHub All Releases GitHub Release (latest SemVer) GitHub License

原作者地址

https://github.com/RayWangQvQ/BiliBiliTool

BiliBiliTool是一个B站自动执行任务的工具,通过它可以实现B站帐号的每日自动观看、分享、投币视频,获取经验,每月自动领取会员权益、自动为自己充电等功能,帮助我们轻松升级会员到Lv6并赚取电池

详细功能目录如下:

  • 每天自动登录,获取经验
  • 每天自动观看、分享、投币然后视频 (支持指定想要支持的up主,优先选择配置的up主的视频,不配置则随机选取视频)
  • 每天漫画自动签到
  • 每天自动直播签到,领取奖励 (直播可以不看,但是奖励不领白不领~)
  • 每天自动使用直播中心银瓜子兑换B币,避免浪费
  • 每月自动使用快过期的B币券为自己充电 (你懂的~)
  • 每个月自动领取5张B币券和大会员权益 (既然买了会员就要领取该有的奖励啊~)

运行图示

Github仓库地址: RayWangQvQ/BiliBiliTool

本应用仅用于学习和测试,自觉爱护小破站,请勿滥用!

1.如何使用

BiliBiliTool实现自动任务的原理,是通过调用一系列B站开放的接口实现的。

举例来说,要实现观看视频的任务,只需要通过调用B站的上传视频观看进度Api即可, 接口Api:"https://api.bilibili.com/x/click-interface/web/heartbeat", 入参:视频Id、当前观看时间、用于身份认证的Cookie。

BiliBiliTool就是收集了一系列这样的接口,通过每日自动运行程序,来实现自动领取奖励、完成每日任务等功能的。

要使用BiliBiliTool,我们只需要做两步,首先是获取自己的Cookie作为配置信息,然后将配置输入BiliBiliTool程序并运行即可。

1.1.第一步:获取自己的Cookie

  • 浏览器打开并登录bilibili网站
  • 按 F12 打开“开发者工具”,依次点击 应用程序/Application -> 存储-> Cookies
  • 找到DEDEUSERIDSESSDATAbili_jct三项,复制保存它们到记事本,待会儿会用到。

获取Cookie图示

CookieName Value
DEDEUSERID 从Cookie中获取
SESSDATA 从Cookie中获取
BILI_JCT 从Cookie中获取

1.2.第二步:运行BiliBiliTool

运行BiliBiliTool有两种方式,一种是通过Github的Actions实现线上的每天自动运行,一种是本地运行或调试。

对于熟悉Github Actions的朋友,推荐使用方式一 Github Actions,可以实现线上的每天自动运行,不需自己动手,一劳永逸。

对于没有Github账号的、或者想先尝个鲜快速运行一下看看、或者是开发者想要本地调试的朋友,可以跳转到方式二,操作简单快速。

1.2.1.运行方式一(推荐):Github Actions每天定时线上自动运行

Github Actions 是微软巨硬收购G站之后新增的内置CI/CD方案,其核心就是一个可以运行脚本的小型服务器(2核CPU + 7G RAM + 14 G SSD)。

有了它,我们就可以实现每天线上自动运行我们的应用程序。

a. 首先fork本项目到自己的仓库

b. 进入自己fork的仓库,点击 Settings-> Secrets-> New Secrets 添加以下3个Secrets。它们将作为应用启动时的命令行参数被传入程序。

Secrets图示

c. 开启Actions并触发每日自动执行

Github Actions默认处于关闭状态,前面都配置好后,请手动开启Actions,执行一次工作流,验证是否可以正常工作。

Actions图示

运行结束后,可查看运行日志:

Actions日志图示 Actions日志图示

如果执行出现异常,会收到了GitHub Action的错误邮件通知,请检查Cookies是不是失效了,或者是否有bug。用户主动清除浏览器缓存,会导致BILI_JCTDEDEUSERID失效。

1.2.1.运行方式二:本地运行

如果是DotNet开发者,直接clone源码然后vs打开解决方案,配置Cookie后直接运行调试即可。

对于不是开发者的朋友,可以通过下载Release包在本地运行,步骤如下。

a. 下载应用文件

点击BiliBiliTool/release,下载已发布的最新版本

本地如果已经安装了DotNetCore的环境,推荐下载netcore-dependent.zip文件,因为依赖了本地库(runtime-dependent),所以文件包很小;

没有环境或不确定有没有的,可以根据操作系统下载对应的zip文件(window是win-x86-x64.zip),因为是自包含的(self-contained),文件会大些(Github服务器在国外,下载可能比较慢),但是好处是不需要额外安装NetCore的运行时或SDK。

b. 解压并填写配置

下载并解压后,找到appsettings.json文件,使用记事本编辑,填入之前获取到的Cookie信息,保存后关闭:

配置文件图示

c. 运行

找到名称为 Ray.BiliBiliTool.Console 的可执行文件(Win环境下是Ray.BiliBiliTool.Console.exe),双击运行(Linux使用命令行运行),结果如下:

运行图示

P.S.如果自己有服务器,也可以将程序发布到自己的服务器,利用自己的任务系统实现每天自动运行。(有服务器的大佬应该就不需要我多BB了)

2. 个性化自定义配置

个性化配置的详细信息可以在 appsettings.json 文件中查看,有详细的注释信息。

2.1.配置方式

目前支持的个性配置方式有如下3种:

方式一:修改appsettings.json文件

如上1.2.2中所演示。

方式二:本地命令行启动,通过命令设置配置

dotnet run -p ./src/Ray.BiliBiliTool.Console -userId=123 -sessData=456 -biliJct=789 -numberOfCoins=5

命令行参数与配置键的映射关系可以查看 Constants.cs 中的CommandLineMapper,程序会将命令行参数映射为对应的配置键后注册到系统。

方式三:使用Github Actions,通过添加Secrets

如上1.2.1中所演示,在Github Secrets中添加即可。

除了3个必须配置的Cookie外,其他的配置可以通过名为OTHERCONFIGS的Secret Key进行配置,其值为多个命令行参数的拼接,如下图所示:

Github Secrets Other Configs

2.2.优先级

以上3种配置方式,其优先级由低到高依次是:文件 < 命令行 < Actions。

即如果既在配置文件中写入了配置值,又在命令行启动时使用命令行参数指定了配置值,则最后会使用命令行的。

(其实Actions最终还是通过命令行参数实现的,只是通过Github Secrets来将配置传入Actions的命令行中的)

对于使用Github Action的朋友,建议使用Secrets进行配置,因为Fork项目后,不会拷贝源仓库中的Secrets,可自由的在自己的仓库中进行私人配置。当有版本重大更新而需要将源仓库同步PR到自己Fork的仓库时,PR操作会很顺滑,不会影响到已配置的值。

如果是Fork之后,自己改了appsettings.json文件再提交的,那么以后如果需要PR源仓库,则要注意保留自己的修改不要被覆盖。

3.常见问题

3.1.Actions定时任务没有每天自动运行

Fork仓库后,GitHub默认不自动执行Actions任务,请修改./github/trigger.json文件,将trigger的值改为1,这样每天就会自动执行定时任务了。

{
- "trigger": 0
+ "trigger": 1
}

3.2.Actions修改定时任务的执行时间

如果需要修改每日任务执行的时间,请修改.github/workflows/bilibili-daily-task.yml 中的cron表达式:

  schedule:
    - cron: '30 6 * * *'
    # cron表达式,Actions时区是UTC时间,比我们东8区要早8个小时,所以如果想每天14点30分运行,则小时数要输入6(14-8=6),如上示例。

4.更新计划

见源码中的todo任务列表。

5.贡献代码

目前软件还在迭代开发中,如果你有好的想法,欢迎向仓库贡献你的代码,贡献步骤:

a. 搜索查看issue,确定是否已有人提过同类问题

b. 确认没有同类issue后,自己可新建issue,描述问题或建议

c. 如果想自己解决,请fork仓库后,在devlop分支进行编码开发,完成后提交pr,并标注解决的issue编号

我会尽快进行代码审核,提前感谢你的贡献。

6.捐赠支持

如果觉得我写的程序对你小有帮助

或者,就是单纯的想集资给我买瓶霸王增发液

那么下面的赞赏码可以扫一扫啦

(赞赏时记得留下【昵称】和【留言】~)

微信扫码自动赞赏1元:

微信赞赏码

支付宝扫码自动赞赏1元:

支付宝赞赏码

7.感谢

本程序的灵感来源于Github的开源项目:JunzhouLiu/BILIBILI-HELPER,该项目由Java编写,有使用Java而不是C#的朋友也可以去Star该项目,他的作者是个很棒的开源分享者,欢迎大家前往支持。

About

B站每日自动签到、投币、领取奖励

License:MIT License


Languages

Language:C# 100.0%