1
0
mirror of https://github.com/hanxi/xiaomusic.git synced 2026-05-09 00:34:25 +08:00

fix: 修复【启用】网络歌曲过代理后,在线歌曲播放链接被base编码两次bug (#664)

This commit is contained in:
boluofan
2026-01-11 16:37:11 +08:00
committed by GitHub
parent 81b1883bb0
commit db17526e20

View File

@@ -64,7 +64,7 @@ class MusicUrlHandler:
return 0, url
# 在线歌曲:时长、播放链接获取
if self.music_library.is_online_music(cur_playlist):
return await self._get_online_music_sec_url(name, url)
return await self._get_online_music_sec_url(name, url, origin_url)
if self.music_library.is_web_music(name):
sec = await self._get_web_music_duration(name, url, origin_url)
else:
@@ -180,16 +180,19 @@ class MusicUrlHandler:
# 获取最终重定向的 URL
return str(response.url)
async def _get_online_music_sec_url(self, name, proxy_url):
async def _get_online_music_sec_url(self, name, proxy_url, origin_url):
"""获取在线音乐的时长和播放地址
Args:
name: 歌曲名称
proxy_url: 代理的播放url
proxy_url: 【在线歌曲】专用代理的播放url
origin_url: 未经过【网络歌曲代理】的连接
Returns:
tuple: (播放时长, 原始地址)
"""
source_url = await self.get_play_url(proxy_url)
# 默认使用 未经过【网络歌曲代理】的连接,如不存在说明 未启用【网络歌曲代理】,使用proxy_url
request_url = origin_url if origin_url else proxy_url
source_url = await self.get_play_url(request_url)
sec = await self._get_online_music_duration(name, source_url)
return sec, source_url