惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
雷峰网
雷峰网
J
Java Code Geeks
G
Google Developers Blog
博客园 - 司徒正美
The GitHub Blog
The GitHub Blog
L
LangChain Blog
人人都是产品经理
人人都是产品经理
GbyAI
GbyAI
Vercel News
Vercel News
S
SegmentFault 最新的问题
Engineering at Meta
Engineering at Meta
H
Hackread – Cybersecurity News, Data Breaches, AI and More
云风的 BLOG
云风的 BLOG
F
Fortinet All Blogs
Y
Y Combinator Blog
博客园_首页
Last Week in AI
Last Week in AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
罗磊的独立博客
A
About on SuperTechFans
B
Blog
Microsoft Security Blog
Microsoft Security Blog

BlogFinder

日常漫步 Vol.24 之漫步前山河 - 雅余 周报 #1-聊聊本周的收获 - Edwin's Blog 我的OpenCode必装插件与Skill Write Something 掌中之物未必在掌握之中 · CRIVU PiliNara,一个更顺手的 PiliPlus 分支 「NekoEcho」:做一个必有回响的猫娘主题博客 2026-05 书影音总结 简化博客主题 - 安迪 我第一次发布 npm 包 拾花小记#45:中考前的二三事 – 小改学习志 黛西花园5月游 #18 枇杷又熟了的五月月报 一些奇奇怪怪的需求?word仿方正书版的几个小操作 - Xiobb's Blog 0419 御温泉之旅 修复了一些bug,网站基本上趋于稳定了 - 新锐博客 又回到四十年前 如何定义成功 迷鹿屋2026已重新上线 科技冰火两重天+一周回顾 ${title} 热度退了,我反而用得更深了-咕咚同学 我到底该不该换个域名? 随身WIFI折腾记 - 安迪 博客撰写体验提升——hexo pro插件 为什么不用相机把屏幕上的接关密码拍下来? 国清寺与天台山 – Ouroboros ★★★★☆《挽救计划》——久违的经济上行感 - Davidの3号基地 删除右键“打开方式”里多余选项 第三周刊_No.53|一切都会被支付两次
biliTickerBuy:开源免费的 B 站会员购辅助工具
Cheman · 2026-06-22 · via BlogFinder

今天在 GitHub Trending 上看到一个有意思的项目:biliTickerBuy,这是一款开源免费的 B 站会员购辅助工具,旨在帮助用户更便捷地完成 B 站会员购的票务购买流程。

一、项目概述

biliTickerBuy 是一个基于 Python 开发的 B 站会员购辅助工具,提供简单易用的操作界面,支持通过二维码或 Cookie 登录 B 站账号,自动完成票务信息的获取、配置和购买流程。

核心特性:

  • 🆓 开源免费,MIT 协议
  • 🖥️ 双模式操作:命令行 CLI + Gradio Web 界面
  • 🐳 Docker 支持,一键部署
  • 🔐 支持二维码登录和 Cookie 登录
  • 📦 自动获取购票所需信息(收货地址、购买者信息等)
  • ⚡ 实时状态监控和任务管理
  • 🔄 自动更新检查(支持稳定版和测试版)

项目数据:

二、技术原理

2.1 架构设计

项目采用模块化设计,核心模块包括:

biliTickerBuy/
├── main.py              # 入口文件,CLI 参数解析
├── app_cmd/             # 命令行模块
│   ├── buy.py          # 购买命令
│   └── ticker.py       # Ticker UI 命令
├── app_update.py        # 更新检查
├── app_version.py       # 版本管理
└── [核心逻辑模块]

设计亮点:

  1. 双入口设计:通过 tyro 库实现类型安全的 CLI 参数解析,支持 buy(纯命令行)和 ui(Gradio 界面)两种模式
  2. 配置持久化:使用 TinyDB 本地数据库存储配置和任务记录
  3. 登录态管理:支持二维码登录和 Cookie 导入两种方式

2.2 核心技术栈

技术版本用途
Python≥3.11主开发语言
Gradio≥6.19.0Web UI 框架
httpx≥0.28.1异步 HTTP 客户端(支持 HTTP/2、SOCKS 代理)
requests~2.31.0同步 HTTP 请求
pydantic~2.8.2数据验证和设置管理
Tyro≥0.9.28类型安全的 CLI 框架
Textual≥8.2.7终端 UI(TUI)
Rich≥15.0.0终端美化输出
TinyDB~4.8.0轻量级本地数据库

2.3 关键流程分析

登录流程:

# 来自 __init__.py 的接口暴露
from .interface import (
    start_qr_login,      # 启动二维码登录
    poll_qr_login,       # 轮询登录状态
    login_with_cookies,  # Cookie 登录
    get_login_state,     # 获取登录状态
)

购票流程:

# 核心购票接口
from .interface import (
    search_tickets,             # 搜索票务项目
    fetch_project_detail,       # 获取项目详情
    fetch_ticket_options,       # 获取票务选项
    build_ticket_config_from_selection,  # 构建购票配置
    start_buy,                 # 启动购买任务
    task_status,                # 查询任务状态
)

更新检查机制:

# app_update.py 中的版本检查逻辑
def fetch_update(current_version: str, channel: str) -> ReleaseInfo | None:
    # 调用 GitHub Releases API
    # 支持稳定版和测试版两个频道
    # 使用 packaging.version 进行版本号比对

使用 packaging.version.Version 进行语义化版本比对,确保只有更高版本才会触发更新提示。

2.4 数据流设计

用户操作 → Gradio/CLI 界面
    ↓
接口层 (interface.py)
    ↓
B 站 API 调用 (httpx/requests)
    ↓
数据解析与配置生成
    ↓
执行购票任务
    ↓
状态反馈与记录 (TinyDB)

三、安装与快速开始

3.1 环境要求

  • Python 3.11 或更高版本
  • pip 包管理器
  • (可选)Docker 环境

3.2 安装方法

方式一:PyPI 安装(推荐)

pip install bilitickerbuy

方式二:从源码安装

git clone https://github.com/mikumifa/biliTickerBuy.git
cd biliTickerBuy
pip install -e .

方式三:Docker 部署

docker pull mikumifa/bilitickerbuy:latest
docker run -d -p 7860:7860 mikumifa/bilitickerbuy:latest

Docker 镜像已配置好中文字体(文泉驿微米黑、文泉驿正黑),避免中文显示问题。

3.3 最简运行示例

启动 Web 界面:

命令行购买:

btb buy --config-file config.json

查看帮助:

btb --help
btb ui --help
btb buy --help

四、使用方法与实战

4.1 基础用法:Web 界面模式

  1. 启动程序:btb ui
  2. 浏览器访问:http://localhost:7860
  3. 扫码登录或导入 Cookie
  4. 搜索目标票务项目
  5. 配置购票选项(场次、票价、数量等)
  6. 启动购买任务

4.2 进阶用法:命令行自动化

配置文件示例(config.json):

{
  "project_id": "123456",
  "ticket_id": "789",
  "buyer_info": {
    "name": "购买人姓名",
    "tel": "手机号"
  },
  "address": {
    "province": "省份",
    "city": "城市",
    "district": "区",
    "detail": "详细地址"
  },
  "count": 1,
  "auto_submit": true
}

执行命令:

4.3 分布式版本

项目还提供了分布式版本 biliTickerStorm,适合需要多账号、高并发的场景。

4.4 Skill 版本

对于 AI 助手集成,可以使用 biliTickerSkill

五、常见问题与解决方案

5.1 安装失败

问题: pip install 时依赖冲突 解决:

# 使用虚拟环境隔离
python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows
pip install bilitickerbuy

5.2 中文显示问题

问题: Docker 环境中中文显示为方块 解决: Dockerfile 已安装中文字体,如使用自定义镜像请确保安装了 fonts-wqy-microheifonts-wqy-zenhei

5.3 登录失败

问题: 二维码登录超时 解决:

  • 检查网络连接(可能需要代理)
  • 尝试使用 Cookie 登录
  • 查看 Discussions 中的解决方案

5.4 购票任务失败

问题: 任务启动后无响应或报错 解决:

  • 检查登录态是否过期
  • 确认项目配置是否正确(项目 ID、票价 ID 等)
  • 查看程序日志(Loguru 输出)
  • 提 Issue 时请附上完整日志

5.5 更新检查失败

问题: 启动时提示更新检查失败 解决:

  • 检查网络连接
  • 配置代理:export HTTPS_PROXY=http://proxy:port
  • 在设置中关闭自动更新检查

六、总结

biliTickerBuy 是一款设计优雅、功能完善的 B 站会员购辅助工具,其技术亮点包括:

  1. 现代化技术栈:使用 Gradio 构建 Web 界面,Tyro 实现类型安全的 CLI,Pydantic 进行数据验证
  2. 良好的用户体验:支持双模式操作,自动更新检查,丰富的配置选项
  3. 开放性:MIT 协议开源,提供 Skill 和分布式版本扩展
  4. 责任设计:项目在 README 中明确免责声明和平台尊重声明,体现开发者的合规意识

适用场景:

  • 需要购买 B 站会员购票务的用户
  • 希望学习 Python 自动化工具开发的学习者
  • 需要参考 Gradio + Tyro 技术栈整合的开发者

项目链接:

免责声明:本项目仅供个人学习与研究使用,请勿用于任何商业牟利行为或违反平台规则用途。使用时请遵守相关法律法规与目标平台规则。