Files
BiliBiliToolPro/docs/configuration.md
database-mysql e519cac94e
Some checks failed
CodeQL / Analyze (csharp) (push) Has been cancelled
Close Stale Issues / close_stale_issues (push) Has been cancelled
repo-sync / repo-sync (push) Has been cancelled
auto-deploy-tencent-scf / pre-check (push) Has been cancelled
auto-deploy-tencent-scf / deploy serverless (push) Has been cancelled
pull file
2026-02-11 23:32:56 +08:00

37 KiB
Raw Permalink Blame History

配置说明

[目录]

1. 配置方式

1.1. 方式一:修改配置文件

推荐使用Release包在本地运行的朋友使用直接打开文件将对应的配置值填入保存即可生效。

默认有3个配置文件appsettings.jsonappsettings.Development.jsonappsettings.Production.json,分别对应默认、开发与生产环境。

对于不是开发人员的大部分人来说,只需要关注appsettings.Production.json即可。

1.2. 方式二:命令启动时通过命令行参数配置

在使用命令行启动时,可使用-key=value的形式附加配置,所有可用的命令行参数均在 命令行参数映射表 中。

  • 使用跨平台的依赖包

各个系统只要安装了net5环境均可使用dotnet命令启动命令样例

dotnet Ray.BiliBiliTool.Console.dll -cookieStr=abc -numberOfCoins=5
  • Windows系统

使用自包含包win-x86-x64.zip命令样例

Ray.BiliBiliTool.Console.exe -cookieStr=abc -numberOfCoins=5
  • Linux系统

使用自包含包linux.zip命令样例

Ray.BiliBiliTool.Console -cookieStr=abc -numberOfCoins=5

如映射文件所展示,支持使用命令行配置的配置项并不多,也不建议大量地使用该种方式进行配置。使用包运行的朋友,除了改配置文件和命令行参数配置外,还可以使用环境变量进行配置,这也是推荐的做法,如下。

1.3. 方式三:添加环境变量(推荐)

所有的配置项均可以通过添加环境变量来进行配置。如:

Linux下运行Web

# 添加环境变量作为配置:
export RunTasks="Daily"
export BiliBiliCookies__1="abc"
export BiliBiliCookies__2="efg"
export DailyTaskConfig__NumberOfCoins="3"

# 开始运行程序:
dotnet BiliBiliTool.Web.dll

Linux下运行Console

# 添加环境变量作为配置:
export Ray_RunTasks="Daily"
export Ray_BiliBiliCookies__1="abc"
export Ray_BiliBiliCookies__2="efg"
export Ray_DailyTaskConfig__NumberOfCoins="3"

# 开始运行程序:
dotnet Ray.BiliBiliTool.Console.dll

注意Console需要添加Ray_前缀win系统使用set关键字代替export

1.4. 方式四:托管在青龙面板上,使用面板的环境变量页或配置文件页进行配置

青龙面板配置,其本质还是通过环境变量进行配置,有如下两种方式。

  • 环境变量页[推荐]

例如:

名称:Ray_BiliBiliCookies__1

值:abcde

qinglong-env
  • 配置文件页

例如配置Cookie和推送

export Ray_BiliBiliCookies__1="_uuid=abc..."
export Ray_Serilog__WriteTo__9__Args__token="abcde"
qinglong-config

配置文件页添加、修改配置,需要重启青龙容器使之生效,环境变量页则可以立即生效,所以推荐使用环境变量页配置。

2. 优先级

以上 4 种配置源其优先级由低到高依次是json文件 < 环境变量 < 命令行。

高优先级的配置会覆盖低优先级的配置。

3. 详细配置说明

Console项目青龙的环境变量需要添加Ray_前缀,其他不用。 比如原始配置Key为BiliBiliCookies__1Console则为Ray_BiliBiliCookies__1

3.1. Cookie字符串

必填,数组,可以多个。

TITLE CONTENT 示例
配置Key BiliBiliCookies__1
值域 字符串,英文分号分隔,来自浏览器抓取 export BiliBiliCookies__1=abc=123;def=456;
默认值
TITLE CONTENT 示例
配置Key BiliBiliCookies__2
值域 字符串,英文分号分隔,来自浏览器抓取 export BiliBiliCookies__1=abc=123;def=456;
默认值

3.2. 安全相关的配置

3.2.1. 是否跳过执行任务

用于特殊情况下,通过配置灵活的开启和关闭整个应用。

配置为关闭后程序会跳过所有任务不会调用B站任何接口。

TITLE CONTENT 示例
配置Key Security__IsSkipDailyTask
值域 [true,false] export Security__IsSkipDailyTask=true
默认值 false

3.2.2. 随机睡眠的最大时长

用于设置程序启动后,随机睡眠时间的最大上限值,单位为分钟。

这样可以避免程序每天准点地在同一时间运行太像机器。

配置为0则不进行睡眠。

TITLE CONTENT
配置Key Security__RandomSleepMaxMin
值域 数字
默认值 20

3.2.3. 两次调用B站Api之间的间隔秒数

用于设置两次Api请求之间的最短时间间隔避免程序在1到2秒内连续调用B站的Api过快。

TITLE CONTENT
配置Key Security__IntervalSecondsBetweenRequestApi
值域 [0,+]
默认值 20

3.2.4. 间隔秒数所针对的HttpMethod

间隔秒数所针对的HttpMethod类型服务于上一个配置。服务器一般对GET请求不是很敏感建议只针对POST请求做间隔就可以了。

TITLE CONTENT
配置Key Security__IntervalMethodTypes
值域 [GET,POST],多个以英文逗号分隔
默认值 POST

3.2.5. 请求B站接口时头部传递的User-Agent

TITLE CONTENT
配置Key Security__UserAgent
值域 字符串可以F12从自己的浏览器获取
默认值 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36 Edg/87.0.664.41

获取浏览器中自己的UA的方法见下图

get-user-agent

3.2.6. App请求B站接口时头部传递的User-Agent

TITLE CONTENT
配置Key Security__UserAgentApp
值域 字符串可以F12从自己的浏览器获取
默认值 Mozilla/5.0 (Linux; Android 12; SM-S9080 Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/91.0.4472.114 Mobile Safari/537.36 os/android model/SM-S9080 build/7760700 osVer/12 sdkInt/32 network/2 BiliApp/7760700 mobi_app/android channel/bili innerVer/7760710 c_locale/zh_CN s_locale/zh_CN disable_rcmd/0 7.76.0 os/android model/SM-S9080 mobi_app/android build/7760700 channel/bili innerVer/7760710 osVer/12 network/2

获取浏览器中自己的UA的方法见下图

get-user-agent

3.2.7. WebProxy代理

支持需要账户密码的代理。

TITLE CONTENT
配置Key Security__WebProxy
值域 字符串形如user:password@host:port
默认值

3.3. 每日任务相关

3.3.1. 是否开启观看视频任务

当该配置被设置为false时会导致大积分任务中的签到领额外10点经验的任务不能自动完成。

TITLE CONTENT
配置Key DailyTaskConfig__IsWatchVideo
值域 [true,false]
默认值 true

3.3.2. 是否开启分享视频任务

TITLE CONTENT
配置Key DailyTaskConfig__IsShareVideo
值域 [true,false]
默认值 true

3.3.3. 每日投币数量

每天投币的总目标数量因为投币获取经验只与次数有关所以程序每次投币只会投1个也就是说该配置也表示每日投币次数。

TITLE CONTENT
配置Key DailyTaskConfig__NumberOfCoins
值域 [0,5]为安全考虑程序内部还会做验证最大不能超过5
默认值 5

3.3.4. 投币时是否同时点赞

TITLE CONTENT
配置Key DailyTaskConfig__SelectLike
值域 [true,false]
默认值 false

3.3.5. 优先选择支持的up主Id集合

通过填入自己选择的up主ID以后观看、分享和投币都会优先从配置的up主下面挑选视频如果没有找到,则会去你的特别关注列表中随机再获取,再然后会去普通关注列表中随机获取,最后会去排行榜中随机获取。

注意该配置的默认值是作者的upId如需换掉的话直接更改即可。

TITLE CONTENT
配置Key DailyTaskConfig__SupportUpIds
值域 up主ID多个用英文逗号分隔默认是作者本人的UpId如需删除可以配置为空格字符串或"-1"也可以配置为其他人的UpId
默认值 作者的upId

获取UP主的Id方法打开bilibili进入欲要选择的UP主主页在url中和简介中都可获得该UP主的Id如下图所示

get-up-id

3.3.6. 每月几号自动领取会员权益

TITLE CONTENT
配置Key DailyTaskConfig__DayOfReceiveVipPrivilege
值域 [-1,31]-1表示不指定默认每月1号0表示不领取
默认值 1

3.3.7. 每月几号进行直播中心银瓜子兑换硬币

TITLE CONTENT
配置Key DailyTaskConfig__DayOfExchangeSilver2Coin
值域 [-1,31]-1表示不指定默认每月最后一天-2表示每天0表示不进行兑换
默认值 -1

3.3.8. Lv6后开启硬币白嫖模式

TITLE CONTENT
配置Key DailyTaskConfig__SaveCoinsWhenLv6
值域 [true,false]true表示开启Lv6的账号不会投币
默认值 false

3.3.9. 是否开启专栏投币

TITLE CONTENT
配置Key DailyTaskConfig__IsDonateCoinForArticle
值域 [true,false]
默认值 false

3.4. 天选时刻抽奖相关

3.4.1. 根据关键字排除奖品

TITLE CONTENT
配置Key LiveLotteryTaskConfig__ExcludeAwardNames
值域 一串字符串,多个关键字使用|符号隔开
默认值 舰|船|航海|代金券|自拍|照|写真|图

3.4.2. 根据关键字指定奖品

TITLE CONTENT
配置Key LiveLotteryTaskConfig__IncludeAwardNames
值域 一串字符串,多个关键字使用|符号隔开
默认值

3.4.3. 天选抽奖后是否自动分组关注的主播

TITLE CONTENT
配置Key LiveLotteryTaskConfig__AutoGroupFollowings
值域 [true,false]
默认值 true

3.4.4. 天选筹抽奖主播Uid黑名单

不想参与抽奖的主播Upid集合多个用英文逗号分隔配置后不会参加黑名单中的主播的抽奖活动。默认值是目前已知的中奖后拒绝发奖的Up后期还会继续补充也反映反馈。

TITLE CONTENT
配置Key LiveLotteryTaskConfig__DenyUids
值域 字符串,如"65566781,1277481241"
默认值 "65566781,1277481241,1643654862,603676925"

3.5. 批量取关相关

3.5.1. 想要批量取关的分组名称

TITLE CONTENT
配置Key UnfollowBatchedTaskConfig__GroupName
值域 字符串
默认值 天选时刻

3.5.2. 批量取关的人数

TITLE CONTENT
配置Key UnfollowBatchedTaskConfig__Count
值域 数字,[-1,+]-1表示全部
默认值 5

3.5.3. 取关白名单

TITLE CONTENT
配置Key UnfollowBatchedTaskConfig__RetainUids
值域 字符串,多个使用英文逗号分隔
默认值 108569350

3.6. 大积分相关

3.6.1. 自定义观看番剧

TITLE CONTENT
配置Key VipBigPointConfig__ViewBangumis
值域 番剧的ssidseason_id
默认值 33378(名侦探柯南)

3.7. 免费B币券充电

3.7.1. 充电对象

充电对象的upId-1表示不指定默认为自己充电其他Id则会尝试为配置的UpId充电。

注意之前可以不配置默认为自己充电但后来阿B改了规则不再允许自己冲自己。。。

建议配置为自己小号(小号需要认证为作者并开启充电),或者也可以配置为 -1以支持作者~

TITLE CONTENT
配置Key ChargeTaskConfig__AutoChargeUpId
值域 up的Id字符串
默认值

3.8. 推送相关

v1.0.x仅支持推送到Server酱v1.1.x之后重新定义了推送地概念将推送仅看作不同地日志输出端与Console、File没有本质区别。

配置多个多个端均会收到日志消息。推荐Telegram、企业微信、Server酱。

3.8.1. 是否开启每个账号单独推送消息

TITLE CONTENT
配置Key Notification__IsSingleAccountSingleNotify
意义 开启后,每个账号会单独推送消息。否则多账号合并只推送一条消息
值域 [true,false]
默认值 true

3.8.2. Telegram机器人

push-tg

3.8.2.1. botToken

点击 https://core.telegram.org/api#bot-api 查看如何创建机器人并获取到机器人的botToken。

TITLE CONTENT
配置Key Serilog__WriteTo__3__Args__botToken
意义 用于将日志输出到Telegram机器人
值域 一串字符串
默认值

3.8.2.2. chatId

点击 https://api.telegram.org/bot{TOKEN}/getUpdates 获取到与机器人的chatId需要用上面获取到的Token替换进链接里的{TOKEN}后访问)

P.S.访问链接需要能访问"外网"有vpn的挂vpn。

TITLE CONTENT
配置Key Serilog__WriteTo__3__Args__chatId
值域 一串字符串
默认值
命令行示范

3.8.2.3. proxy

使用代理

TITLE CONTENT
配置Key Serilog__WriteTo__3__Args__proxy
值域 一串字符串格式为user:password@host:port
默认值
命令行示范

3.8.3. 企业微信机器人

在群内添加机器人获取到机器人的WebHook地址添加到配置中。

push-workweixin

3.8.3.1. webHookUrl
TITLE CONTENT
配置Key Serilog__WriteTo__4__Args__webHookUrl
值域 一串字符串
默认值
命令行示范

3.8.4. 钉钉机器人

在群内添加机器人获取到机器人的WebHook地址添加到配置中。

机器人的安全策略,当前不支持加签,请使用关键字策略,推荐关键字:RayBiliBili

push-ding

3.8.4.1. webHookUrl
TITLE CONTENT
配置Key Serilog__WriteTo__5__Args__webHookUrl
值域 一串字符串
默认值

3.8.5. Server酱

官网: http://sc.ftqq.com/9.version

wechat-push

3.8.5.1. TurboScKeyServer酱SCKEY

获取方式请参考官网。

TITLE CONTENT
配置Key Serilog__WriteTo__6__Args__turboScKey
值域 一串字符串
默认值

3.8.6. 酷推

https://cp.xuthus.cc/

3.8.6.1. sKey

该平台可能还在完善当中对接时我发现其接口定义不规范且机器人容易被封所以不推荐使用且不接受提酷推推送相关bug。

TITLE CONTENT
配置Key Serilog__WriteTo__7__Args__sKey
值域 一串字符串
默认值

3.8.7. 推送到自定义Api

这是我简单封装了一个通用的推送接口可以推送到任意的api地址如果有自己的机器人或自己的用于接受日志的api可以根据需要自定义配置。

3.8.7.1. api
TITLE CONTENT
配置Key Serilog__WriteTo__8__Args__api
值域 一串字符串
默认值

3.8.7.2. placeholder
TITLE CONTENT
配置Key Serilog__WriteTo__8__Args__placeholder
值域 一串字符串
默认值

3.8.7.3. bodyJsonTemplate
TITLE CONTENT
配置Key Serilog__WriteTo__8__Args__bodyJsonTemplate
值域 一串字符串
默认值

3.8.8. PushPlus[推荐]

官网: http://www.pushplus.plus/doc/

3.8.8.1. PushPlus的Token

获取方式请参考官网。

TITLE CONTENT
配置Key Serilog__WriteTo__9__Args__token
值域 一串字符串
默认值

3.8.8.2. PushPlus的Topic

获取方式请参考官网。

TITLE CONTENT
配置Key Serilog__WriteTo__9__Args__topic
值域 一串字符串
默认值

3.8.8.3. PushPlus的Channel

获取方式请参考官网。

TITLE CONTENT
配置Key Serilog__WriteTo__9__Args__channel
值域 一串字符串,[wechat,webhook,cp,sms,mail]
默认值

3.8.8.4. PushPlus的Webhook

获取方式请参考官网。

webhook编码(不是地址)在官网平台设定仅在channel使用webhook渠道和CP渠道时需要填写

TITLE CONTENT
配置Key Serilog__WriteTo__9__Args__webhook
值域 一串字符串
默认值
命令行示范

3.8.9. Microsoft Teams

官网: https://docs.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook

3.8.9.1. Microsoft Teams的Webhook

webhook的完整地址在Teams的Channel中获取详细获取方式请参考官网。

TITLE CONTENT
配置Key Serilog__WriteTo__10__Args__webhook
值域 一串字符串
默认值
命令行示范

3.8.10. 企业微信应用推送

官网: https://developer.work.weixin.qq.com/tutorial/application-message

corpIdagentIdsecret均不为空时,自动开启推送,否则关闭。

toUsertoPartytoTag3个配置非必填但不可同时为空默认toUser@all,向所有用户推送。

3.8.10.1. 企业微信应用推送的corpId
TITLE CONTENT
配置Key Serilog__WriteTo__11__Args__corpId
值域 一串字符串
默认值
命令行示范

3.8.10.2. 企业微信应用推送的agentId
TITLE CONTENT
配置Key Serilog__WriteTo__11__Args__agentId
值域 一串字符串
默认值
命令行示范

3.8.10.3. 企业微信应用推送的secret
TITLE CONTENT
配置Key Serilog__WriteTo__11__Args__secret
值域 一串字符串
默认值
命令行示范

3.9. 日志相关

3.9.1. 日志输出等级

为了美观, BiliBiliTool 默认只输出最低等级为 Information 的日志,保证只展示最精简的信息。

通过更改等级,可以指定日志输出的详细程度。

BiliBiliTool 使用 Serilog 作为日志组件,所以其值域与 Serilog 的日志等级选项相同,这里只建议在需要调试时改为Debug应用会输出详细的调试日志信息包括每次调用B站Api的请求参数与返回数据。

TITLE CONTENT
配置Key Serilog__WriteTo__0__Args__restrictedToMinimumLevel
值域 [Information,Debug]
默认值 1

3.9.2. 日志输出样式

这里的日志样式指的是 Console 的等级,即 GitHub Actions 里和微信推送里看到的日志。

通过更改模板样式,可以指定日志输出的样式,比如不输出时间和等级,做到最精简的样式。

BiliBiliTool 使用 Serilog 作为日志组件,所以可以参考 Serilog 的日志样式模板。

TITLE CONTENT
配置Key Serilog__WriteTo__0__Args__outputTemplate
值域 字符串
默认值 [{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception}

3.9.3. 定时任务相关

适用于 方式四docker容器化运行推荐,用于配置定时任务。

3.9.4. 定时任务

以下环境变量的值应为有效的 cron 表达式

当被设置时,对应定时任务将开启。

环境变量 定时任务
DailyTaskConfig__Cron 每日任务
LiveLotteryTaskConfig__Cron 天选时刻抽奖
UnfollowBatchedTaskConfig__Cron 批量取关
VipBigPointConfig__Cron 大会员大积分