GNU Affero General Public License v3.0

技术解读

以下内容由 GitRead 中文社区 编辑团队基于项目 README 与官方资料整理, 结合中文开发者的常见使用场景补充技术选型建议。具体以项目官方文档为准。

深度技术分析:b站 bilibili 会员购 抢票 工具

项目背景与痛点

近年来,随着B站举办的各类线下活动和展会越来越受欢迎,抢票变得更加困难,尤其是热门活动的票务常常在开票瞬间售罄。这不仅为用户带来了极大的不便,同时也存在诸多票务倒卖现象,扰乱了正常的市场秩序。针对这一现象,konaxia548/bili-ticket-go 应运而生,旨在为B站会员提供一个高效、便捷的抢票工具,减少排队等待及手动操作的繁琐步骤。

该工具的设计初衷在于提升数十甚至上百个账号的并发抢票能力,从而为个人或团队用户在关注的热点活动上获取票务提供了一个可靠的解决方案。同时,该工具还能兼顾广告、宣传、票务管理等多方面需求。

核心技术揭秘

bili-ticket-go 的核心在于其高性能的并发处理能力和基于Web UI的可视化操作界面。下面是该工具背后的核心技术架构:

graph TD A[用户请求] --> B{"参数校验"} B -->|"通过"| C[执行业务] C --> D[并发抢票] B -->|"失败"| E[返回错误] D --> F[状态更新] F --> G[结果通知] G --> H[Web UI 反馈]

在该设计中,前端的Web界面提供了用户所需的可视化参数输入和抢票状态可视化监控,而后端通过Golang强大的并发处理能力,结合高效的网络请求和数据处理库,实现了多账号的并发抢票功能。

技术栈与设计模式

  • Golang:作为服务端的开发语言,提供高并发和高性能处理能力。
  • Gin Web 框架:用于搭建Web服务,提供RESTful API,便于前后端数据交互。
  • 多线程并发模型:对于每一个抢票任务,后台创建独立的子线程来处理,并发的优势得以显现。
  • Captcha 解析:需要结合第三方OCR识别服务,来处理常见的验证码问题,提高抢票成功率。

数据流分析

用户通过Web UI输入参数启动抢票任务,系统首先进行参数校验,以确保请求的有效性。校验通过后,启动并发抢票处理,在业务执行后进行结果状态更新并通知用户。上述过程在可视化界面中也有即时反馈,便于用户监测抢票进度。

功能亮点与差异

该工具不仅简单易用,还具备极高的灵活性和扩展性。用户能够同时运行多个账号的同时抢票请求,支持自定义抢票配置,以及针对不同会场的灵活任务设置。其CLI工具配合Web界面,为用户提供多样化的操作选项,满足不同用户的需求。

相比于同类工具,konaxia548/bili-ticket-go 不仅能够提高抢票成功率,还内置了多样的票务管理功能,使得抢票过程不仅高效,还能进行灵活的票务分发与管理。

应用场景与落地建议

在使用bili-ticket-go时,应注意多个账号间的同步性和状态管理,确保在并发的情况下,各任务间的独立性和互不干扰性。该工具对于任何需要多账号并发操作的行为均适用,如处理广告推送、票务管理等场景。但在进行大规模部署前,建议先进行小范围测试,确保系统的性能和稳定性。

综合评价

konaxia548/bili-ticket-go 无疑为B站抢票难题提供了一个高效、便捷的技术解决方案。凭借其多账号并发抢票能力、灵活的任务配置以及强大的扩展性,该工具不仅能够有效提升抢票成功率,还极大地方便了用户的使用。然而,在保持高效的同时也需要关注系统的稳定性与安全性,防止与官网规则发生冲突。总体而言,这是一个值得推荐的工具,尤其适合有规模抢票需求的团队使用。

README

bili-ticket-go

BiliBili 会员购抢票 CLI/TUI 工具。

交流群链接:aHR0cHM6Ly81NDg3MTY4MTAueHl6Lw==

入群问题前半段:YnRs , 请与后半段拼接后解密加入群聊

Web UI

Release

支持 Windows / Macos / Linux,请自行前往Release下载

战果

BW 2026 联票与一开实测可用

作者成功在星铁land 二开(hot project,需要ctoken/ptoken)2秒抢到票。

使用方式

压缩包内包含:

  • 可执行文件
  • 对应的 .sha256 校验文件

Windows:

.\btg-windows-amd64-dynamic.exe

macOS / Linux:

chmod +x ./btg-darwin-arm64-dynamic
./btg-darwin-arm64-dynamic

请前往配置文档自行学习进阶配置方式。

功能说明

bili-ticket-go 是一个面向 Bilibili 会员购的交互式抢票工具。启动后会在终端里引导完成登录、项目识别、票种选择、购票人确认、下单执行、结果展示和推送通知。

登录和账号

  • 短信登录:首次使用时输入手机号和短信验证码完成登录。
  • 已保存账号:登录成功后账号会保存到本地,之后可直接选择继续使用。
  • 账号失效处理:已保存账号不可用时,会提示重新登录。
  • 登录验证码:发送短信或登录过程中需要验证码时,会优先尝试本地自动处理;无法自动完成时会回退到本地网页或终端手动输入。

项目识别

  • 支持直接输入会员购项目 ID。
  • 支持粘贴会员购项目详情链接。
  • 支持粘贴手机会员购项目详情页右上角分享出来的链接。
  • 支持 b23.tv 短链,程序会先展开短链,再识别对应项目。
  • 无法识别项目时会提示错误并回到主菜单,不会继续进入下单流程。

票种识别

  • 普通票:按项目原有场次、票档、销售日期和库存状态展示。
  • 联票/场贩:检测到相关商品时,会在选择前主动询问是否购买,并只展示用户确认后的对应票种。
  • 分享链接直达联票/场贩时,会优先按链接中的目标进入选择流程。
  • 联票/场贩的实名规则可能无法完全提前判断,程序会要求用户手动确认实名类型,再继续选择购票人或联系人。
  • 拼团票:检测到可用拼团时,会询问是否使用;部分拼团票数量固定为 1。

下单模式

单次下单

适合当前已经开售、只想按所选票种尝试一次的场景。

流程特点:

  • 选择一个销售日期、场次和票档。
  • 填写或选择购票人、联系人、地址等必要信息。
  • 下单前展示订单摘要,用户确认后执行。
  • 如果检测到还未开售,会询问是否等待到开售时间再执行。
抢票模式

适合明确目标场次和票档,希望持续尝试直到成功、失败或被取消的场景。

启动方式:

  • 立即开始:确认后马上进入抢票循环。
  • 定时开始:等待开售时间,到点后自动开始执行。

流程特点:

  • 可选择暂不可售或未开售的目标票种。
  • 会持续展示当前阶段、轮次、尝试次数和最近结果。
  • 遇到库存瞬时不足、服务繁忙、风控验证等情况时,会按内置策略处理。
  • 定时模式可配合时间校准,降低本机时间误差影响。
蹲票模式

适合票档暂不可售、库存可能回流,或想同时监控多个候选票种的场景。

流程特点:

  • 可一次选择多个候选票种。
  • 用户可以设置候选优先级。
  • 程序会持续监控可售状态。
  • 命中可售候选后自动切入下单流程。
  • 如果命中后库存又变为不可售,会回到监控状态继续等待。

购票人、联系人和配送

  • 实名票会引导选择当前账号下的购票人。
  • 非实名票会引导填写联系人姓名和手机号。
  • 需要配送的项目会引导选择收货地址。
  • 主菜单提供购票人管理,可查看当前账号购票人列表,也可新增购票人。
  • 下单前会展示订单摘要,请确认项目、场次、票档、数量、购票人、地址和预计金额无误。

验证码和风控

  • 抢票过程中如果需要图形验证,会优先尝试本地自动识别。
  • 自动识别失败时,会打开本地网页完成验证。
  • 本地网页不可用时,会回退到终端手动输入。
  • 验证完成后会继续当前流程,不需要重新从主菜单开始。

支付和结果

  • 下单成功后会展示订单号、支付链接和订单详情入口。
  • 程序会生成支付二维码图片。
  • 可选择在终端中直接显示支付二维码。
  • 如果检测到已有待支付订单,会优先展示对应订单信息,避免重复下单。
  • 执行失败时会返回主菜单,并保留日志用于排查。

推送通知

主菜单提供推送管理,可为当前账号配置通知渠道和事件开关。

支持的通知场景:

  • 下单成功
  • 已有待支付订单
  • 下单失败
  • 测试推送

支持的通知方式包括 Bark、Gotify、ntfy、PushPlus、Server 酱、桌面通知、声音提醒、钉钉、微信机器人、邮件、自定义命令等。不同渠道需要填写的信息不同,按界面提示配置即可。

时间校准

  • 主菜单可手动发起时间校准。
  • 定时抢票可在开始前自动校准当前会话时间。
  • 时间校准只影响本次程序运行,不会修改系统时间。

使用说明

  1. 解压对应平台的压缩包,进入解压后的目录。
  2. 按上方命令启动可执行文件。
  3. 首次启动选择“短信登录新账号”,输入手机号、短信验证码。
  4. 登录成功后,在主菜单选择“开始抢票”。
  5. 在“项目 ID 或详情链接”处输入项目 ID,或粘贴会员购详情页/分享链接。
  6. 按提示选择下单模式、销售日期、普通票或联票/场贩、场次、票档和数量。
  7. 按项目要求选择购票人、联系人或收货地址。
  8. 检查终端展示的订单摘要,确认无误后选择开始执行。
  9. 执行过程中可查看当前阶段、轮次、尝试次数和最近结果。
  10. 下单成功后根据结果页中的支付链接或二维码完成支付。

模式选择建议:

  • 已经开售且只想尝试一次,选择“单次下单”。
  • 明确目标票种并希望持续尝试,选择“抢票模式 / 立即开始”。
  • 明确开售时间,选择“抢票模式 / 定时开始”。
  • 票档暂不可售、库存可能回流,或想同时盯多个票档,选择“蹲票模式”。
  • 需要购买联票/场贩时,优先粘贴分享链接;如果项目同时包含普通票和联票/场贩,请按程序提示确认购买类型。

运行过程中可使用 Esc / Ctrl+C 取消当前选择或返回上级菜单。订单提交后请在支付有效期内完成付款,未付款订单可能会占用购票资格。

第三方组件许可

本项目发布版会内嵌 ONNX Runtime 原生运行库,用于本地验证码 ONNX 模型推理。macOS Intel 使用 ONNX Runtime v1.23.2,其它平台使用 ONNX Runtime v1.25.0。

ONNX Runtime: Copyright © Microsoft Corporation. Licensed under the MIT License.

项目地址:https://github.com/microsoft/onnxruntime

评论

暂无评论