biliTickerBuy 购票完全指南:从安装到成功出票只需 10 分钟
【免费下载链接】biliTickerBuyb站会员购购票辅助工具项目地址: https://gitcode.com/GitHub_Trending/bi/biliTickerBuy
凌晨零点,你盯着订单页面不停刷新,"立即购买"变蓝的那一瞬,页面却已经弹出"已售罄"——这是每个 B 站会员购抢票的人都经历过的事:手速永远快不过服务器。biliTickerBuy 是一款开源免费的 B 站会员购抢票辅助工具,你把项目、场次、票种和开售时间设置好,它会在开售的准确时刻自动发送下单请求,让你不必再熬夜刷页面。它提供图形界面和命令行两种方式,适合新手和自动化场景使用。
| 项目 | 选择 |
|---|---|
| 语言运行时 | Python 3.11+ |
| 图形界面 | Gradio(Web 界面,一键打开) |
| HTTP 客户端 | httpx / requests(支持 HTTP/2 与代理) |
| 数据校验 | Pydantic + 自研配置校验 |
| 时间同步 | ntplib(NTP) |
📦 从安装到第一次运行:三种方式与第一条命令
如果你只是新手、想尽快用起来,选 pip(要求 Python 3.11 及以上):
python -m pip install --upgrade bilitickerbuy如果你要改代码或参与开发,选源码方式:
git clone https://gitcode.com/GitHub_Trending/bi/biliTickerBuy cd biliTickerBuy pip install -r requirements.txt python main.py如果你要部署到服务器或想隔离环境,选 Docker:
docker build -t bilitickerbuy . docker run -d -p 7860:7860 bilitickerbuy装完后第一条命令都是一样的:运行btb,程序会自动在浏览器打开图形界面;服务器上则直接访问http://服务器IP:7860。后续操作都在浏览器里完成。
⚙️ 把配置填对:完整示例逐字段讲解
配置就是一个 JSON 文件。第一部分写项目身份与时间参数:
{ "project_id": 123456, "screen_id": 789012, "sku_id": 345678, "count": 2, "pay_money": 600, "time_start": "2026-10-20T20:00:00", "interval": 1000 }第二部分写购票人、收货地址:
{ "buyer": "张三", "tel": "13800000000", "buyer_info": [ {"name": "张三", "personal_id": "身份证号"} ], "deliver_info": { "name": "张三", "tel": "13800000000", "addr_id": 1001, "addr": "上海市XX区XX路1号" } }最后加上登录凭证:
"cookies": [{"name": "SESSDATA", "value": "你的SESSDATA"}]字段含义(必填项加粗):
| 字段 | 必填 | 说明 |
|---|---|---|
| project_id/screen_id/sku_id | 必填 | 项目 ID、场次 ID、票种 ID,界面里可点选获得 |
| count/pay_money | 必填 | 购买数量与总价,数量需与购票人一致 |
| buyer/tel | 必填 | 主购票人姓名与手机号 |
| buyer_info | 必填 | 购票人列表,每人含 name 与 personal_id(身份证) |
| deliver_info | 必填 | 收货信息:name、tel、addr_id(地址 ID)、addr |
| cookies | 必填 | B 站登录凭证,获取方法见下 |
| time_start | 选填 | 开售时间,格式2026-10-20T20:00:00 |
| interval | 选填 | 请求间隔毫秒数,默认 1000 |
| is_hot_project | 选填 | 是否热门项目,影响重试策略 |
Cookie 从哪里获取,四步完成:登录 B 站网页版 → 按 F12 打开开发者工具,进入 Application 标签页 → 展开 Cookies 找到SESSDATA,复制它的值 → 粘贴进配置cookies的value。如果在图形界面里登录账号,程序会自动保存 Cookie,这一步可以跳过。
🖥️ 两条使用路径:图形界面引导与命令行速查
打开界面后,先在"账号登录"页导入 Cookie 或扫码登录;再到"生成配置"依次点选项目、场次、票种、购票人和收货地址,配置会自动生成;然后在"操作抢票"填入开售时间、点击开始即可;通知和代理在"高级设置"里按需配置。新手走这条路径足够完成全流程。
命令行路径适合脚本、服务器和反复执行:
btb buy ./ticket_config.json需要覆盖时间、间隔和推送参数时加参数:
btb buy ./ticket_config.json \ --time-start "2026-10-20T20:00:00" \ --interval 500 \ --notifier-config.pushplus-token <你的PushPlus令牌>--time-start与--interval会覆盖配置文件里的值,--notifier-config.pushplus-token把抢票结果推送到手机。
⏱️ 它背后在做什么:抢票流程与时间同步机制速览
一次运行的流程是:校验配置,确认必填字段齐全;时间校准——通过 NTP 同步并与 B 站服务器响应时间比对,把你的本地时钟和官方服务器对齐(见util/TimeUtil.py);开售前预热并准备下单 token;开售时刻按interval间隔发送下单请求(见task/buy.py),失败则按重试上限退避重试;成功后生成支付二维码,可自动打开支付页;最后通过 ServerChan、PushPlus、Bark 等渠道推送结果。
两个设计点值得了解:一是时间同步,秒杀场景里第一次请求成不成,往往取决于本机时钟和服务器是否一致,所以程序不会只信系统时间;二是默认单线程、1000 毫秒间隔,节奏贴近正常用户操作,既不给服务器额外压力,也降低被限流的风险。
🩹 高频问题速查:Cookie、限流、时间偏差与校验报错
提示"未登录"或 Cookie 无效:通常是 Cookie 过期或 SESSDATA 不完整,重新从浏览器开发者工具复制并替换配置里的value再试。
频繁收到限流响应(HTTP 429):请求间隔太小,把interval调到 1500 毫秒以上;程序收到 429 会自动延迟处理,但间隔仍建议调大。
时间偏差大、抢点没对准:NTP 同步不可达,检查网络能否访问时间服务,或先手动校准系统时间,再重启程序重新同步。
配置校验报错、字段缺失:对照上表逐项检查,常见坑是count与buyer_info人数不一致,或deliver_info里漏了addr_id。
🚀 进阶玩法(按需阅读)
如果你需要手机推送:任选一个推送渠道填令牌即可,比如 Bark:
btb buy ./ticket_config.json --notifier-config.bark-token <你的Bark令牌>如果你要在服务器上自动化运行:参数可以用环境变量传入,不用改配置文件:
BTB_TIME_START="2026-10-20T20:00:00" BTB_INTERVAL=500 btb buy ./ticket_config.json如果你需要代理:在配置里加一行"https_proxys": "http://127.0.0.1:8080",多个代理用逗号分隔,程序会自动测试并按退避策略轮换代理(实现见util/proxy/目录)。
📝 使用须知与合规提醒
本工具仅限个人学习与研究使用,请勿用于代抢服务或任何商业用途。请遵守平台规则,不要把请求间隔设置得过小,同时妥善保管 Cookie,避免泄露。祝你顺利抢到那张心仪的票 🎫
【免费下载链接】biliTickerBuyb站会员购购票辅助工具项目地址: https://gitcode.com/GitHub_Trending/bi/biliTickerBuy
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考