控制小米网络音箱播放本地音乐🎵。
确保电脑与音箱在同一局域网下,系统文件管理器地址栏输入 \\<ip>
,其中 <ip>
为音箱 ip 地址,即可访问。若出现错误,请尝试启用 SMBv1 客户端,虽然在通常情况下我们并不建议这么做。
确保电脑与音箱在同一局域网下,使用 SMB 客户端连接至音箱 ip ,若需要提供用户名,则填入 GUEST
,密码留空。你可能也需要在某处启用 SMBv1 。
wifi_speaker = WifiSpeakerV3('<小米id>', '<密码>', '<序列号>')
# 如果你拥有多个网络音箱并且想指定你要控制的网络音箱,序列号是必须的。
# 你通常可以在音箱底部看到序列号。
- 确保可正常抓取手机/模拟器的 https 包,即使应用不信任用户证书。(建议使用安卓6及以下的模拟器,配合 Fiddler 实现抓包)
- 手机/模拟器安装“小爱音箱”APP(
com.xiaomi.mico
)。 - 打开抓包软件,确认可工作后登录“小爱音箱”软件。
- 在抓取到的数据包中,复制任一域名为
api*.mina.mi.com
的请求的 cookie ,确保 cookie 含有userId
,deviceSNProfile
,sn
,deviceId
和serviceToken
字段。以下是一个例子。userId=2574549865 deviceSNProfile=eyJzaWduIjoiNzMzMDA4NzFmNDRjMTY4ZTdjOTQ5ZGUyYzc1MGU2MGMyYzliYjhmZjUzMDAxN2M1YTI2NzIzNGU5Y2I0ZGI4ZSIsInNuIjoiMTUwODcvNTYwMDE1NjQ4In0= sn=15087/560015648 deviceId=6e8h7506-8d34-65df-c0d7-e19480s7d3b4 serviceToken=tJYUMjSdn6MHAaEJzdchU8XZVqkGnbmrT3n4hhQaIqrrAl9OwgyWGwEZohfPDUENSaQ/aPJF1JVaX32nwCaHAvOACyJ7aJW5g7hw+GYJ5SrKBqVN8XG0wjvPaFYpyQ3Ha8Oelx6IH8OxydiqNop98RTUnOxHLW9G7AkfowucoGiYRls8XbhqBL22q3lBVntfZ7EnEpXY6x9FaNGE0DQWVQ==
- 转换为 Python dict ,即可开始使用!
my_cookie = { 'userId': '2574549865', 'deviceSNProfile': 'eyJzaWduIjoiNzMzMDA4NzFmNDRjMTY4ZTdjOTQ5ZGUyYzc1MGU2MGMyYzliYjhmZjUzMDAxN2M1YTI2NzIzNGU5Y2I0ZGI4ZSIsInNuIjoiMTUwODcvNTYwMDE1NjQ4In0=', 'sn': '15087/560015648', 'deviceId': '6e8h7506-8d34-65df-c0d7-e19480s7d3b4', 'serviceToken': 'tJYUMjSdn6MHAaEJzdchU8XZVqkGnbmrT3n4hhQaIqrrAl9OwgyWGwEZohfPDUENSaQ/aPJF1JVaX32nwCaHAvOACyJ7aJW5g7hw+GYJ5SrKBqVN8XG0wjvPaFYpyQ3Ha8Oelx6IH8OxydiqNop98RTUnOxHLW9G7AkfowucoGiYRls8XbhqBL22q3lBVntfZ7EnEpXY6x9FaNGE0DQWVQ==' } wifi_speaker = WifiSpeakerV3(my_cookie)
当你登录成功后,保存 cookie 以备以后使用。下次使用脚本时,你就可以使用保存的 cookie 。如果 cookie 过期,重新登录并保存 cookie 。
Cookie 可以通过 WifiSpeakerV3.cookie
获取。
例子:
from json import load, dump
try:
with open('cookie') as f:
wifi_speaker = WifiSpeakerV3(cookie=load(f))
status = wifi_speaker.status
except:
print('Refreshing cookie...')
wifi_speaker = WifiSpeakerV3('<Mi id>', '<password>')
status = wifi_speaker.status
with open('cookie', 'w') as f:
dump(wifi_speaker.cookie.get_dict(), f)
暂无文档,请参考 demo.py
。
你可以通过 token extractor 或
miiocli device --ip <ip_address> --token <token> info
以确定你的设备的型号。
xiaomi.wifispeaker.v3
暂无。
- 添加
set_loop_type
。 - 添加播放列表。