[2026-09-12 10:57:57] [0.5.4] [INFO] js_plugin_manager.py:80: Node.js process started successfully [2026-09-12 10:57:57] [0.5.4] [INFO] js_plugin_manager.py:916: Plugins directory: conf/js_plugins [2026-09-12 10:57:57] [0.5.4] [INFO] js_plugin_manager.py:917: Plugins config file: conf/plugins-config.json [2026-09-12 10:57:57] [0.5.4] [INFO] xiaomusic.py:81: JS Plugin Manager initialized successfully [2026-09-12 10:57:57] [0.5.4] [INFO] js_plugin_manager.py:1820: 自动转换未启用,不启动定时任务 [2026-09-12 10:57:57] [0.5.4] [INFO] xiaomusic.py:92: JS Adapter initialized successfully [2026-09-12 10:57:57] [0.5.4] [INFO] config_manager.py:42: The file conf/setting.json does not exist. [2026-09-12 10:58:01] [0.5.4] [INFO] music_library.py:965: 启动后台构建 tag cache [2026-09-12 10:58:01] [0.5.4] [INFO] analytics.py:35: analytics init ok [2026-09-12 10:58:01] [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='58090', 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-09-12 10:58:03] [0.5.4] [INFO] dependencies.py:277: disable_httpauth:True [2026-09-12 10:58:04] [0.5.4] [INFO] Started server process [1] [2026-09-12 10:58:04] [0.5.4] [INFO] Waiting for application startup. [2026-09-12 10:58:04] [0.5.4] [INFO] music_library.py:921: 已从【music/cache/tag_cache.json】加载 tag cache [2026-09-12 10:58:04] [0.5.4] [INFO] music_library.py:981: ignore_tag_absolute_dirs: [] [2026-09-12 10:58:04] [0.5.4] [INFO] xiaomusic.py:243: run_forever start [2026-09-12 10:58:04] [0.5.4] [INFO] music_library.py:948: tag 更新中,请等待 [2026-09-12 10:58:04] [0.5.4] [INFO] Application startup complete. [2026-09-12 10:58:04] [0.5.4] [INFO] analytics.py:78: analytics run_with_cancel success [2026-09-12 10:58:04] [0.5.4] [WARNING] auth.py:210: conf/.mi.token file not exist [2026-09-12 10:58:04] [0.5.4] [WARNING] auth.py:84: 没有账号密码 或 cookies 无法登陆 [2026-09-12 10:58:04] [0.5.4] [INFO] auth.py:68: Maybe already logined is_need_login:True is_can_login:False [2026-09-12 10:58:04] [0.5.4] [WARNING] auth.py:170: 可能登录失败. 'NoneType' object has no attribute 'device_list' [2026-09-12 10:58:04] [0.5.4] [INFO] device_manager.py:63: 设备列表已更新: device_id_did={} [2026-09-12 10:58:04] [0.5.4] [INFO] device_manager.py:64: 设备分组已更新: groups={} [2026-09-12 10:58:04] [0.5.4] [WARNING] auth.py:210: conf/.mi.token file not exist [2026-09-12 10:58:04] [0.5.4] [INFO] analytics.py:78: analytics run_with_cancel success [2026-09-12 10:58:04] [0.5.4] [INFO] Uvicorn running on http://['0.0.0.0', '::']:58090 (Press CTRL+C to quit) [2026-09-12 10:58:06] [0.5.4] [INFO] music_library.py:937: 保存:tag cache 已保存到【music/cache/tag_cache.json】 [2026-09-12 10:58:06] [0.5.4] [INFO] music_library.py:1021: tag 更新完成 [2026-09-13 00:58:04] [0.5.4] [INFO] analytics.py:78: analytics run_with_cancel success [2026-09-13 15:45:03] [0.5.4] [INFO] 192.168.50.120:55472 - "GET / HTTP/1.1" 200 [2026-09-14 00:58:07] [0.5.4] [INFO] analytics.py:78: analytics run_with_cancel success [2026-09-14 09:52:35] [0.5.4] [INFO] 192.168.50.120:36550 - "GET /robots.txt HTTP/1.1" 404 [2026-09-15 00:58:07] [0.5.4] [INFO] analytics.py:78: analytics run_with_cancel success [2026-09-15 08:01:16] [0.5.4] [INFO] 192.168.50.120:40048 - "GET /robots.txt HTTP/1.1" 404 [2026-09-16 00:58:08] [0.5.4] [INFO] analytics.py:78: analytics run_with_cancel success [2026-09-16 14:24:16] [0.5.4] [INFO] 192.168.50.120:50708 - "GET /apple-touch-icon.png HTTP/1.1" 404 [2026-09-16 14:24:16] [0.5.4] [INFO] 192.168.50.120:50710 - "GET /apple-touch-icon-precomposed.png HTTP/1.1" 404 [2026-09-16 14:24:16] [0.5.4] [INFO] 192.168.50.120:50712 - "GET /favicon.ico HTTP/1.1" 404 [2026-09-16 14:24:17] [0.5.4] [INFO] 192.168.50.120:50714 - "GET /static/default/index.html HTTP/1.1" 200 [2026-09-16 14:24:18] [0.5.4] [INFO] 192.168.50.120:50714 - "GET /static/default/favicon.ico HTTP/1.1" 200 [2026-09-16 16:37:02] [0.5.4] [INFO] 192.168.50.120:41328 - "GET /robots.txt HTTP/1.1" 404 [2026-09-17 00:58:09] [0.5.4] [INFO] analytics.py:78: analytics run_with_cancel success [2026-09-17 17:13:35] [0.5.4] [INFO] 192.168.50.120:33976 - "GET /robots.txt HTTP/1.1" 404 [2026-09-18 00:58:09] [0.5.4] [INFO] analytics.py:78: analytics run_with_cancel success [2026-09-18 04:15:32] [0.5.4] [INFO] 192.168.50.120:59032 - "GET / HTTP/1.1" 200 [2026-09-18 04:15:40] [0.5.4] [INFO] 192.168.50.120:59090 - "GET /static/default/index.html HTTP/1.1" 200 [2026-09-18 04:15:41] [0.5.4] [INFO] 192.168.50.120:59090 - "GET /static/tailwind/index.html HTTP/1.1" 200 [2026-09-18 04:15:41] [0.5.4] [INFO] 192.168.50.120:59092 - "GET /static/pure/index.html HTTP/1.1" 200 [2026-09-18 04:15:41] [0.5.4] [INFO] 192.168.50.120:59092 - "GET /static/soundSpace/index.html HTTP/1.1" 200 [2026-09-18 04:15:41] [0.5.4] [INFO] 192.168.50.120:59092 - "GET /static/xplayer/index.html HTTP/1.1" 200 [2026-09-18 04:15:41] [0.5.4] [INFO] 192.168.50.120:59092 - "GET /static/iwebplayer/iwebplayer.html HTTP/1.1" 200 [2026-09-18 04:15:41] [0.5.4] [INFO] 192.168.50.120:59090 - "GET /static/onlineSearch/index.html HTTP/1.1" 200 [2026-09-18 04:15:46] [0.5.4] [INFO] 192.168.50.120:59092 - "GET /static/default/jquery-3.7.1.min.js?version=1778337085 HTTP/1.1" 200 [2026-09-18 04:15:46] [0.5.4] [INFO] 192.168.50.120:59090 - "GET /static/default/setting.html HTTP/1.1" 200 [2026-09-18 04:15:46] [0.5.4] [INFO] 192.168.50.120:59092 - "GET /static/default/md.js?version=1778337085 HTTP/1.1" 200 [2026-09-18 04:15:46] [0.5.4] [INFO] 192.168.50.120:59092 - "GET /static/pure/assets/index-BAPaOAUA.js HTTP/1.1" 200 [2026-09-18 04:15:47] [0.5.4] [INFO] 192.168.50.120:59090 - "GET /static/soundSpace/assets/index-fie2kaim.js HTTP/1.1" 200 [2026-09-18 04:17:26] [0.5.4] [INFO] 192.168.50.120:59338 - "GET / HTTP/1.1" 200 [2026-09-18 04:17:27] [0.5.4] [INFO] 192.168.50.120:59338 - "GET /static/default/index.html HTTP/1.1" 200 [2026-09-18 04:17:27] [0.5.4] [INFO] 192.168.50.120:59338 - "GET /static/tailwind/index.html HTTP/1.1" 200 [2026-09-18 04:17:28] [0.5.4] [INFO] 192.168.50.120:59338 - "GET /static/pure/index.html HTTP/1.1" 200 [2026-09-18 04:17:28] [0.5.4] [INFO] 192.168.50.120:59338 - "GET /static/xplayer/index.html HTTP/1.1" 200 [2026-09-18 04:17:28] [0.5.4] [INFO] 192.168.50.120:59338 - "GET /static/soundSpace/index.html HTTP/1.1" 200 [2026-09-18 04:17:28] [0.5.4] [INFO] 192.168.50.120:59338 - "GET /static/iwebplayer/iwebplayer.html HTTP/1.1" 200 [2026-09-18 04:17:28] [0.5.4] [INFO] 192.168.50.120:59358 - "GET /static/onlineSearch/index.html HTTP/1.1" 200 [2026-09-18 04:17:28] [0.5.4] [INFO] 192.168.50.120:59338 - "GET /static/default/setting.html HTTP/1.1" 200 [2026-09-18 04:17:29] [0.5.4] [INFO] 192.168.50.120:59358 - "GET /static/tailwind/libs/jquery-3.6.0.js HTTP/1.1" 200 [2026-09-18 04:17:29] [0.5.4] [INFO] 192.168.50.120:59338 - "GET /static/tailwind/libs/tailwind.js HTTP/1.1" 200 [2026-09-18 04:17:29] [0.5.4] [INFO] 192.168.50.120:59358 - "GET /static/tailwind/libs/vue%403.5.13.js HTTP/1.1" 200 [2026-09-18 04:17:29] [0.5.4] [INFO] 192.168.50.120:59364 - "GET /static/tailwind/downloadtool.html HTTP/1.1" 200 [2026-09-18 04:17:29] [0.5.4] [INFO] 192.168.50.120:59364 - "GET /static/tailwind/api.js HTTP/1.1" 200 [2026-09-18 04:17:29] [0.5.4] [INFO] 192.168.50.120:59366 - "GET /static/tailwind/libs/axios.min.js HTTP/1.1" 200 [2026-09-18 04:17:29] [0.5.4] [INFO] 192.168.50.120:59364 - "GET /static/tailwind/md.js HTTP/1.1" 200 [2026-09-18 04:17:29] [0.5.4] [INFO] 192.168.50.120:59368 - "GET /static/tailwind/setting.html HTTP/1.1" 200 [2026-09-18 04:37:07] [0.5.4] [INFO] 192.168.50.120:33274 - "GET / HTTP/1.1" 200 [2026-09-18 04:37:08] [0.5.4] [INFO] 192.168.50.120:33274 - "GET /static/tailwind/index.html HTTP/1.1" 200 [2026-09-18 04:37:08] [0.5.4] [INFO] 192.168.50.120:33274 - "GET /static/pure/index.html HTTP/1.1" 200 [2026-09-18 04:37:08] [0.5.4] [INFO] 192.168.50.120:33274 - "GET /static/xplayer/index.html HTTP/1.1" 200 [2026-09-18 04:37:08] [0.5.4] [INFO] 192.168.50.120:33274 - "GET /static/default/index.html HTTP/1.1" 200 [2026-09-18 04:37:08] [0.5.4] [INFO] 192.168.50.120:33274 - "GET /static/onlineSearch/index.html HTTP/1.1" 200 [2026-09-18 04:37:09] [0.5.4] [INFO] 192.168.50.120:33274 - "GET /static/iwebplayer/iwebplayer.html HTTP/1.1" 200 [2026-09-18 04:37:09] [0.5.4] [INFO] 192.168.50.120:33292 - "GET /static/soundSpace/index.html HTTP/1.1" 200 [2026-09-18 04:37:09] [0.5.4] [INFO] 192.168.50.120:33274 - "GET /static/tailwind/downloadtool.html HTTP/1.1" 200 [2026-09-18 04:37:09] [0.5.4] [INFO] 192.168.50.120:33274 - "GET /static/tailwind/setting.html HTTP/1.1" 200 [2026-09-18 04:37:09] [0.5.4] [INFO] 192.168.50.120:33274 - "GET /static/xplayer/assets/index-ESKkJcHu.js HTTP/1.1" 200 [2026-09-19 00:58:09] [0.5.4] [INFO] analytics.py:78: analytics run_with_cancel success [2026-09-19 18:21:43] [0.5.4] [INFO] 192.168.50.120:50288 - "GET /robots.txt HTTP/1.1" 404 [2026-09-19 18:21:44] [0.5.4] [INFO] 192.168.50.120:50288 - "GET / HTTP/1.1" 200 [2026-09-19 19:10:12] [0.5.4] [INFO] 192.168.50.120:56924 - "GET /static/iwebplayer/iwebplayer.html HTTP/1.1" 200 [2026-09-19 19:10:47] [0.5.4] [INFO] 192.168.50.120:56976 - "GET /static/pure/index.html HTTP/1.1" 200 [2026-09-19 19:11:53] [0.5.4] [INFO] 192.168.50.120:57090 - "GET /static/default/index.html HTTP/1.1" 200 [2026-09-19 19:11:55] [0.5.4] [INFO] 192.168.50.120:57090 - "GET /static/weapp/qrcode.html HTTP/1.1" 200 [2026-09-19 19:12:23] [0.5.4] [INFO] 192.168.50.120:57162 - "GET /static/xplayer/index.html HTTP/1.1" 200 [2026-09-19 19:12:23] [0.5.4] [INFO] 192.168.50.120:57162 - "GET /static/soundSpace/index.html HTTP/1.1" 200 [2026-09-19 19:12:43] [0.5.4] [INFO] 192.168.50.120:57206 - "GET /static/onlineSearch/index.html HTTP/1.1" 200 [2026-09-19 19:13:28] [0.5.4] [INFO] 192.168.50.120:57278 - "GET /static/tailwind/index.html HTTP/1.1" 200 [2026-09-19 20:05:44] [0.5.4] [INFO] 192.168.50.120:36110 - "GET /robots.txt HTTP/1.1" 404 [2026-09-19 20:05:44] [0.5.4] [INFO] 192.168.50.120:36110 - "GET /static/tailwind/downloadtool.html HTTP/1.1" 200 [2026-09-19 20:06:25] [0.5.4] [INFO] 192.168.50.120:36184 - "GET /static/default/setting.html HTTP/1.1" 200 [2026-09-19 20:08:15] [0.5.4] [INFO] 192.168.50.120:36394 - "GET /static/tailwind/setting.html HTTP/1.1" 200 [2026-09-19 20:08:33] [0.5.4] [INFO] 192.168.50.120:36424 - "GET /static/onlineSearch/setting.html HTTP/1.1" 200 [2026-09-19 21:08:09] [0.5.4] [INFO] 192.168.50.120:45086 - "GET /robots.txt HTTP/1.1" 404 [2026-09-19 21:08:10] [0.5.4] [INFO] 192.168.50.120:45086 - "GET /static/tailwind/debug.html HTTP/1.1" 200 [2026-09-19 21:08:40] [0.5.4] [INFO] 192.168.50.120:45140 - "GET /static/default/m3u.html HTTP/1.1" 200