#record #query #volume #url #speak #xiaomi #远程操作小爱同学-小爱音箱

xiaoai

Utils to remote XiaoAi; 远程操作小爱同学(小爱音箱)

7 releases

Uses new Rust 2024

new 0.1.0-alpha.7 Mar 26, 2025
0.1.0-alpha.4 Mar 25, 2025

#251 in Audio

Download history

134 downloads per month

MIT license

25KB
657 lines

use xiaoai::{load_or_login_and_save, device_by_alias, OpPayloadBuilder, OpResponse, OpApi, ApiCaller as _};
use api_req::ApiCaller;

let auth_data = load_or_login_and_save("auth_data.json").await;
let device = device_by_alias(&auth_data, "卧室的小爱/XiaoAi in bedroom").await;
let payload = OpPayloadBuilder::new(auth_data, device.device_id).volume(50, "music");
let resp: OpResponse = OpApi::request(payload).await.unwrap();
let payload = OpPayloadBuilder::new(auth_data, device_id).speak("Hello world!");
let resp: OpResponse = OpApi::request(payload).await.unwrap();

let payload = LastAskPayload::new(&auth_data, &device, 2);
let resp: LastAskResponse = RecordApi::request(payload).await.unwrap();

Currently, account_id and account_password can only be loaded from env var.

ACCOUNT_ID=
ACCOUNT_PASSWORD=

Supported operations:

  • speak
  • volume
  • pause and resume
  • play url
  • status query
  • query chat history or record

Acknowledgement

Dependencies

~10–27MB
~320K SLoC