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:
@@ -254,4 +254,251 @@ LXServer(1.8.1)端是正常的
|
||||
|
||||
---
|
||||
|
||||
### 评论 16 - boluofan
|
||||
> > Internal
|
||||
>
|
||||
> 大佬你好,我看到这个之后把lxserver 降级到了1.8.1,但是貌似1.8.1没有token设置,无法获取token,接口测试通过,但是拉取歌单一直报401错误,求助这个x-user-token该怎么填。最新版的lxserver 可以拉取到歌单,但是一直无法获取播放地址,已放弃最新版。
|
||||
>
|
||||
> 
|
||||
>
|
||||
> 
|
||||
>
|
||||
> 
|
||||
|
||||
老版本比较早不支持配置token,也不能获取用户歌单。新版本拉取lxserver歌单后转换成xm歌单不能播放吗?在线搜索的歌曲呢?
|
||||
---
|
||||
|
||||
### 评论 17 - zealler9560
|
||||
> > > Internal
|
||||
> >
|
||||
> > 大佬你好,我看到这个之后把lxserver 降级到了1.8.1,但是貌似1.8.1没有token设置,无法获取token,接口测试通过,但是拉取歌单一直报401错误,求助这个x-user-token该怎么填。最新版的lxserver 可以拉取到歌单,但是一直无法获取播放地址,已放弃最新版。
|
||||
> >
|
||||
> > 
|
||||
> >
|
||||
> > 
|
||||
> >
|
||||
> > 
|
||||
>
|
||||
> 老版本比较早不支持配置token,也不能获取用户歌单。新版本拉取lxserver歌单后转换成xm歌单不能播放吗?在线搜索的歌曲呢?
|
||||
|
||||

|
||||
|
||||
大佬我用的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 可以拉取到歌单,但是一直无法获取播放地址,已放弃最新版。
|
||||
> >
|
||||
> > 
|
||||
> >
|
||||
> > 
|
||||
> >
|
||||
> > 
|
||||
>
|
||||
> 老版本比较早不支持配置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 可以拉取到歌单,但是一直无法获取播放地址,已放弃最新版。
|
||||
> >
|
||||
> > 
|
||||
> >
|
||||
> > 
|
||||
> >
|
||||
> > 
|
||||
>
|
||||
> 老版本比较早不支持配置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)
|
||||
|
||||
Reference in New Issue
Block a user