Skip to content

使用cookie登陆

使用 cookie 登录时不要写填账号密码

步骤

  1. 在电脑上使用 Chrome 浏览器登录小米账号官网 👉 https://account.xiaomi.com/
  2. F12 打开网络工具,点击 Network 标签页。
  3. 点击左上角小圆点使其变红色。
  4. F5 刷新页面。
  5. 在过滤框里输入 account? 过滤出下面的连接,点击连接查看 cookie ,复制完整的 cookie 值。需要确保复制的 cookie 中有 userIdpassToken 两个值。
  6. 粘贴到设置页面。

步骤截图

Image

Image

评论

评论 1 - seryte

0.4.12版本测试了使用cookie也无效,是不是cookie还未正确读取?

ImageImage

评论 2 - WGKER

局域网内电脑获取完整cookie填入,并且也填写账户密码,仍然无法获取设备。 可行的话还是换成跳转小米账户授权登录的方式吧,类似小米官方HA插件,目前太折腾了。


评论 3 - gdzjy

0.4.12登录无效,找不到音箱设备。

Image

评论 4 - swxk521

0.4.12一样不行


评论 5 - gdzjy

发现回到旧版本也找不到设备了,不知是不是小米有ban账号的机制,日志如下:

ImageImage

评论 6 - hanxi

文档更新了,截图还没更新,可以先看。


评论 7 - hanxi

下个版本可以不用填账号密码,目前0.4.12版本有点bug需要填。


评论 8 - seryte

文档更新了,截图还没更新,可以先看。

也还是不行 😂

ImageImage

评论 9 - hanxi

需要填账号,或者用测试版本。


评论 10 - seryte

需要填账号,或者用测试版本。

hanxi/xiaomusic main d1d275ae0e98 About an hour ago 341MB 测试版本能发现设备,但是还是无法播放本地歌曲,播放歌曲时会再次登录失败, 然后没过2分钟,设备再次消失,日志出现需要验证码的信息

ImageImageImage

评论 11 - sam0773

填写cookies时候要加上_utm_data={""}吗?直接复制进去保存时候会弹出[object object]


评论 12 - figsong

Image 0.4.13版单用cookies、cookies加上账号密码依然不能发现设备


评论 13 - hanxi

需要确保复制的 cookie 中有 userId 和 passToken 两个值。


评论 14 - hanxi

需要确保复制的 cookie 中有 userId 和 passToken 两个值。


评论 15 - dyz312

仅使用cookie找的设备了,感谢!


评论 16 - xpeagle

4.14也是显示不能找到设备,不知道咋回事,cookie也是填了的, cookie 中有 userId 和 passToken 两个值的,但是还是不能找到设备哦

Image

评论 17 - xpeagle

仅使用cookie找的设备了,感谢!

我也是试了下仅用cookie,但是还是找不到设备,郁闷了


评论 18 - zzfca

使用仅cookie登陆,终于链接到小爱音箱了! 谢谢谢谢


评论 19 - TangTang0812

有个问题大概播放几首歌后,会触发账号安全机制,控制台会提示“验证码输入错误”,然后就需要再次去官网过下人机验证,再到xiaomusic中重新配置cookie,是不是cookie容易被Mi ban 导致生命周期挂了,总的来说还是不错,能正常识别设备了;感谢大佬的倾情奉献 ❤

。。。。。。。。。 1Panel-xiaomusic-1n74 | [2026-01-17 13:06:46] [0.4.12] [INFO] device_player.py:226: play. names:['告白气球周杰伦'] 1 1Panel-xiaomusic-1n74 | [2026-01-17 13:06:46] [0.4.12] [INFO] device_player.py:912: cancel_group_next_timer {'981327057': <xiaomusic.device_player.XiaoMusicDevice object at 0xffff8f736780>} 1Panel-xiaomusic-1n74 | [2026-01-17 13:06:46] [0.4.12] [INFO] device_player.py:897: cancel_next_timer did: 981327057 1Panel-xiaomusic-1n74 | [2026-01-17 13:06:46] [0.4.12] [INFO] device_player.py:907: 下一曲定时器不见了 did: 981327057 1Panel-xiaomusic-1n74 | [2026-01-17 13:06:46] [0.4.12] [INFO] device_player.py:357: cur_music 告白气球周杰伦 1Panel-xiaomusic-1n74 | [2026-01-17 13:06:46] [0.4.12] [INFO] music_url.py:60: get_music_url name:告白气球周杰伦 1Panel-xiaomusic-1n74 | [2026-01-17 13:06:46] [0.4.12] [INFO] music_library.py:586: try get_filename. filename:music/download/告白气球周杰伦.mp3 1Panel-xiaomusic-1n74 | [2026-01-17 13:06:46] [0.4.12] [INFO] music_url.py:139: _get_local_music_url local music. name:告白气球周杰伦, filename:music/download/告白气球周杰伦.mp3 1Panel-xiaomusic-1n74 | [2026-01-17 13:06:46] [0.4.12] [INFO] music_url.py:162: _get_file_url filepath:music/download/告白气球周杰伦.mp3, filename:download/告白气球周杰伦.mp3 1Panel-xiaomusic-1n74 | [2026-01-17 13:06:46] [0.4.12] [INFO] music_url.py:53: get_music_sec_url. name:告白气球周杰伦 url:http://192.168.6.167:58090/music/download/告白气球周杰伦.mp3 origin_url:None 1Panel-xiaomusic-1n74 | [2026-01-17 13:06:46] [0.4.12] [INFO] device_player.py:872: group_force_stop_xiaoai Xiaomi 智能音箱 Pro ['70ba747b-af44-4e41-bc49-b9da586cf770'] 1Panel-xiaomusic-1n74 | Exception on login 2340782246: {'code': 87001, 'desc': '验证码输入错误', 'captchaUrl': '/pass/getCode?icodeType=login&0.754211913663798', 'type': 'manMachine'} 1Panel-xiaomusic-1n74 | Traceback (most recent call last): 1Panel-xiaomusic-1n74 | File "/app/.venv/lib/python3.14/site-packages/miservice/miaccount.py", line 72, in login 1Panel-xiaomusic-1n74 | raise Exception(resp) 1Panel-xiaomusic-1n74 | Exception: {'code': 87001, 'desc': '验证码输入错误', 'captchaUrl': '/pass/getCode?icodeType=login&0.754211913663798', 'type': 'manMachine'} 1Panel-xiaomusic-1n74 | [2026-01-17 13:06:47] [0.4.12] [WARNING] device_player.py:424: Execption Error https://api2.mina.mi.com/remote/ubus: Login failed 1Panel-xiaomusic-1n74 | [2026-01-17 13:06:47] [0.4.12] [INFO] device_player.py:875: group_force_stop_xiaoai ['70ba747b-af44-4e41-bc49-b9da586cf770'] [None] 1Panel-xiaomusic-1n74 | [2026-01-17 13:06:47] [0.4.12] [INFO] device_player.py:362: 播放 http://192.168.6.167:58090/music/download/告白气球周杰伦.mp31Panel-xiaomusic-1n74 | Exception on login 2340782246: {'code': 87001, 'desc': '验证码输入错误', 'captchaUrl': '/pass/getCode?icodeType=login&0.38010189998178023', 'type': 'manMachine'} 1Panel-xiaomusic-1n74 | Traceback (most recent call last): 1Panel-xiaomusic-1n74 | File "/app/.venv/lib/python3.14/site-packages/miservice/miaccount.py", line 72, in login 1Panel-xiaomusic-1n74 | raise Exception(resp) 1Panel-xiaomusic-1n74 | Exception: {'code': 87001, 'desc': '验证码输入错误', 'captchaUrl': '/pass/getCode?icodeType=login&0.38010189998178023', 'type': 'manMachine'} 1Panel-xiaomusic-1n74 | [2026-01-17 13:06:47] [0.4.12] [ERROR] device_player.py:730: Execption Error https://api2.mina.mi.com/remote/ubus: Login failed 1Panel-xiaomusic-1n74 | Traceback (most recent call last): 1Panel-xiaomusic-1n74 | File "/app/xiaomusic/device_player.py", line 718, in play_one_url 1Panel-xiaomusic-1n74 | ret = await self.auth_manager.mina_service.play_by_music_url( 1Panel-xiaomusic-1n74 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1Panel-xiaomusic-1n74 | device_id, url, audio_id=audio_id 1Panel-xiaomusic-1n74 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1Panel-xiaomusic-1n74 | ) 1Panel-xiaomusic-1n74 | ^ 1Panel-xiaomusic-1n74 | File "/app/.venv/lib/python3.14/site-packages/miservice/minaservice.py", line 206, in play_by_music_url 1Panel-xiaomusic-1n74 | return await self.ubus_request( 1Panel-xiaomusic-1n74 | ^^^^^^^^^^^^^^^^^^^^^^^^ 1Panel-xiaomusic-1n74 | ...<4 lines>... 1Panel-xiaomusic-1n74 | ) 1Panel-xiaomusic-1n74 | ^ 1Panel-xiaomusic-1n74 | File "/app/.venv/lib/python3.14/site-packages/miservice/minaservice.py", line 47, in ubus_request 1Panel-xiaomusic-1n74 | result = await self.mina_request( 1Panel-xiaomusic-1n74 | ^^^^^^^^^^^^^^^^^^^^^^^^ 1Panel-xiaomusic-1n74 | ...<2 lines>... 1Panel-xiaomusic-1n74 | ) 1Panel-xiaomusic-1n74 | ^ 1Panel-xiaomusic-1n74 | File "/app/.venv/lib/python3.14/site-packages/miservice/minaservice.py", line 37, in mina_request 1Panel-xiaomusic-1n74 | return await self.account.mi_request( 1Panel-xiaomusic-1n74 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1Panel-xiaomusic-1n74 | "micoapi", "https://api2.mina.mi.com" + uri, data, headers 1Panel-xiaomusic-1n74 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1Panel-xiaomusic-1n74 | ) 1Panel-xiaomusic-1n74 | ^ 1Panel-xiaomusic-1n74 | File "/app/.venv/lib/python3.14/site-packages/miservice/miaccount.py", line 155, in mi_request 1Panel-xiaomusic-1n74 | raise Exception(f"Error {url}: {resp}") 1Panel-xiaomusic-1n74 | Exception: Error https://api2.mina.mi.com/remote/ubus: Login failed 1Panel-xiaomusic-1n74 | [2026-01-17 13:06:47] [0.4.12] [INFO] device_player.py:700: group_player_play http://192.168.6.167:58090/music/download/告白气球周杰伦.mp3 ['70ba747b-af44-4e41-bc49-b9da586cf770'] [None] 1Panel-xiaomusic-1n74 | [2026-01-17 13:06:47] [0.4.12] [INFO] device_player.py:366: 播放 告白气球周杰伦 失败. 失败次数: 10 1Panel-xiaomusic-1n74 | [2026-01-17 13:06:48] [0.4.12] [INFO] 192.168.6.205:2582 - "POST /playmusiclist HTTP/1.1" 200 。。。。。。。。

ImageImageImage

评论 20 - hanxi

@TangTang0812 把对话记录关掉会好一点。


评论 21 - ideajoker

ImageImage

0.4.16版本还是无法识别设备。

按照/issues/99.html里面的方法试了

1、官网重新登陆过了 2、小米音响APP也重新登录过了 3、cookie也填入了

群辉NAS里面不知道怎么把网络由bridge改为host,这个还没试。 有没有类似的情况?


评论 22 - zmz163

试了很多次都不能查找设备,局域网内电脑获取完整cookie填入,并且也填写账户密码,仍然无法获取设备。

xiaomusic (1).txt


评论 23 - sam0773

如果用cookies就不要填写账号和密码

---原始邮件--- 发件人: @.> 发送时间: 2026年1月21日(周三) 下午5:13 收件人: @.>; 抄送: @.@.>; 主题: Re: [hanxi/xiaomusic] 使用cookie登陆 (Issue #688)

zmz163 left a comment (hanxi/xiaomusic#688)

试了很多次都不能查找设备,局域网内电脑获取完整cookie填入,并且也填写账户密码,仍然无法获取设备。

xiaomusic (1).txt

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>


评论 24 - zmz163

如果用cookies就不要填写账号和密码

只用cookie登录也不行


评论 25 - w0000dy

如果用cookies就不要填写账号和密码

只用cookie登录也不行

填账号密码 账号别用手机号,我一开始手机号不行 使用ID号 然后去网页登录验证 刷新就有了,可以的话 先去你docker配置的config文件夹下东西都删除 登陆账号后再重新配置下


评论 26 - zmz163

如果用cookies就不要填写账号和密码

只用cookie登录也不行

填账号密码 账号别用手机号,我一开始手机号不行 使用ID号 然后去网页登录验证 刷新就有了,可以的话 先去你docker配置的config文件夹下东西都删除 登陆账号后再重新配置下

试了很多次,还是不行


评论 27 - ideajoker

Image 2026年1月22日12:30测试反馈: 群辉NAS,把项目docker配置目录config文件夹下的内容全都删除, 重新拉取最新版本构建一下,再登录后台,可以先Ctrl+F5一下刷新出新版后台。 账号登录页面删掉手机号,换成ID,密码留空。 然后使用cookie登录,保存之后,就能识别到设备了。

评论 28 - yangjianxun36

大佬现在有个新问题,不知道是我的个例还是设备问题。家里有两台小米设备,一台米家音箱,一台触屏音箱,都是初版。米家音箱各项功能都正常,包括用风花雪月app控制播放暂停。但是触屏音箱有问题,在网页后台控制,点击播放暂停都可以正常用,但是停止的时候音箱没有停止语音反馈(米家音箱是有的),但是用着也还是没问题,用风花雪月app就有问题了,点播放可以放歌,但是一点就没反应,而且点了以后再网页后台也无法控制了,播放时间会开始一直跳,后台两个音箱都无法被发现,只能重启容器后正常。但是一通过风花雪月控制就会重复出现上面的问题。只能再次重启容器


评论 29 - b2522

用这个网址的token可以登录, 里面的userid换成自己的 https://account.xiaomi.com/fe/service/account?userId=11111&_locale=zh_CN


评论 30 - chenxixian

我用的pip instal方式安装和更新xiaomusic在Mac上的,之前帐号密码也是时不时有问题,改用cookie登录会正常,但Mac的IP有时会变,所以又加了个启动脚本,IP没变直接启动xiaomusic,IP变了修改好conf/setting.json后,再启动xiaomusic。

start_xiaomusic.sh

#!/bin/bash

# xiaomusic启动脚本
# 功能:检查IP配置,如不一致则更新,然后启动xiaomusic

# 设置脚本目录
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SETTING_FILE="$SCRIPT_DIR/conf/setting.json"

# 颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

# 日志函数
log_info() {
    echo -e "${GREEN}[INFO]${NC} $1"
}

log_warn() {
    echo -e "${YELLOW}[WARN]${NC} $1"
}

log_error() {
    echo -e "${RED}[ERROR]${NC} $1"
}

# 检查配置文件是否存在
if [ ! -f "$SETTING_FILE" ]; then
    log_error "配置文件不存在: $SETTING_FILE"
    exit 1
fi

# 获取当前无线网卡IP (en0)
get_current_ip() {
    # 尝试获取en0的IPv4地址
    local ip=$(ifconfig en0 2>/dev/null | grep "inet " | awk '{print $2}' | head -1)
    if [ -z "$ip" ]; then
        # 如果en0没有IP,尝试其他网络接口
        ip=$(ifconfig | grep "inet " | grep -v "127.0.0.1" | awk '{print $2}' | head -1)
    fi
    echo "$ip"
}

# 获取配置文件中的hostname IP
get_config_ip() {
    local ip=$(grep '"hostname"' "$SETTING_FILE" | sed 's/.*"hostname": *"http:\/\///' | sed 's/".*//' | tr -d ' ')
    echo "$ip"
}

# 更新配置文件中的IP
update_config_ip() {
    local new_ip="$1"
    log_info "更新配置文件中的IP为: $new_ip"

    # 使用Python来更新JSON文件,更可靠
    python3 -c "
import json
import sys

try:
    with open('$SETTING_FILE', 'r', encoding='utf-8') as f:
        data = json.load(f)

    data['hostname'] = 'http://$new_ip'

    with open('$SETTING_FILE', 'w', encoding='utf-8') as f:
        json.dump(data, f, ensure_ascii=False, indent=2)

    print('更新成功')
except Exception as e:
    print(f'更新失败: {e}')
    sys.exit(1)
"

    if [ $? -eq 0 ]; then
        log_info "IP配置更新成功"
        return 0
    else
        log_error "IP配置更新失败"
        return 1
    fi
}

# 启动xiaomusic
start_xiaomusic() {
    log_info "启动xiaomusic..."

    # 检查xiaomusic命令是否存在
    if ! command -v xiaomusic &> /dev/null; then
        log_error "未找到xiaomusic命令,请确保已正确安装"
        exit 1
    fi

    # 获取xiaomusic命令路径
    local xiaomusic_cmd=$(command -v xiaomusic)
    log_info "xiaomusic命令: $xiaomusic_cmd"
    log_info "配置文件: $SETTING_FILE"

    # 切换到脚本目录并启动
    cd "$SCRIPT_DIR" || exit 1

    # 执行xiaomusic命令
    exec xiaomusic
}

# 主程序
main() {
    log_info "=== xiaomusic启动脚本 ==="

    # 获取当前IP
    current_ip=$(get_current_ip)
    if [ -z "$current_ip" ]; then
        log_error "无法获取当前IP地址"
        exit 1
    fi
    log_info "当前IP地址: $current_ip"

    # 获取配置文件中的IP
    config_ip=$(get_config_ip)
    if [ -z "$config_ip" ]; then
        log_error "无法从配置文件中获取hostname IP"
        exit 1
    fi
    log_info "配置文件IP: $config_ip"

    # 比较IP
    if [ "$current_ip" = "$config_ip" ]; then
        log_info "IP配置一致,直接启动xiaomusic"
    else
        log_warn "IP配置不一致,需要更新配置"
        if ! update_config_ip "$current_ip"; then
            log_error "更新IP配置失败"
            exit 1
        fi
    fi

    # 启动xiaomusic
    start_xiaomusic
}

# 捕获中断信号
trap 'log_info "脚本被中断"; exit 130' INT TERM

# 执行主程序
main "$@"

评论 31 - zhagn4

用这个网址的token可以登录, 里面的userid换成自己的 https://account.xiaomi.com/fe/service/account?userId=11111&_locale=zh_CN

亲测可用,谢谢


评论 32 - zhagn4

用这个网址的token可以登录, 里面的userid换成自己的 https://account.xiaomi.com/fe/service/account?userId=11111&_locale=zh_CN

亲测可用,谢谢

可用一天后,失效


评论 33 - b2522

用这个网址的token可以登录, 里面的userid换成自己的 https://account.xiaomi.com/fe/service/account?userId=11111&_locale=zh_CN

亲测可用,谢谢

可用一天后,失效

重启一下容器~如果不行,就更新下ck,再重启下容器


评论 34 - zhagn4

用这个网址的token可以登录, 里面的userid换成自己的 https://account.xiaomi.com/fe/service/account?userId=11111&_locale=zh_CN

亲测可用,谢谢

可用一天后,失效

重启一下容器~如果不行,就更新下ck,再重启下容器

重启可以了,但今天又不行了,我让容器每天定时重启试试


评论 35 - ideajoker

用这个网址的token可以登录, 里面的userid换成自己的 https://account.xiaomi.com/fe/service/account?userId=11111&_locale=zh_CN

亲测可用,谢谢

可用一天后,失效

重启一下容器~如果不行,就更新下ck,再重启下容器

重启可以了,但今天又不行了,我让容器每天定时重启试试

我现在也是每天定时重启才行,找不到规律啥时候就掉了登录。。。


评论 36 - wyyang1978-debug

我的也是需要重启,一般一到两天就会找不到设备,重启就好了


评论 37 - JasonSupertramp

还有一个就是需要把账号的二次验证关掉,不然连不上


链接到 GitHub Issue

基于 MIT 许可发布