[2026-08-02 11:54:27] [0.5.4] [INFO] js_plugin_manager.py:80: Node.js process started successfully [2026-08-02 11:54:27] [0.5.4] [INFO] js_plugin_manager.py:916: Plugins directory: conf/js_plugins [2026-08-02 11:54:27] [0.5.4] [INFO] js_plugin_manager.py:917: Plugins config file: conf/plugins-config.json [2026-08-02 11:54:27] [0.5.4] [INFO] xiaomusic.py:81: JS Plugin Manager initialized successfully [2026-08-02 11:54:27] [0.5.4] [INFO] js_plugin_manager.py:1820: 自动转换未启用,不启动定时任务 [2026-08-02 11:54:27] [0.5.4] [INFO] xiaomusic.py:92: JS Adapter initialized successfully [2026-08-02 11:54:27] [0.5.4] [INFO] config_manager.py:42: The file conf/setting.json does not exist. [2026-08-02 11:54:27] [0.5.4] [INFO] music_library.py:965: 启动后台构建 tag cache [2026-08-02 11:54:28] [0.5.4] [INFO] analytics.py:35: analytics init ok [2026-08-02 11:54:28] [0.5.4] [INFO] xiaomusic.py:164: Startup OK. Config(account='******', password='******', mi_did='', cookie='', verbose=False, music_path='music', temp_path='music/tmp', download_path='music/download', conf_path='conf', cache_dir='music/cache', hostname='http://192.168.2.5', port=8090, public_port=58090, proxy=None, loudnorm=None, search_prefix='bilisearch:', ffmpeg_location='./ffmpeg/bin', get_duration_type='ffprobe', active_cmd='play,set_play_type_rnd,playlocal,play_music_list,play_music_list_index,stop_after_minute,stop,play_next,play_prev,set_play_type_one,set_play_type_all,set_play_type_sin,set_play_type_seq,gen_music_list,add_to_favorites,del_from_favorites,cmd_del_music,online_play,singer_play,online_playlist_play', exclude_dirs='@eaDir,tmp', ignore_tag_dirs='', music_path_depth=10, disable_httpauth=True, httpauth_username='******', httpauth_password='******', music_list_url='', music_list_json='', custom_play_list_json='', disable_download=False, key_word_dict={'下一首': 'play_next', '上一首': 'play_prev', '单曲循环': 'set_play_type_one', '全部循环': 'set_play_type_all', '随机播放': 'set_play_type_rnd', '单曲播放': 'set_play_type_sin', '顺序播放': 'set_play_type_seq', '分钟后关机': 'stop_after_minute', '刷新列表': 'gen_music_list', '加入收藏': 'add_to_favorites', '收藏歌曲': 'add_to_favorites', '取消收藏': 'del_from_favorites', '播放列表第': 'play_music_list_index', '删除歌曲': 'cmd_del_music', '播放本地歌曲': 'playlocal', '本地播放歌曲': 'playlocal', '播放歌曲': 'play', '放歌曲': 'play', '在线播放': 'online_play', '在线歌单': 'online_playlist_play', '搜索歌单': 'online_playlist_play', '播放歌手': 'singer_play', '关机': 'stop', '暂停': 'stop', '停止': 'stop', '停止播放': 'stop', '播放列表': 'play_music_list', '播放歌单': 'play_music_list', '测试自定义口令': 'exec#code1("hello")', '测试链接': 'exec#httpget("https://github.com/hanxi/xiaomusic")'}, key_match_order=['分钟后关机', '下一首', '上一首', '单曲循环', '全部循环', '随机播放', '单曲播放', '顺序播放', '关机', '刷新列表', '播放列表第', '播放列表', '加入收藏', '收藏歌曲', '取消收藏', '删除歌曲', '播放本地歌曲', '本地播放歌曲', '播放歌曲', '放歌曲', '在线播放', '在线歌单', '搜索歌单', '播放歌手', '暂停', '停止', '停止播放', '播放歌单', '测试自定义口令', '测试链接'], use_music_api=False, use_music_audio_id='1582971365183456177', use_music_id='355454500', log_file='xiaomusic.log.txt', fuzzy_match_cutoff=0.6, enable_fuzzy_match=True, fuzzy_match_max_results=100, stop_tts_msg='收到,再见', enable_config_example=False, keywords_playlocal='播放本地歌曲,本地播放歌曲', keywords_play='播放歌曲,放歌曲', keywords_online_play='在线播放', keywords_online_playlist_play='在线歌单,搜索歌单', keywords_singer_play='播放歌手', keywords_stop='关机,暂停,停止,停止播放', keywords_playlist='播放列表,播放歌单', user_key_word_dict={'测试自定义口令': 'exec#code1("hello")', '测试链接': 'exec#httpget("https://github.com/hanxi/xiaomusic")'}, enable_force_stop=False, devices={}, group_list='', remove_id3tag=False, convert_to_mp3=False, delay_sec=0, continue_play=False, enable_file_watch=False, file_watch_debounce=10, pull_ask_sec=1, enable_pull_ask=False, auto_convert=False, crontab_json='', enable_yt_dlp_cookies=False, enable_save_tag=False, enable_analytics=True, get_ask_by_mina=False, play_type_one_tts_msg='已经设置为单曲循环', play_type_all_tts_msg='已经设置为全部循环', play_type_rnd_tts_msg='已经设置为随机播放', play_type_sin_tts_msg='已经设置为单曲播放', play_type_seq_tts_msg='已经设置为顺序播放', search_prompt_audio='xiaomusic_ok.mp3', recently_added_playlist_len=50, enable_cmd_del_music=False, web_music_proxy=True, edge_tts_voice='zh-CN-XiaoyiNeural', enable_auto_clean_temp=True, qrcode_timeout=120) [2026-08-02 11:54:34] [0.5.4] [INFO] dependencies.py:277: disable_httpauth:True [2026-08-02 11:54:36] [0.5.4] [INFO] Started server process [1] [2026-08-02 11:54:36] [0.5.4] [INFO] Waiting for application startup. [2026-08-02 11:54:36] [0.5.4] [INFO] music_library.py:921: 已从【music/cache/tag_cache.json】加载 tag cache [2026-08-02 11:54:36] [0.5.4] [INFO] music_library.py:981: ignore_tag_absolute_dirs: [] [2026-08-02 11:54:36] [0.5.4] [INFO] music_library.py:937: 保存:tag cache 已保存到【music/cache/tag_cache.json】 [2026-08-02 11:54:36] [0.5.4] [INFO] music_library.py:1021: tag 更新完成 [2026-08-02 11:54:36] [0.5.4] [INFO] xiaomusic.py:243: run_forever start [2026-08-02 11:54:36] [0.5.4] [INFO] music_library.py:965: 启动后台构建 tag cache [2026-08-02 11:54:36] [0.5.4] [INFO] Application startup complete. [2026-08-02 11:54:36] [0.5.4] [INFO] music_library.py:921: 已从【music/cache/tag_cache.json】加载 tag cache [2026-08-02 11:54:36] [0.5.4] [INFO] music_library.py:981: ignore_tag_absolute_dirs: [] [2026-08-02 11:54:36] [0.5.4] [INFO] music_library.py:937: 保存:tag cache 已保存到【music/cache/tag_cache.json】 [2026-08-02 11:54:36] [0.5.4] [INFO] music_library.py:1021: tag 更新完成 [2026-08-02 11:54:36] [0.5.4] [INFO] analytics.py:78: analytics run_with_cancel success [2026-08-02 11:54:36] [0.5.4] [WARNING] auth.py:210: conf/.mi.token file not exist [2026-08-02 11:54:36] [0.5.4] [WARNING] auth.py:84: 没有账号密码 或 cookies 无法登陆 [2026-08-02 11:54:36] [0.5.4] [INFO] auth.py:68: Maybe already logined is_need_login:True is_can_login:False [2026-08-02 11:54:36] [0.5.4] [WARNING] auth.py:170: 可能登录失败. 'NoneType' object has no attribute 'device_list' [2026-08-02 11:54:36] [0.5.4] [INFO] device_manager.py:63: 设备列表已更新: device_id_did={} [2026-08-02 11:54:36] [0.5.4] [INFO] device_manager.py:64: 设备分组已更新: groups={} [2026-08-02 11:54:36] [0.5.4] [WARNING] auth.py:210: conf/.mi.token file not exist [2026-08-02 11:54:36] [0.5.4] [INFO] analytics.py:78: analytics run_with_cancel success [2026-08-02 11:54:36] [0.5.4] [INFO] Uvicorn running on http://['0.0.0.0', '::']:8090 (Press CTRL+C to quit) [2026-08-02 17:24:31] [0.5.4] [INFO] 172.25.0.1:34508 - "GET / HTTP/1.1" 200 [2026-08-03 00:54:36] [0.5.4] [INFO] analytics.py:78: analytics run_with_cancel success [2026-08-03 02:01:07] [0.5.4] [INFO] 172.25.0.1:39782 - "GET / HTTP/1.1" 200 [2026-08-03 12:50:28] [0.5.4] [INFO] 172.25.0.1:39578 - "GET /apple-touch-icon.png HTTP/1.1" 404 [2026-08-03 12:50:28] [0.5.4] [INFO] 172.25.0.1:39582 - "GET /apple-touch-icon-precomposed.png HTTP/1.1" 404 [2026-08-03 12:50:28] [0.5.4] [INFO] 172.25.0.1:39586 - "GET /favicon.ico HTTP/1.1" 404 [2026-08-03 12:50:29] [0.5.4] [INFO] 172.25.0.1:39586 - "GET /static/default/index.html HTTP/1.1" 200 [2026-08-03 12:50:30] [0.5.4] [INFO] 172.25.0.1:39586 - "GET /static/default/favicon.ico HTTP/1.1" 200 [2026-08-03 14:02:48] [0.5.4] [INFO] 172.25.0.1:55968 - "GET / HTTP/1.1" 200 [2026-08-03 15:54:38] [0.5.4] [INFO] 172.25.0.1:39696 - "HEAD / HTTP/1.1" 405 [2026-08-03 15:54:38] [0.5.4] [INFO] 172.25.0.1:39696 - "HEAD / HTTP/1.1" 405 [2026-08-03 16:08:06] [0.5.4] [INFO] 172.25.0.1:41370 - "GET / HTTP/1.1" 200 [2026-08-03 16:08:07] [0.5.4] [INFO] 172.25.0.1:41370 - "GET /robots.txt HTTP/1.1" 404 [2026-08-03 16:08:09] [0.5.4] [INFO] 172.25.0.1:41370 - "GET / HTTP/1.1" 200 [2026-08-03 16:08:11] [0.5.4] [INFO] 172.25.0.1:41370 - "GET /static/weapp/qrcode.html HTTP/1.1" 200 [2026-08-03 17:13:41] [0.5.4] [INFO] 172.25.0.1:48332 - "GET / HTTP/1.1" 200 [2026-08-03 18:25:21] [0.5.4] [INFO] 172.25.0.1:56234 - "GET / HTTP/1.1" 200 [2026-08-03 18:25:24] [0.5.4] [INFO] 172.25.0.1:56234 - "GET / HTTP/1.1" 200 [2026-08-04 00:54:36] [0.5.4] [INFO] analytics.py:78: analytics run_with_cancel success [2026-08-04 02:01:07] [0.5.4] [INFO] 172.25.0.1:47062 - "GET / HTTP/1.1" 200 [2026-08-04 04:14:38] [0.5.4] [INFO] 172.25.0.1:60038 - "GET / HTTP/1.1" 200 [2026-08-04 04:16:34] [0.5.4] [INFO] 172.25.0.1:60240 - "GET /sites/favicon.ico HTTP/1.1" 404 [2026-08-04 04:16:36] [0.5.4] [INFO] 172.25.0.1:60240 - "GET /sites/favicon.png HTTP/1.1" 404 [2026-08-04 04:58:08] [0.5.4] [INFO] 172.25.0.1:36058 - "GET /favicon.ico HTTP/1.1" 404 [2026-08-04 05:07:08] [0.5.4] [INFO] 172.25.0.1:36946 - "GET / HTTP/1.1" 200 [2026-08-05 00:54:37] [0.5.4] [INFO] analytics.py:78: analytics run_with_cancel success [2026-08-05 02:01:16] [0.5.4] [INFO] 172.25.0.1:59042 - "GET / HTTP/1.1" 200 [2026-08-05 15:48:03] [0.5.4] [INFO] 172.25.0.1:36210 - "GET /robots.txt HTTP/1.1" 404 [2026-08-05 15:48:04] [0.5.4] [INFO] 172.25.0.1:36210 - "GET / HTTP/1.1" 200 [2026-08-05 16:45:19] [0.5.4] [INFO] 172.25.0.1:44088 - "GET /static/onlineSearch/index.html HTTP/1.1" 200 [2026-08-05 16:46:00] [0.5.4] [INFO] 172.25.0.1:44172 - "GET /static/default/index.html HTTP/1.1" 200 [2026-08-05 16:46:23] [0.5.4] [INFO] 172.25.0.1:44208 - "GET /static/xiaoai.png HTTP/1.1" 200 [2026-08-05 16:46:23] [0.5.4] [INFO] 172.25.0.1:44212 - "GET /static/xplayer/index.html HTTP/1.1" 200 [2026-08-05 16:47:48] [0.5.4] [INFO] 172.25.0.1:44378 - "GET /static/pure/index.html HTTP/1.1" 200 [2026-08-05 16:50:27] [0.5.4] [INFO] 172.25.0.1:44712 - "GET /robots.txt HTTP/1.1" 404 [2026-08-05 16:50:29] [0.5.4] [INFO] 172.25.0.1:44712 - "GET /static/tailwind/index.html HTTP/1.1" 200 [2026-08-05 16:50:29] [0.5.4] [INFO] 172.25.0.1:44712 - "GET /static/iwebplayer/iwebplayer.html HTTP/1.1" 200 [2026-08-05 16:51:14] [0.5.4] [INFO] 172.25.0.1:44800 - "GET /static/weapp/qrcode.html HTTP/1.1" 200 [2026-08-05 16:51:52] [0.5.4] [INFO] 172.25.0.1:44882 - "GET /static/soundSpace/index.html HTTP/1.1" 200 [2026-08-05 17:51:30] [0.5.4] [INFO] 172.25.0.1:53190 - "GET /robots.txt HTTP/1.1" 404 [2026-08-05 17:51:31] [0.5.4] [INFO] 172.25.0.1:53190 - "GET /static/tailwind/qrcode.png HTTP/1.1" 200 [2026-08-05 17:52:21] [0.5.4] [INFO] 172.25.0.1:53300 - "GET /static/tailwind/setting.html HTTP/1.1" 200 [2026-08-05 17:54:40] [0.5.4] [INFO] 172.25.0.1:53672 - "GET /static/tailwind/downloadtool.html HTTP/1.1" 200 [2026-08-05 17:56:13] [0.5.4] [INFO] 172.25.0.1:53986 - "GET /static/default/setting.html HTTP/1.1" 200 [2026-08-05 17:56:56] [0.5.4] [INFO] 172.25.0.1:54074 - "GET /static/onlineSearch/setting.html HTTP/1.1" 200 [2026-08-05 18:52:34] [0.5.4] [INFO] 172.25.0.1:33054 - "GET /robots.txt HTTP/1.1" 404 [2026-08-05 18:52:35] [0.5.4] [INFO] 172.25.0.1:33054 - "GET /static/tailwind/debug.html HTTP/1.1" 200 [2026-08-05 18:53:37] [0.5.4] [INFO] 172.25.0.1:33180 - "GET /static/tailwind/m3u.html HTTP/1.1" 200 [2026-08-05 18:53:37] [0.5.4] [INFO] 172.25.0.1:33180 - "GET /static/default/downloadtool.html HTTP/1.1" 200 [2026-08-05 18:55:13] [0.5.4] [INFO] 172.25.0.1:33386 - "GET /static/default/qrcode.png HTTP/1.1" 200 [2026-08-05 18:59:19] [0.5.4] [INFO] 172.25.0.1:33854 - "GET /docs HTTP/1.1" 200 [2026-08-05 18:59:31] [0.5.4] [INFO] 172.25.0.1:33890 - "GET /static/default/merge/index.html HTTP/1.1" 200