py-tjbrhk-toolkit
介绍
天津博瑞皓科博瑞云音箱 Python 客户端库,实现官方《博瑞云音箱 API 对接文档》中定义的全部接口。
py-tjbrhk-toolkit 是天津博瑞皓科博瑞云音箱 API 的 Python 客户端库。它严格基于 官方文档(语雀) 实现,覆盖以下全部接口:
| 接口 | 版本 | 类型 | 官方说明 |
|---|---|---|---|
| notify.php | 3.1 | 流量版专用 | 将通知消息提交到云音箱服务器,云音箱接收后通过 TTS 播报。仅适用于流量版(2G/4G)音箱。 |
| bind.php | 2.1 | 基础接口 | 云音箱绑定或解绑,支持绑定(m=1)、解绑(m=0)和强制解绑(m=4)。 |
| add.php | 2.2 | 基础接口 | 将支付结果提交到云音箱服务器,云音箱播报收款提示语音。price 单位为分。 |
| modify_bootvoicewav.php | 3.2 | 灰度测试 | 更改开机语音、自定义播报前缀。仅适用于 402、404、502、504 型号。 |
接口约定(来自官方文档):
- 所有接口均为
POST请求,以application/x-www-form-urlencoded提交表单数据。 - 返回 JSON 格式
{"errcode", "errmsg", "detail"},errcode为 0 即视为业务成功。 - 本库不涉及登录与 Token 缓存,Token 由调用方自行管理并传入。
软件架构
py_tjbrhk_toolkit/
├── pyproject.toml
├── README.md
├── README.en.md
├── LICENSE
├── src/
│ └── py_tjbrhk_toolkit/
│ ├── __init__.py
│ ├── py.typed
│ └── speaker/
│ ├── __init__.py
│ ├── client.py # SpeakerClient(同步)与 AsyncSpeakerClient(异步)
│ └── models.py # Pydantic 响应模型
├── tests/
│ └── speaker/
│ ├── __init__.py
│ ├── conftest.py
│ ├── test_speaker_sync.py
│ └── test_speaker_async.py
└── examples/
└── speaker/
├── __init__.py
├── .env.example
├── example_common.py
├── example_notify.py
├── example_bind.py
├── example_add.py
├── example_modify_boot_voice_wav.py
├── example_async_notify.py
├── example_async_bind.py
├── example_async_add.py
└── example_async_modify_boot_voice_wav.py
安装教程
推荐使用 uv 安装:
uv add py-tjbrhk-toolkit
或使用 pip 安装:
pip install py-tjbrhk-toolkit
从本地源码安装(开发模式):
uv venv .venv
source .venv/bin/activate
uv pip install -e .
uv pip install -e ".[dev]"
使用说明
from py_tjbrhk_toolkit.speaker.client import SpeakerClient
client = SpeakerClient(
base_url="https://speaker.17laimai.cn/",
token="your_token",
id="your_speaker_id",
version="1",
)
# 通知语音播报(流量版专用)
response = client.notify(message="[123]收款66元", vol=80)
print(response.json())
# 云音箱绑定(m=1 绑定,0 解绑,4 强制解绑)
response = client.bind(m=1, uid="user_123")
# 支付语音播报(price 单位为分)
response = client.add(price="3879", pt=1, vol=80)
# 更改语音信息(灰度测试,仅 402/404/502/504)
response = client.modify_boot_voice_wav(sound="欢迎光临", type=0, off_text="谢谢使用")
client.close()
异步模式:
import asyncio
from py_tjbrhk_toolkit.speaker.client import AsyncSpeakerClient
async def main():
client = AsyncSpeakerClient(
base_url="https://speaker.17laimai.cn/",
token="your_token",
id="your_speaker_id",
version="1",
)
response = await client.async_notify(message="Hello World")
print(response.json())
await client.close()
asyncio.run(main())
所有客户端均支持 with / async with 上下文管理器,退出时自动关闭底层 httpx 客户端。
参与贡献
欢迎提交 Issue 和 Pull Request。在提交 PR 之前,请先运行测试并确保代码符合项目规范。
- Fork 本仓库
- 新建 Feat_xxx 分支
- 提交代码
- 新建 Pull Request
uv pip install -e ".[dev]"
pytest
特技
- 基于
httpx与pydantic,提供同步(SpeakerClient)与异步(AsyncSpeakerClient)两种客户端。 - 严格基于官方 API 文档实现全部接口,支持
with/async with上下文管理器,退出时自动关闭底层客户端。 - 提供中英文双语 README(
README.md/README.en.md)。 - 采用 MIT 开源许可协议。
Metadata
Release files for py-tjbrhk-toolkit 3.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| py_tjbrhk_toolkit-3.0.5.tar.gz | 10.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| py_tjbrhk_toolkit-3.0.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.4 kB
Release files / py_tjbrhk_toolkit-3.0.5.tar.gz
| Download URL | py_tjbrhk_toolkit-3.0.5.tar.gz |
|---|---|
| Size | 10.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3675712ee452c979ebeba3e5018459281d79eeec5851b6e6906612e0f160636a
|
|
BLAKE2b-256 checksum How to use checksums |
26f05c9648210747bd1bae604a8f3c1416716f18651ddd7bc5d01385a5fd7297
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.11
|
Release files / py_tjbrhk_toolkit-3.0.5-py3-none-any.whl
| Download URL | py_tjbrhk_toolkit-3.0.5-py3-none-any.whl |
|---|---|
| Size | 9.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b9c9c3e1c8c6fd64fd7bac48afed9a28eafb31290b8c5efaa3d28b7785886448
|
|
BLAKE2b-256 checksum How to use checksums |
588615ef9ee4a66ea525c6e3c5bfa41ac0e3eec95a3f3f388e1117c0a5b12097
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.11
|
Security for py-tjbrhk-toolkit 3.0.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.