diff --git a/README.md b/README.md index 4d64060..b43e74c 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ pdm run xiaomusic.py docker run -e MI_USER= -e MI_PASS= -e MI_DID= -e MI_HARDWARE='L07A' -e XIAOMUSIC_PROXY= -e XIAOMUSIC_HOSTNAME=192.168.2.5 -p 8090:8090 -v ./music:/app/music hanxi/xiaomusic ``` -- XIAOMUSIC_PROXY 用于配置代理,yt-dlp 工具下载歌曲会用到。 +- XIAOMUSIC_PROXY 用于配置代理,默认为空,yt-dlp 工具下载歌曲会用到。 - MI_HARDWARE 是小米音箱的型号,默认为'L07A' - 注意端口必须映射为与容器内一致,XIAOMUSIC_HOSTNAME 需要设置为宿主机的 IP 地址,否则小爱无法正常播放。 - 可以把 /app/music 目录映射到本地,用于保存下载的歌曲。 diff --git a/xiaomusic/config.py b/xiaomusic/config.py index 1985a5b..dc29e6e 100644 --- a/xiaomusic/config.py +++ b/xiaomusic/config.py @@ -56,7 +56,7 @@ class Config: music_path: str = os.getenv("XIAOMUSIC_MUSIC_PATH", "music") hostname: str = os.getenv("XIAOMUSIC_HOSTNAME", "192.168.2.5") port: int = int(os.getenv("XIAOMUSIC_PORT", "8090")) - proxy: str = os.getenv("XIAOMUSIC_PROXY", "http://192.168.2.5:8080") + proxy: str = os.getenv("XIAOMUSIC_PROXY", None) def __post_init__(self) -> None: if self.proxy: diff --git a/xiaomusic/xiaomusic.py b/xiaomusic/xiaomusic.py index 867abd4..2b098d9 100644 --- a/xiaomusic/xiaomusic.py +++ b/xiaomusic/xiaomusic.py @@ -296,13 +296,17 @@ class XiaoMusic: if self.download_proc: self.download_proc.kill() - self.download_proc = await asyncio.create_subprocess_exec( + sbp_args = ( "yt-dlp", f"ytsearch:{name}", "-x", "--audio-format", "mp3", "--paths", self.music_path, "-o", f"{name}.mp3", - "--proxy", f"{self.proxy}", "--ffmpeg-location", "./ffmpeg/bin") + + if self.proxy: + sbp_args += ("--proxy", f"{self.proxy}") + + self.download_proc = await asyncio.create_subprocess_exec(*sbp_args) await self.do_tts(f"正在下载歌曲{name}") def get_filename(self, name):