biliTickerBuy:B 站会员购抢票工具 5 分钟跑通完整指南
【免费下载链接】biliTickerBuyb站会员购购票辅助工具项目地址: https://gitcode.com/GitHub_Trending/bi/biliTickerBuy
打开会员购页面,开售那一秒刷新,显示"售罄"——这是手动抢票最常见的噩梦。biliTickerBuy 是一款开源免费的 B 站会员购抢票辅助工具:给它活动信息和账号凭证,它就自动完成时间等待、状态检测、提交订单,并把抢票结果推送到你的手机。下面用 10 分钟讲清怎么装、怎么配、怎么调好。
跑起来:biliTickerBuy 环境准备与安装
按安装方式不同,前置条件略有差别:
- 预构建版本 / Docker:不需要 Python 环境,Windows 10+、Ubuntu 22.04+、macOS(Intel 和 Apple Silicon)均可
- PyPI / 源码安装:Python 3.11 或更高版本
- 稳定的网络连接;服务器部署建议留足内存
四种安装方式对应不同人群:
- PyPI 安装:最省事,适合有 Python 环境的普通用户
- 源码安装:适合想读代码、做修改的开发者
- Docker 部署:适合服务器长跑、环境隔离的场景
- 预构建版本:从项目 Releases 下载对应平台安装包,解压即用,适合完全不想折腾环境的用户
PyPI 方式一条命令搞定:
python -m pip install --upgrade bilitickerbuy源码方式适合开发者,克隆后装依赖即可:
git clone https://gitcode.com/GitHub_Trending/bi/biliTickerBuy cd biliTickerBuy pip install -r requirements.txtDocker 方式不依赖宿主机 Python,服务器部署推荐:
docker run -d --name bilitickerbuy \ -p 7860:7860 \ -e BTB_SERVER_NAME=0.0.0.0 \ -e GRADIO_SERVER_PORT=7860 \ ghcr.io/mikumifa/bilitickerbuy:latest更细的平台对应关系、自定义安装目录等内容,见 docs/installation.md 和 docs/docker-deployment.md。
配通它:从首次启动到可运行
第一步:启动。终端执行btb会打开 Gradio Web 界面(默认127.0.0.1:7860),浏览器自动弹出,能看到"账号登录 / 生成配置 / 操作抢票 / 高级设置 / 日志查看"等标签页。跑在服务器上时加参数对外暴露:
# 本机使用(新手默认) btb # 服务器部署,用对外 IP 或 0.0.0.0 访问 btb --server_name 0.0.0.0第二步:配置。在"账号登录"页扫码登录 B 站(或上传 cookies 文件),登录成功后页面会显示你的昵称;切到"生成配置"页,输入活动 ID 或会员购链接,选择场次、票档、购票人和收货地址,提交后工具会生成一份配置文件。配置文件的关键字段如下:
| 配置项 | 含义 | 建议值 |
|---|---|---|
| project_id / screen_id / sku_id | 活动 / 场次 / 票档标识 | 从配置页自动获取 |
| count / pay_money | 购买数量 / 总价 | 按实际填写 |
| buyer_info | 购票人姓名+证件号 | 信息完整、与实名一致 |
| deliver_info | 收货人姓名/电话/地址 | 与收货地一致 |
| cookies | B 站登录凭证 | 登录页生成,勿外泄 |
| time_start | 开售时间 | 精确到分钟 |
第三步:验证。在"操作抢票"页能看到所选门票的预览信息,说明配置已就绪;命令行用户可以直接无头运行验证全链路:
btb buy --config-file ./your_config.json首次运行前对照这份 Checklist:
- "账号登录"页已显示登录成功的昵称
- 配置文件包含购票人、收货地址、cookies 三类必需信息
- time_start 与实际开售时间一致(工具会自动同步时钟做倒计时)
- 有代理时先测通连通性,再启动任务
- 在设置页点对各通知渠道做"测试推送",收到预检消息
搞懂它:运行机制与模块拆解
整条链路可以概括为:配置文件 + cookies 作为输入,BiliRequest封装出 HTTP/2 请求;开售前先进入预热,做时间同步和票页状态检查;到点后主循环反复"准备 token → 创建订单",遇到 429 限速就按rate_limit_delay_ms退避,遇到 412 风控就切代理并进入冷却;订单创建成功后取回订单号、支付二维码,交给 Notifier 多通道推送。整个过程由日志事件流驱动,UI 和终端都是这条流的消费端。
核心模块速查:
- task/buy.py:核心抢票主循环,预热、下单、代理失败处理、支付结果产出都在这里
- util/request/BiliRequest.py:HTTP/2 请求封装,代理池、限速退避、连接恢复的统一出口
- interface/project.py:拉取活动详情、票档、购票人和收货地址,供配置页填充
- interface/auth.py:扫码登录、轮询登录态、校验 cookies 是否有效
- util/notifer/Notifier.py:聚合 ServerChan、PushPlus、Bark、Telegram、ntfy 等推送渠道,下单结果与代理耗尽告警都经它发出
调好它:抢票参数调优实战
参数有三种改法:命令行 flag(如--interval)、环境变量(如BTB_INTERVAL,优先级 CLI > 环境变量 > 默认值)、Web 界面"高级设置"页。按维度挑选:
网络维度
| 参数 | 默认值 | 推荐范围 | 调高/调低的副作用 |
|---|---|---|---|
| interval | 1000 ms | 300–1000 ms | 调低反应快但请求更密;调高则开售瞬间慢半拍 |
| rate_limit_delay_ms | 300 ms | 300–1000 ms | 调高对 429 更温和,恢复略慢 |
| https_proxys | none | 每任务 1 个 | 多代理提升成功率;全坏会触发整池冷却 |
性能维度
| 参数 | 默认值 | 推荐范围 | 调高/调低的副作用 |
|---|---|---|---|
| create_request_batch_size | 1 | 1–3 | 调高每轮并发更大,弱网易超时 |
| h2_connections_per_source_ip | 3 | 1–5 | 调高单 IP 连接更多,风控概率上升 |
| create_retry_limit | 10 | 10–20 | 调高单轮更持久,整轮耗时变长 |
体验维度
| 参数 | 默认值 | 推荐范围 | 调高/调低的副作用 |
|---|---|---|---|
| wait_for_buy_button | false | 热门活动开 | 等"立即购买"按钮出现再下手,减少盲打 |
| buy_page_timeout_seconds | 60 s | 30–60 s | 调低页面迟迟不出现时会提前放弃 |
| log_level | standard | 排障用 debug | debug 日志量大,日常别常开 |
经验法则:家用宽带先用默认值跑一次预热,再按日志里的 429/412 出现频率微调,一次只动一个参数。
排障与避坑
Q:安装后终端提示找不到btb?A:PATH 未生效,关闭并重新打开终端;PyPI 用户可执行python -m site --user-base检查脚本目录,或临时用python -m biliTickerBuy启动。
Q:Linux/macOS 安装脚本下载失败?A:默认加速前缀可能失效,换一个新的GH_PROXY前缀重试,或设GH_PROXY=""直连下载。
Q:登录页显示 Not login?A:cookies 过期或缺失。回到"账号登录"页重新扫码,或上传一份从浏览器导出的最新 cookies 文件。
Q:日志里频繁出现 429 / 412?A:分别对应限速和风控。调高rate_limit_delay_ms、调低create_request_batch_size,并准备可用代理池轮换;仍频繁风控就停手降频。
Q:别的设备打不开 Web 界面?A:默认只绑定127.0.0.1。服务器部署用btb --server_name 0.0.0.0,或指定对外 IP 后按http://IP:7860访问。
如果还是不行,优先看"日志查看"标签页里对应任务的最新日志(含完整错误上下文),确认是网络、凭证还是配置问题,再到项目 discussions 里带上日志片段提问。
进阶与自定义
- 无头 + 环境变量:
btb buy下所有运行时参数都可用BTB_*环境变量覆盖,天然适合脚本化和后台任务 - 代理 API 自动补给:高级设置里填
proxy_api_url,池耗尽时自动拉取新代理,协议与自建代理方案见 docs/proxy-api-compatibility.md 与 docs/proxy-self-hosting.md - 多任务并行:"操作抢票"页可同时启动多个任务,代理按任务槽位自动切分,互不干扰
- 日志分析:日志里以
ORDER_ID=、PAYMENT_QR_URL=等标记行落盘,配合log_retention_days控制保留天数,可脚本化提取每次抢票的结果 - 程序化调用:interface/execution.py 暴露了
start_buy、task_status等接口,外部系统可以查询或控制任务
合规与红线
- 项目遵循 PolyForm Noncommercial 1.0.0 许可:仅供个人学习与研究,不得用于代抢、倒卖等任何商业营利行为
- 非侵入式设计:只调用平台正常接口,不做注入、不干扰服务
- 内置频率控制:interval 间隔、429 退避、代理冷却都是刻意为之,别把参数往极限上调
- 妥善保管 cookies 与配置文件,它们是账号凭证,等同于密码
- 遵守目标平台规则与相关法规,违规使用的后果由使用者自行承担
写在最后
biliTickerBuy 把抢票里最磨人的等待、检测和重试交给程序,把"手速"变成了"准备度"——配置越完整、网络越稳、通知越及时,你的体验就越好。项目完全开源,问题反馈和新功能建议都可以走项目 discussions 和 issues 通道,欢迎带着你的踩坑记录参与讨论。提前把配置调好、通知测通,祝你下次开售时,等来的不是"售罄",而是支付二维码。
【免费下载链接】biliTickerBuyb站会员购购票辅助工具项目地址: https://gitcode.com/GitHub_Trending/bi/biliTickerBuy
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考