1
0
mirror of https://github.com/hanxi/xiaomusic.git synced 2026-06-01 12:15:48 +08:00

Auto-Generate docs 🤖

This commit is contained in:
Issues Docs [BOT]
2026-05-25 14:15:55 +00:00
parent 9b257e78bc
commit 6c40909155

View File

@@ -254,4 +254,251 @@ LXServer1.8.1)端是正常的
---
### 评论 16 - boluofan
> > Internal
>
> 大佬你好我看到这个之后把lxserver 降级到了1.8.1但是貌似1.8.1没有token设置无法获取token,接口测试通过但是拉取歌单一直报401错误求助这个x-user-token该怎么填。最新版的lxserver 可以拉取到歌单,但是一直无法获取播放地址,已放弃最新版。![Screenshot_2026-05-23-09-15-00-667_com.android.chrome.jpg](https://gproxy.hanxi.cc/proxy/user-attachments/assets/936140a8-1610-4516-ba54-7b066e4e3a60)
>
> ![Screenshot_2026-05-23-08-57-27-299_com.android.chrome.jpg](https://gproxy.hanxi.cc/proxy/user-attachments/assets/5b73f726-c11d-4f3c-ade7-0266e5cabfa6)
>
> ![Screenshot_2026-05-23-09-24-20-760_com.android.chrome.jpg](https://gproxy.hanxi.cc/proxy/user-attachments/assets/a5344a98-804f-4565-ba3a-36356efbde51)
>
> ![Screenshot_2026-05-23-09-24-15-800_com.android.chrome.jpg](https://gproxy.hanxi.cc/proxy/user-attachments/assets/78ff4bc1-600e-4440-9b4a-96aa14f7a362)
老版本比较早不支持配置token也不能获取用户歌单。新版本拉取lxserver歌单后转换成xm歌单不能播放吗在线搜索的歌曲呢
---
### 评论 17 - zealler9560
> > > Internal
> >
> > 大佬你好我看到这个之后把lxserver 降级到了1.8.1但是貌似1.8.1没有token设置无法获取token,接口测试通过但是拉取歌单一直报401错误求助这个x-user-token该怎么填。最新版的lxserver 可以拉取到歌单,但是一直无法获取播放地址,已放弃最新版。![Screenshot_2026-05-23-09-15-00-667_com.android.chrome.jpg](https://gproxy.hanxi.cc/proxy/user-attachments/assets/936140a8-1610-4516-ba54-7b066e4e3a60)
> >
> > ![Screenshot_2026-05-23-08-57-27-299_com.android.chrome.jpg](https://gproxy.hanxi.cc/proxy/user-attachments/assets/5b73f726-c11d-4f3c-ade7-0266e5cabfa6)
> >
> > ![Screenshot_2026-05-23-09-24-20-760_com.android.chrome.jpg](https://gproxy.hanxi.cc/proxy/user-attachments/assets/a5344a98-804f-4565-ba3a-36356efbde51)
> >
> > ![Screenshot_2026-05-23-09-24-15-800_com.android.chrome.jpg](https://gproxy.hanxi.cc/proxy/user-attachments/assets/78ff4bc1-600e-4440-9b4a-96aa14f7a362)
>
> 老版本比较早不支持配置token也不能获取用户歌单。新版本拉取lxserver歌单后转换成xm歌单不能播放吗在线搜索的歌曲呢
![Screenshot_2026-05-23-12-07-52-339_com.android.chrome.jpg](https://gproxy.hanxi.cc/proxy/user-attachments/assets/aab76d8d-6452-4260-9d33-a4f3323720ee)
大佬我用的0.5.5版本的xiaomusic,1.8.1版本的lxserver,上面不是说1.8.2版本以后有token限制吗我特地从最新版降到了1.8.1而且实测lxserver 1.8.2及最新版什么都能过就是获取不到歌曲播放地址放歌都是一秒多的静音。现在的问题是lxserver 1.8.1虽然接口测试通过直接拉不到歌单每次都是错误401不知道x-user-token 这个怎么设置。总结一下就是lxserver 接口用不了
---
### 评论 18 - zealler9560
> > > Internal
> >
> > 大佬你好我看到这个之后把lxserver 降级到了1.8.1但是貌似1.8.1没有token设置无法获取token,接口测试通过但是拉取歌单一直报401错误求助这个x-user-token该怎么填。最新版的lxserver 可以拉取到歌单,但是一直无法获取播放地址,已放弃最新版。![Screenshot_2026-05-23-09-15-00-667_com.android.chrome.jpg](https://gproxy.hanxi.cc/proxy/user-attachments/assets/936140a8-1610-4516-ba54-7b066e4e3a60)
> >
> > ![Screenshot_2026-05-23-08-57-27-299_com.android.chrome.jpg](https://gproxy.hanxi.cc/proxy/user-attachments/assets/5b73f726-c11d-4f3c-ade7-0266e5cabfa6)
> >
> > ![Screenshot_2026-05-23-09-24-20-760_com.android.chrome.jpg](https://gproxy.hanxi.cc/proxy/user-attachments/assets/a5344a98-804f-4565-ba3a-36356efbde51)
> >
> > ![Screenshot_2026-05-23-09-24-15-800_com.android.chrome.jpg](https://gproxy.hanxi.cc/proxy/user-attachments/assets/78ff4bc1-600e-4440-9b4a-96aa14f7a362)
>
> 老版本比较早不支持配置token也不能获取用户歌单。新版本拉取lxserver歌单后转换成xm歌单不能播放吗在线搜索的歌曲呢
使用新版本lxserver 以后只有无法播放歌曲这一个问题
# GitHub Issue 脱敏版草稿
## 问题描述
XiaoMusic 播放 LXServer 在线歌单里的歌曲时,歌曲 URL 解析失败。表现为多次请求 LXServer `/api/music/url` 超时,部分情况下返回 `500 Internal Server Error`,随后 XiaoMusic 认为是死链并触发连续死链熔断。
## 环境
- XiaoMusic: 0.5.5
- LXServer: 1.9.3
- 运行环境Docker / OpenWrt / iStoreOS
- 播放来源LXServer 在线歌单 / webPush
- 涉及接口:
- `http://[LAN_IP]:[LXSERVER_PORT]/api/music/url`
- `http://[XIAOMUSIC_HOST]:[PUBLIC_PORT]/proxy/music?token=[REDACTED]`
## 关键日志摘录(已脱敏)
```text
[2026-05-23 15:05:07] [0.5.5] [INFO] music_library.py:1101: get_music_url web music. name:小兔子乖乖-贝乐虎儿歌, url:self:///api/proxy/plugin-url?data=[REDACTED]
[2026-05-23 15:05:07] [0.5.5] [INFO] music_library.py:1211: Using token proxy url: http://[LAN_IP]:[PUBLIC_PORT]/proxy/music?token=[REDACTED]
[2026-05-23 15:05:26] [0.5.5] [ERROR] js_plugin_manager.py:1231: Request timeout at http://[LAN_IP]:[LXSERVER_PORT]/api/music/url
[2026-05-23 15:05:47] [0.5.5] [WARNING] device_player.py:400: 探路超时或网络异常(插件解析失败):
[2026-05-23 15:05:47] [0.5.5] [WARNING] device_player.py:405: 当前连续死链次数: 1
[2026-05-23 15:06:08] [0.5.5] [ERROR] js_plugin_manager.py:1231: Request timeout at http://[LAN_IP]:[LXSERVER_PORT]/api/music/url
[2026-05-23 15:06:08] [0.5.5] [WARNING] device_player.py:405: 当前连续死链次数: 2
[2026-05-23 15:06:28] [0.5.5] [ERROR] js_plugin_manager.py:1231: Request timeout at http://[LAN_IP]:[LXSERVER_PORT]/api/music/url
[2026-05-23 15:06:28] [0.5.5] [WARNING] device_player.py:405: 当前连续死链次数: 3
[2026-05-23 15:06:48] [0.5.5] [ERROR] js_plugin_manager.py:1231: Request timeout at http://[LAN_IP]:[LXSERVER_PORT]/api/music/url
[2026-05-23 15:06:48] [0.5.5] [WARNING] device_player.py:405: 当前连续死链次数: 4
[2026-05-23 15:07:09] [0.5.5] [ERROR] js_plugin_manager.py:1231: Request timeout at http://[LAN_IP]:[LXSERVER_PORT]/api/music/url
[2026-05-23 15:07:09] [0.5.5] [WARNING] device_player.py:405: 当前连续死链次数: 5
[2026-05-23 15:07:09] [0.5.5] [ERROR] device_player.py:408: 连续 5 次获取歌曲死链,触发第一层终极熔断!
[2026-05-23 15:07:12] [0.5.5] [ERROR] js_plugin_manager.py:1228: HTTP Error at http://[LAN_IP]:[LXSERVER_PORT]/api/music/url: 500 Internal Server Error
[2026-05-23 15:07:57] [0.5.5] [ERROR] js_plugin_manager.py:1228: HTTP Error at http://[LAN_IP]:[LXSERVER_PORT]/api/music/url: 500 Internal Server Error
```
## 观察
1. XiaoMusic 能启动,能登录小米账号,能识别设备,也能读取本地/在线歌单。
2. `/api/lxServer/userList` 在这份日志里返回 200说明这次不是歌单列表 401 问题。
3. 失败集中在播放时向 LXServer 请求 `/api/music/url`,出现超时和 500。
4. 失败后代理回退到了 `static/silence.mp3`,所以实际播放可能是静音文件或跳过,之后连续死链计数增加并触发熔断。
## 期望
希望开发者确认:
- `/api/music/url` 超时/500 时XiaoMusic 是否可以输出更明确的 LXServer 返回体或错误原因;
- 对 LXServer URL 解析失败时是否能区分“上游音乐源失败”和“XiaoMusic 代理失败”;
- 是否可以避免日志里输出完整 `music_list_json` / `plugin-url?data=`,这些内容过长且包含个人歌单信息。
---
### 评论 19 - zealler9560
> > > Internal
> >
> > 大佬你好我看到这个之后把lxserver 降级到了1.8.1但是貌似1.8.1没有token设置无法获取token,接口测试通过但是拉取歌单一直报401错误求助这个x-user-token该怎么填。最新版的lxserver 可以拉取到歌单,但是一直无法获取播放地址,已放弃最新版。![Screenshot_2026-05-23-09-15-00-667_com.android.chrome.jpg](https://gproxy.hanxi.cc/proxy/user-attachments/assets/936140a8-1610-4516-ba54-7b066e4e3a60)
> >
> > ![Screenshot_2026-05-23-08-57-27-299_com.android.chrome.jpg](https://gproxy.hanxi.cc/proxy/user-attachments/assets/5b73f726-c11d-4f3c-ade7-0266e5cabfa6)
> >
> > ![Screenshot_2026-05-23-09-24-20-760_com.android.chrome.jpg](https://gproxy.hanxi.cc/proxy/user-attachments/assets/a5344a98-804f-4565-ba3a-36356efbde51)
> >
> > ![Screenshot_2026-05-23-09-24-15-800_com.android.chrome.jpg](https://gproxy.hanxi.cc/proxy/user-attachments/assets/78ff4bc1-600e-4440-9b4a-96aa14f7a362)
>
> 老版本比较早不支持配置token也不能获取用户歌单。新版本拉取lxserver歌单后转换成xm歌单不能播放吗在线搜索的歌曲呢
# XiaoMusic / LXServer issue log - detailed redacted excerpt
## Environment
- XiaoMusic: 0.5.5
- LXServer: 1.8.1, inferred from user-provided context
- Runtime: OpenWrt/iStoreOS + Docker, inferred from user-provided context
- Sensitive fields have been redacted.
## Problem summary
Online playlist can be listed/pulled, but playback fails while resolving the real music URL through LXServer. The repeated failing endpoint is:
```text
http://[LAN_IP]:9526/api/music/url
```
Observed results:
- Multiple `Request timeout` events on `/api/music/url`
- Later `500 Internal Server Error` on `/api/music/url`
- XiaoMusic redirects failed tracks to `/static/silence.mp3`
- Consecutive dead-link counter reaches 5 and triggers final fuse/breaker
## Redaction summary
- Account/phone, cookies, passwords, HTTP auth, WebSocket tokens, proxy tokens, Authorization values removed
- Xiaomi device identifiers, DID, device ID, serial, MAC, profile blobs, device name removed
- LAN/Docker/public IPs replaced with placeholders; ports preserved
- Music-list JSON, plugin-url base64 payload, song metadata, artwork URLs, and long playlist contents removed
## Counts from original log
```json
{
"source_size_bytes": 2137571,
"normalized_log_lines": 744,
"redacted_full_lines": 376,
"github_selected_lines": 145,
"request_timeout_count": 5,
"http_500_count": 2,
"dead_link_count_markers": 8,
"terminal_fuse_count": 1,
"api_music_url_count": 7,
"api_lxserver_userlist_200_count": 1
}
```
## Selected redacted log
```text
[2026-05-23 15:04:31] [0.5.5] [INFO] xiaomusic.py:164: Startup OK. Config(account='[REDACTED_ACCOUNT]', password='[REDACTED_PASSWORD]', mi_did='[REDACTED_DID]', hostname='http://[LAN_IP]', port=8090, public_port=58090, search_prefix='bilisearch:', use_music_api=False, active_cmd='[REDACTED_ACTIVE_CMD_LIST]', music_list_json='[REDACTED_MUSIC_LIST_JSON]', devices='[REDACTED_DEVICE_LIST]', web_music_proxy=True, qrcode_timeout=120)
[2026-05-23 15:04:34] [0.5.5] [INFO] auth.py:151: 登录完成. [REDACTED_LOGIN_ACCOUNT]
[2026-05-23 15:04:34] [0.5.5] [INFO] auth.py:240: 选中的设备: [REDACTED_DEVICE_SELECTION]
[2026-05-23 15:05:07] [0.5.5] [INFO] music_library.py:1101: get_music_url web music. name:[REDACTED_MUSIC_NAME], url:self:///api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD]
[2026-05-23 15:05:07] [0.5.5] [INFO] music_library.py:1211: Using token proxy url: http://[LAN_IP]:58090/proxy/music?token=[REDACTED_TOKEN]
[2026-05-23 15:05:07] [0.5.5] [INFO] playlist.py:40: playmusiclist [REDACTED_DID] listname:[REDACTED_PLAYLIST_NAME] musicname:[REDACTED_MUSIC_NAME]
[2026-05-23 15:05:26] [0.5.5] [INFO] music_library.py:1101: get_music_url web music. name:[REDACTED_MUSIC_NAME], url:self:///api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD]
[2026-05-23 15:05:26] [0.5.5] [INFO] music_library.py:1211: Using token proxy url: http://[LAN_IP]:58090/proxy/music?token=[REDACTED_TOKEN]
[2026-05-23 15:05:26] [0.5.5] [INFO] device_player.py:381: 极速探路启动,触发后端代理解析: http://[LAN_IP]:58090/proxy/music?token=[REDACTED_TOKEN]
[2026-05-23 15:05:26] [0.5.5] [INFO] music_library.py:1101: get_music_url web music. name:[REDACTED_MUSIC_NAME], url:self:///api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD]
[2026-05-23 15:05:26] [0.5.5] [INFO] music_library.py:1211: Using token proxy url: http://[LAN_IP]:58090/proxy/music?token=[REDACTED_TOKEN]
[2026-05-23 15:05:26] [0.5.5] [INFO] file.py:1142: [proxy:87ad8326] start is_radio=False url=self:///api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD]
[2026-05-23 15:05:26] [0.5.5] [INFO] music_library.py:1281: 链接处理前 $ParseResult(scheme='self', netloc='', path='/api/proxy/plugin-url', params='', query='[REDACTED_LONG_TOKEN_OR_BASE64]=', fragment='')
[2026-05-23 15:05:26] [0.5.5] [INFO] file.py:1145: [proxy:87ad8326] expand_self_url parsed=ParseResult(scheme='http', netloc='[LAN_IP]:58090', path='/api/proxy/plugin-url', params='', query='[REDACTED_LONG_TOKEN_OR_BASE64]=', fragment='') final_url=http://[LAN_IP]:58090/api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD]
[2026-05-23 15:05:26] [0.5.5] [INFO] file.py:1219: [proxy:87ad8326] initial GET url=http://[LAN_IP]:58090/api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD] headers={'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8', 'cache-control': 'no-cache', 'pragma': 'no-cache', 'priority': 'u=0, i', 'sec-ch-ua': '[REDACTED_BROWSER_HINT]', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '[REDACTED_PLATFORM_HINT]', 'sec-fetch-dest': 'document', 'sec-fetch-mode': 'navigate', 'sec-fetch-site': 'none', 'sec-fetch-user': '?1', 'upgrade-insecure-requests': '1', 'user-agent': '[REDACTED_USER_AGENT]', 'Authorization': '[REDACTED_AUTH]'}
[2026-05-23 15:05:26] [0.5.5] [INFO] playlist.py:40: playmusiclist [REDACTED_DID] listname:[REDACTED_PLAYLIST_NAME] musicname:[REDACTED_MUSIC_NAME]
[2026-05-23 15:05:46] [0.5.5] [INFO] music_library.py:1101: get_music_url web music. name:[REDACTED_MUSIC_NAME], url:self:///api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD]
[2026-05-23 15:05:46] [0.5.5] [INFO] music_library.py:1211: Using token proxy url: http://[LAN_IP]:58090/proxy/music?token=[REDACTED_TOKEN]
[2026-05-23 15:05:46] [0.5.5] [INFO] device_player.py:381: 极速探路启动,触发后端代理解析: http://[LAN_IP]:58090/proxy/music?token=[REDACTED_TOKEN]
[2026-05-23 15:05:46] [0.5.5] [ERROR] js_plugin_manager.py:1231: Request timeout at http://[LAN_IP]:9526/api/music/url
[2026-05-23 15:05:47] [0.5.5] [INFO] music.py:138: plugin-url {[REDACTED_PLUGIN_MUSIC_METADATA]}
[2026-05-23 15:05:47] [0.5.5] [INFO] [DOCKER_GATEWAY]:50738 - "GET /api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD] HTTP/1.1" 307
[2026-05-23 15:05:47] [0.5.5] [WARNING] device_player.py:400: 探路超时或网络异常(插件解析失败):
[2026-05-23 15:05:47] [0.5.5] [WARNING] device_player.py:405: 当前连续死链次数: 1
[2026-05-23 15:05:47] [0.5.5] [INFO] file.py:1230: [proxy:87ad8326] redirect#1 status=307 from=http://[LAN_IP]:58090/api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD] to=http://[LAN_IP]:58090/static/silence.mp3
[2026-05-23 15:05:47] [0.5.5] [INFO] file.py:1246: [proxy:87ad8326] redirect target resolved=http://[LAN_IP]:58090/static/silence.mp3 netloc=[LAN_IP]:58090 headers={'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8', 'cache-control': 'no-cache', 'pragma': 'no-cache', 'priority': 'u=0, i', 'sec-ch-ua': '[REDACTED_BROWSER_HINT]', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '[REDACTED_PLATFORM_HINT]', 'sec-fetch-dest': 'document', 'sec-fetch-mode': 'navigate', 'sec-fetch-site': 'none', 'sec-fetch-user': '?1', 'upgrade-insecure-requests': '1', 'user-agent': '[REDACTED_USER_AGENT]', 'Authorization': '[REDACTED_AUTH]'}
[2026-05-23 15:05:47] [0.5.5] [INFO] file.py:1142: [proxy:c12018df] start is_radio=False url=self:///api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD]
[2026-05-23 15:05:47] [0.5.5] [INFO] music_library.py:1281: 链接处理前 $ParseResult(scheme='self', netloc='', path='/api/proxy/plugin-url', params='', query='[REDACTED_LONG_TOKEN_OR_BASE64]=', fragment='')
[2026-05-23 15:05:47] [0.5.5] [INFO] file.py:1145: [proxy:c12018df] expand_self_url parsed=ParseResult(scheme='http', netloc='[LAN_IP]:58090', path='/api/proxy/plugin-url', params='', query='[REDACTED_LONG_TOKEN_OR_BASE64]=', fragment='') final_url=http://[LAN_IP]:58090/api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD]
[2026-05-23 15:05:47] [0.5.5] [INFO] file.py:1219: [proxy:c12018df] initial GET url=http://[LAN_IP]:58090/api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD] headers={'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8', 'cache-control': 'no-cache', 'pragma': 'no-cache', 'priority': 'u=0, i', 'sec-ch-ua': '[REDACTED_BROWSER_HINT]', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '[REDACTED_PLATFORM_HINT]', 'sec-fetch-dest': 'document', 'sec-fetch-mode': 'navigate', 'sec-fetch-site': 'none', 'sec-fetch-user': '?1', 'upgrade-insecure-requests': '1', 'user-agent': '[REDACTED_USER_AGENT]', 'Authorization': '[REDACTED_AUTH]'}
[2026-05-23 15:05:47] [0.5.5] [INFO] [DOCKER_GATEWAY]:50738 - "GET /static/silence.mp3 HTTP/1.1" 200
[2026-05-23 15:05:47] [0.5.5] [INFO] file.py:1267: [proxy:87ad8326] final response status=200 resp_url=http://[LAN_IP]:58090/static/silence.mp3 content_type=audio/mpeg content_length=8721
[2026-05-23 15:05:47] [0.5.5] [INFO] file.py:1361: [proxy:87ad8326] stream finished total_bytes=12247 resp_url=http://[LAN_IP]:58090/static/silence.mp3
[2026-05-23 15:05:47] [0.5.5] [INFO] device_player.py:319: 开始播放下一首
[2026-05-23 15:06:08] [0.5.5] [INFO] music_library.py:1101: get_music_url web music. name:[REDACTED_MUSIC_NAME], url:self:///api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD]
[2026-05-23 15:06:08] [0.5.5] [INFO] music_library.py:1211: Using token proxy url: http://[LAN_IP]:58090/proxy/music?token=[REDACTED_TOKEN]
[2026-05-23 15:06:08] [0.5.5] [INFO] device_player.py:381: 极速探路启动,触发后端代理解析: http://[LAN_IP]:58090/proxy/music?token=[REDACTED_TOKEN]
[2026-05-23 15:06:08] [0.5.5] [ERROR] js_plugin_manager.py:1231: Request timeout at http://[LAN_IP]:9526/api/music/url
[2026-05-23 15:06:08] [0.5.5] [INFO] music.py:138: plugin-url {[REDACTED_PLUGIN_MUSIC_METADATA]}
[2026-05-23 15:06:08] [0.5.5] [INFO] [DOCKER_GATEWAY]:40702 - "GET /api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD] HTTP/1.1" 307
[2026-05-23 15:06:08] [0.5.5] [WARNING] device_player.py:400: 探路超时或网络异常(插件解析失败):
[2026-05-23 15:06:08] [0.5.5] [WARNING] device_player.py:405: 当前连续死链次数: 2
[2026-05-23 15:06:08] [0.5.5] [INFO] file.py:1230: [proxy:c12018df] redirect#1 status=307 from=http://[LAN_IP]:58090/api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD] to=http://[LAN_IP]:58090/static/silence.mp3
[2026-05-23 15:06:08] [0.5.5] [INFO] file.py:1246: [proxy:c12018df] redirect target resolved=http://[LAN_IP]:58090/static/silence.mp3 netloc=[LAN_IP]:58090 headers={'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8', 'cache-control': 'no-cache', 'pragma': 'no-cache', 'priority': 'u=0, i', 'sec-ch-ua': '[REDACTED_BROWSER_HINT]', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '[REDACTED_PLATFORM_HINT]', 'sec-fetch-dest': 'document', 'sec-fetch-mode': 'navigate', 'sec-fetch-site': 'none', 'sec-fetch-user': '?1', 'upgrade-insecure-requests': '1', 'user-agent': '[REDACTED_USER_AGENT]', 'Authorization': '[REDACTED_AUTH]'}
[2026-05-23 15:06:08] [0.5.5] [INFO] file.py:1142: [proxy:63967b85] start is_radio=False url=self:///api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD]
[2026-05-23 15:06:08] [0.5.5] [INFO] music_library.py:1281: 链接处理前 $ParseResult(scheme='self', netloc='', path='/api/proxy/plugin-url', params='', query='[REDACTED_LONG_TOKEN_OR_BASE64]==', fragment='')
[2026-05-23 15:06:08] [0.5.5] [INFO] file.py:1145: [proxy:63967b85] expand_self_url parsed=ParseResult(scheme='http', netloc='[LAN_IP]:58090', path='/api/proxy/plugin-url', params='', query='[REDACTED_LONG_TOKEN_OR_BASE64]==', fragment='') final_url=http://[LAN_IP]:58090/api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD]
[2026-05-23 15:06:08] [0.5.5] [INFO] file.py:1219: [proxy:63967b85] initial GET url=http://[LAN_IP]:58090/api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD] headers={'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8', 'cache-control': 'no-cache', 'pragma': 'no-cache', 'priority': 'u=0, i', 'sec-ch-ua': '[REDACTED_BROWSER_HINT]', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '[REDACTED_PLATFORM_HINT]', 'sec-fetch-dest': 'document', 'sec-fetch-mode': 'navigate', 'sec-fetch-site': 'none', 'sec-fetch-user': '?1', 'upgrade-insecure-requests': '1', 'user-agent': '[REDACTED_USER_AGENT]', 'Authorization': '[REDACTED_AUTH]'}
[2026-05-23 15:06:08] [0.5.5] [INFO] [DOCKER_GATEWAY]:41740 - "GET /api/lxServer/load HTTP/1.1" 200
[2026-05-23 15:06:08] [0.5.5] [INFO] [DOCKER_GATEWAY]:40702 - "GET /static/silence.mp3 HTTP/1.1" 200
[2026-05-23 15:06:08] [0.5.5] [INFO] file.py:1267: [proxy:c12018df] final response status=200 resp_url=http://[LAN_IP]:58090/static/silence.mp3 content_type=audio/mpeg content_length=8721
[2026-05-23 15:06:08] [0.5.5] [INFO] file.py:1361: [proxy:c12018df] stream finished total_bytes=12247 resp_url=http://[LAN_IP]:58090/static/silence.mp3
[2026-05-23 15:06:08] [0.5.5] [INFO] js_plugin_manager.py:1573: 同步LXServer歌单: http://[LAN_IP]:9526/api/user/list
[2026-05-23 15:06:08] [0.5.5] [INFO] device_player.py:319: 开始播放下一首
[2026-05-23 15:06:28] [0.5.5] [INFO] music_library.py:1101: get_music_url web music. name:[REDACTED_MUSIC_NAME], url:self:///api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD]
[2026-05-23 15:06:28] [0.5.5] [INFO] music_library.py:1211: Using token proxy url: http://[LAN_IP]:58090/proxy/music?token=[REDACTED_TOKEN]
[2026-05-23 15:06:28] [0.5.5] [INFO] device_player.py:381: 极速探路启动,触发后端代理解析: http://[LAN_IP]:58090/proxy/music?token=[REDACTED_TOKEN]
[2026-05-23 15:06:28] [0.5.5] [INFO] [DOCKER_GATEWAY]:41740 - "GET /api/lxServer/pullPlaylist HTTP/1.1" 200
[2026-05-23 15:06:28] [0.5.5] [ERROR] js_plugin_manager.py:1231: Request timeout at http://[LAN_IP]:9526/api/music/url
[2026-05-23 15:06:28] [0.5.5] [INFO] music.py:138: plugin-url {[REDACTED_PLUGIN_MUSIC_METADATA]}
[2026-05-23 15:06:28] [0.5.5] [INFO] [DOCKER_GATEWAY]:57538 - "GET /api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD] HTTP/1.1" 307
[2026-05-23 15:06:28] [0.5.5] [WARNING] device_player.py:400: 探路超时或网络异常(插件解析失败):
[2026-05-23 15:06:28] [0.5.5] [WARNING] device_player.py:405: 当前连续死链次数: 3
[2026-05-23 15:06:28] [0.5.5] [INFO] file.py:1230: [proxy:63967b85] redirect#1 status=307 from=http://[LAN_IP]:58090/api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD] to=http://[LAN_IP]:58090/static/silence.mp3
[2026-05-23 15:06:28] [0.5.5] [INFO] file.py:1246: [proxy:63967b85] redirect target resolved=http://[LAN_IP]:58090/static/silence.mp3 netloc=[LAN_IP]:58090 headers={'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8', 'cache-control': 'no-cache', 'pragma': 'no-cache', 'priority': 'u=0, i', 'sec-ch-ua': '[REDACTED_BROWSER_HINT]', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '[REDACTED_PLATFORM_HINT]', 'sec-fetch-dest': 'document', 'sec-fetch-mode': 'navigate', 'sec-fetch-site': 'none', 'sec-fetch-user': '?1', 'upgrade-insecure-requests': '1', 'user-agent': '[REDACTED_USER_AGENT]', 'Authorization': '[REDACTED_AUTH]'}
[2026-05-23 15:06:28] [0.5.5] [INFO] file.py:1142: [proxy:8929ff66] start is_radio=False url=self:///api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD]
[2026-05-23 15:06:28] [0.5.5] [INFO] music_library.py:1281: 链接处理前 $ParseResult(scheme='self', netloc='', path='/api/proxy/plugin-url', params='', query='[REDACTED_LONG_TOKEN_OR_BASE64]=', fragment='')
[2026-05-23 15:06:28] [0.5.5] [INFO] file.py:1145: [proxy:8929ff66] expand_self_url parsed=ParseResult(scheme='http', netloc='[LAN_IP]:58090', path='/api/proxy/plugin-url', params='', query='[REDACTED_LONG_TOKEN_OR_BASE64]=', fragment='') final_url=http://[LAN_IP]:58090/api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD]
[2026-05-23 15:06:28] [0.5.5] [INFO] file.py:1219: [proxy:8929ff66] initial GET url=http://[LAN_IP]:58090/api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD] headers={'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8', 'cache-control': 'no-cache', 'pragma': 'no-cache', 'priority': 'u=0, i', 'sec-ch-ua': '[REDACTED_BROWSER_HINT]', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '[REDACTED_PLATFORM_HINT]', 'sec-fetch-dest': 'document', 'sec-fetch-mode': 'navigate', 'sec-fetch-site': 'none', 'sec-fetch-user': '?1', 'upgrade-insecure-requests': '1', 'user-agent': '[REDACTED_USER_AGENT]', 'Authorization': '[REDACTED_AUTH]'}
[2026-05-23 15:06:29] [0.5.5] [INFO] device_player.py:319: 开始播放下一首
[2026-05-23 15:06:48] [0.5.5] [INFO] music_library.py:1101: get_music_url web music. name:[REDACTED_MUSIC_NAME], url:self:///api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD]
[2026-05-23 15:06:48] [0.5.5] [INFO] music_library.py:1211: Using token proxy url: http://[LAN_IP]:58090/proxy/music?token=[REDACTED_TOKEN]
[2026-05-23 15:06:48] [0.5.5] [INFO] device_player.py:381: 极速探路启动,触发后端代理解析: http://[LAN_IP]:58090/proxy/music?token=[REDACTED_TOKEN]
[2026-05-23 15:06:48] [0.5.5] [INFO] [DOCKER_GATEWAY]:57538 - "GET /static/silence.mp3 HTTP/1.1" 200
[2026-05-23 15:06:48] [0.5.5] [WARNING] device_player.py:400: 探路超时或网络异常(插件解析失败):
[2026-05-23 15:06:48] [0.5.5] [WARNING] device_player.py:405: 当前连续死链次数: 4
[2026-05-23 15:06:48] [0.5.5] [ERROR] js_plugin_manager.py:1231: Request timeout at http://[LAN_IP]:9526/api/music/url
[2026-05-23 15:06:48] [0.5.5] [INFO] music.py:138: plugin-url {[REDACTED_PLUGIN_MUSIC_METADATA]}
[2026-05-23 15:06:48] [0.5.5] [INFO] [DOCKER_GATEWAY]:39340 - "GET /api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD] HTTP/1.1" 307
[2026-05-23 15:06:48] [0.5.5] [INFO] file.py:1267: [proxy:63967b85] final response status=200 resp_url=http://[LAN_IP]:58090/static/silence.mp3 content_type=audio/mpeg content_length=8721
[2026-05-23 15:06:48] [0.5.5] [INFO] file.py:1361: [proxy:63967b85] stream finished total_bytes=12247 resp_url=http://[LAN_IP]:58090/static/silence.mp3
[2026-05-23 15:06:48] [0.5.5] [INFO] file.py:1230: [proxy:8929ff66] redirect#1 status=307 from=http://[LAN_IP]:58090/api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD] to=http://[LAN_IP]:58090/static/silence.mp3
[2026-05-23 15:06:48] [0.5.5] [INFO] file.py:1246: [proxy:8929ff66] redirect target resolved=http://[LAN_IP]:58090/static/silence.mp3 netloc=[LAN_IP]:58090 headers={'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8', 'cache-control': 'no-cache', 'pragma': 'no-cache', 'priority': 'u=0, i', 'sec-ch-ua': '[REDACTED_BROWSER_HINT]', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '[REDACTED_PLATFORM_HINT]', 'sec-fetch-dest': 'document', 'sec-fetch-mode': 'navigate', 'sec-fetch-site': 'none', 'sec-fetch-user': '?1', 'upgrade-insecure-requests': '1', 'user-agent': '[REDACTED_USER_AGENT]', 'Authorization': '[REDACTED_AUTH]'}
[2026-05-23 15:06:48] [0.5.5] [INFO] file.py:1142: [proxy:a553d902] start is_radio=False url=self:///api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD]
[2026-05-23 15:06:48] [0.5.5] [INFO] music_library.py:1281: 链接处理前 $ParseResult(scheme='self', netloc='', path='/api/proxy/plugin-url', params='', query='[REDACTED_LONG_TOKEN_OR_BASE64]=', fragment='')
[2026-05-23 15:06:48] [0.5.5] [INFO] file.py:1145: [proxy:a553d902] expand_self_url parsed=ParseResult(scheme='http', netloc='[LAN_IP]:58090', path='/api/proxy/plugin-url', params='', query='[REDACTED_LONG_TOKEN_OR_BASE64]=', fragment='') final_url=http://[LAN_IP]:58090/api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD]
[2026-05-23 15:06:48] [0.5.5] [INFO] file.py:1219: [proxy:a553d902] initial GET url=http://[LAN_IP]:58090/api/proxy/plugin-url?data=[REDACTED_MUSIC_PAYLOAD] headers={'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8', 'cache-control': 'no-cache', 'pragma': 'no-cache', 'priority': 'u=0, i', 'sec-ch-ua': '[REDACTED_BROWS
---
[Issue 链接](https://github.com/hanxi/xiaomusic/issues/811)