biliTickerBuy:3分钟搞定B站会员购抢票,一键安装准时下单
【免费下载链接】biliTickerBuyb站会员购购票辅助工具项目地址: https://gitcode.com/GitHub_Trending/bi/biliTickerBuy
20:00 开售的那一秒,你疯狂点击"立即购买",屏幕却只留下一个转圈;刷新后弹出"已售罄",这种遗憾大概每个在 B 站会员购抢过票的人都体会过。手速再快也快不过网络延迟,那如果有个开源工具替你盯着时间、替你发起请求、抢到了再推送到你手机上呢?biliTickerBuy 就是这样一款 B 站会员购抢票辅助工具:开源免费,同时提供 Web 界面和命令行两种用法,一份 JSON 配好,到点自动下单。
biliTickerBuy 能帮你做什么
一句话:它是抢票时替你"按按钮"的替补队员。你把 B 站 Cookie、商品链接、开售时间交给它,它会提前校准时间、预热页面,到点准时提交订单,成功后通过通知渠道把付款二维码推给你,帮你守住付款窗口。适合抢演唱会门票、抢限量周边的用户,也适合想研究"自动化下单该怎么做"的开发者——所有流程源码开放,可查可改。
三步装好并跑起来
第一步,安装。最省事的方式是 pip,包名是bilitickerbuy:
pip install --upgrade bilitickerbuy装完会注册btb命令。想要预构建包或 Docker 部署,可以看 docs/installation.md,Windows、Linux、macOS 都覆盖。
第二步,启动。直接运行btb,浏览器会打开本地 Web 界面(基于 Gradio);如果走无人值守,就用btb buy ./ticket.json跑无头任务,服务器场景再加--server_name把界面暴露给局域网。
第三步,配置。在界面里按提示粘贴 Cookie、填商品链接、选好票档和开售时间、挑一个通知渠道,点击启动,任务就进入等待状态了。
它和别的抢票脚本不一样在哪
不少同类脚本的思路是高频轰炸请求,biliTickerBuy 的取向是"辅助而非替代":
- 时间优先,而不是频率优先。核心流程内置 NTP 时间校准(默认走阿里云、腾讯云等国内 NTP 服务器),并会用 B 站响应里的 Date 头做交叉校验,确保在"真正的开售时刻"出手,而不是本机时间偏差后的某一秒。
- 对限流敏感。请求间隔默认 1000ms、任意可调;收到 HTTP 429 时按
rate_limit_delay_ms主动退让,不硬撞风控。 - 失败不黑屏,结果必达。抢票成功后多渠道推送:Server酱、PushPlus、Bark、MeoW、ntfy、Telegram,外加本地声音提醒,总有一路能叫醒你。
- 双模同构。图形界面给人用,
btb buy给脚本用,读的是同一份配置,不用学第二套玩法。
实战场景:演唱会预售,到点自动出手
目标是 20:00 开售前你完全不用守在电脑旁。
准备阶段:在 Web 界面选好商品与票档后导出配置文件,补上开售时间字段并保存为ticket.json,关键项只有几处:
{ "time_start": "2026-06-18T20:00:00", "interval": 1000 }执行阶段:开售前一天运行btb buy ./ticket.json,或直接在界面点启动。程序会先同步时间、预热票面页面,到点提交下单请求,并在一轮内自动重试到达到上限为止。
结果阶段:下单成功会弹出付款二维码(可选自动打开支付页),同时向你配置的所有通知渠道推送订单信息。其余场景基本是同构的:限量周边换链接即可;多代理用户只需在配置里追加代理列表,程序会自动做失败冷却和池内切换。
三条值得先试的调优技巧
- 时间同步是生死线。程序抢票前会自动做 NTP 校准,日志里如果看到"NTP时间同步失败, 使用本地时间",就通过
BTB_NTP_SERVERS环境变量换一组 NTP 服务器再跑,否则本机时间漂移几秒就可能错过整个窗口。 - 间隔宁保守勿激进。
interval单位是毫秒,默认 1000。即使你手握稳定代理,也建议保持接近真人节奏——触发风控的后果比晚几百毫秒下单严重得多。 - 代理池提前备好。
https_proxys支持逗号分隔的代理池,也可以配proxy_api_url从代理商接口自动补货;连续失败的代理会被临时冷却,整个池子不可用时程序会退避等待,并可选择推送到你手机。
常见故障排查
| 症状 | 可能原因 | 解法 |
|---|---|---|
找不到btb命令 | 脚本目录未进 PATH | 重开终端;或改用python -m biliTickerBuy启动 |
| 登录后显示未登录 | Cookie 已过期 | 重新抓取 Cookie,建议每次开售前刷新一次 |
| 到点没下单或下错时间 | 本机时间与服务器偏差 | 查看 NTP 同步日志,用BTB_NTP_SERVERS修正时间源 |
| 下单请求持续超时 | 本地网络或代理不稳 | 更换代理;用--log-level debug定位具体环节 |
| 日志频繁出现 429 | 请求频率过高 | 调大interval,并增大rate_limit_delay_ms |
架构速览
| 目录 | 职责 |
|---|---|
| app_cmd/ | btb/btb buy命令入口与参数解析 |
| task/ | 抢票核心流程:时间同步、页面预热、下单、支付结果 |
| interface/ | 配置校验、登录态检测、任务执行管理 |
| util/ | HTTP 请求、代理池、多渠道通知、时间校准、存储 |
| tab/ | Gradio 页面:配置、启动、日志与问题面板 |
技术栈上有一个亮点值得留意:网络层基于httpx并对 HTTP/2 连接做了管理,配置字段则交给pydantic校验,改坏了字段会在启动时就被拦下来。
进阶与社区
想改流程的人可以从 task/buy.py 和 util/request/BiliRequest.py 入手;Docker 与环境变量的完整清单在 docs/ 里都有。使用问题建议先翻项目 discussions,再提 Issue 反馈 BUG 或功能建议;如果你需要更强的分布式能力,作者还有同系列的 biliTickerStorm 项目可以参考。
写在最后
biliTickerBuy 的价值,是把"开售瞬间屏息按按钮"变成"提前配好、等推送"。但请记住,工具只是帮手:真正的成功率来自准确的时间、合理的请求频率,以及对平台规则的尊重。
本项目遵循 PolyForm Noncommercial License,仅供个人学习与研究使用。请遵守 B 站平台使用规则,合理设置请求频率,勿用于商业用途或任何违规行为。
如果你也有一张惦记已久的票,现在就装上试试吧——3 分钟就能跑起来;觉得有用的话,给项目点个 Star 是对作者最好的支持。
【免费下载链接】biliTickerBuyb站会员购购票辅助工具项目地址: https://gitcode.com/GitHub_Trending/bi/biliTickerBuy
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考