diff --git a/xiaomusic/config.py b/xiaomusic/config.py
index bcda511..b92fe3f 100644
--- a/xiaomusic/config.py
+++ b/xiaomusic/config.py
@@ -56,7 +56,8 @@ class Config:
music_path: str = os.getenv("XIAOMUSIC_MUSIC_PATH", "music")
conf_path: str = os.getenv("XIAOMUSIC_CONF_PATH", None)
hostname: str = os.getenv("XIAOMUSIC_HOSTNAME", "192.168.2.5")
- port: int = int(os.getenv("XIAOMUSIC_PORT", "8090"))
+ port: int = int(os.getenv("XIAOMUSIC_PORT", "8090")) # 监听端口
+ public_port: int = int(os.getenv("XIAOMUSIC_PUBLIC_PORT", 0)) # 歌曲访问端口
proxy: str | None = os.getenv("XIAOMUSIC_PROXY", None)
search_prefix: str = os.getenv(
"XIAOMUSIC_SEARCH", "bilisearch:"
diff --git a/xiaomusic/static/setting.html b/xiaomusic/static/setting.html
index e07676a..1987603 100644
--- a/xiaomusic/static/setting.html
+++ b/xiaomusic/static/setting.html
@@ -96,6 +96,9 @@
+
+
+
diff --git a/xiaomusic/xiaomusic.py b/xiaomusic/xiaomusic.py
index 5402ef7..63da384 100644
--- a/xiaomusic/xiaomusic.py
+++ b/xiaomusic/xiaomusic.py
@@ -105,6 +105,10 @@ class XiaoMusic:
self.hostname = self.config.hostname
self.port = self.config.port
+ self.public_port = self.config.public_port
+ if self.public_port == 0:
+ self.public_port = self.port
+
self.proxy = self.config.proxy
self.search_prefix = self.config.search_prefix
self.ffmpeg_location = self.config.ffmpeg_location
@@ -456,7 +460,7 @@ class XiaoMusic:
"get_music_url local music. name:%s, filename:%s", name, filename
)
encoded_name = urllib.parse.quote(filename)
- return f"http://{self.hostname}:{self.port}/{encoded_name}"
+ return f"http://{self.hostname}:{self.public_port}/{encoded_name}"
# 递归获取目录下所有歌曲,生成随机播放列表
def _gen_all_music_list(self):