66 lines
48 KiB
JavaScript
66 lines
48 KiB
JavaScript
![]() |
import{_ as s,c as a,a0 as t,o as l}from"./chunks/framework.p2VkXzrt.js";const c=JSON.parse('{"title":"XiaoMusic: 无限听歌,解放小爱音箱","description":"","frontmatter":{},"headers":[],"relativePath":"issues/index.md","filePath":"issues/index.md","lastUpdated":null}'),h={name:"issues/index.md"};function e(n,i,p,k,r,o){return l(),a("div",null,i[0]||(i[0]=[t(`<h1 id="xiaomusic-无限听歌-解放小爱音箱" tabindex="-1">XiaoMusic: 无限听歌,解放小爱音箱 <a class="header-anchor" href="#xiaomusic-无限听歌-解放小爱音箱" aria-label="Permalink to "XiaoMusic: 无限听歌,解放小爱音箱"" target="_self"></a></h1><p><a href="https://github.com/hanxi/xiaomusic" target="_self"><img src="https://img.shields.io/github/license/hanxi/xiaomusic" alt="GitHub License"></a><a href="https://hub.docker.com/r/hanxi/xiaomusic" target="_self"><img src="https://img.shields.io/docker/v/hanxi/xiaomusic?sort=semver&label=docker%20image" alt="Docker Image Version"></a><a href="https://hub.docker.com/r/hanxi/xiaomusic" target="_self"><img src="https://img.shields.io/docker/pulls/hanxi/xiaomusic" alt="Docker Pulls"></a><a href="https://pypi.org/project/xiaomusic/" target="_self"><img src="https://img.shields.io/pypi/v/xiaomusic" alt="PyPI - Version"></a><a href="https://pypi.org/project/xiaomusic/" target="_self"><img src="https://img.shields.io/pypi/dm/xiaomusic" alt="PyPI - Downloads"></a><a href="https://pypi.org/project/xiaomusic/" target="_self"><img src="https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2Fhanxi%2Fxiaomusic%2Fmain%2Fpyproject.toml" alt="Python Version from PEP 621 TOML"></a><a href="https://github.com/hanxi/xiaomusic/releases" target="_self"><img src="https://img.shields.io/github/v/release/hanxi/xiaomusic" alt="GitHub Release"></a><a href="https://visitorbadge.io/status?path=hanxi%2Fxiaomusic" target="_self"><img src="https://api.visitorbadge.io/api/daily?path=hanxi%2Fxiaomusic&label=daily%20visitor&countColor=%232ccce4&style=flat" alt="Visitors"></a><a href="https://visitorbadge.io/status?path=hanxi%2Fxiaomusic" target="_self"><img src="https://api.visitorbadge.io/api/visitors?path=hanxi%2Fxiaomusic&label=total%20visitor&countColor=%232ccce4&style=flat" alt="Visitors"></a></p><p>使用小爱音箱播放音乐,音乐使用 yt-dlp 下载。</p><p><a href="https://github.com/hanxi/xiaomusic" target="_self">https://github.com/hanxi/xiaomusic</a></p><div class="tip custom-block github-alert"><p class="custom-block-title">TIP</p><p>初次安装遇到问题请查阅 <a href="https://github.com/hanxi/xiaomusic/issues/99" target="_self">💬 FAQ问题集合</a> ,一般遇到的问题都已经有解决办法。</p></div><h2 id="👋-最简配置运行" tabindex="-1">👋 最简配置运行 <a class="header-anchor" href="#👋-最简配置运行" aria-label="Permalink to "👋 最简配置运行"" target="_self"></a></h2><p>已经支持在 web 页面配置其他参数,docker 启动命令如下:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> run</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -p</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 8090:8090</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -v</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /xiaomusic/music:/app/music</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -v</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /xiaomusic/conf:/app/conf</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> hanxi/xiaomusic</span></span></code></pre></div><p>🔥 国内:</p><div class="language-bash vp-adaptive-theme"><but
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> xiaomusic</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> image</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">hanxi/xiaomusic</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> container_name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">xiaomusic</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> restart</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">unless-stopped</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> ports</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">8090:8090</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> volumes</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/xiaomusic/music:/app/music</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/xiaomusic/conf:/app/conf</span></span></code></pre></div><p>🔥 国内:</p><div class="language-yaml vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">yaml</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">services</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> xiaomusic</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> image</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">m.daocloud.io/docker.io/hanxi/xiaomusic</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> container_name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">xiaomusic</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> restart</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">unless-stopped</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> ports</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">8090:8090</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> volumes</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/xiaomusic/music:/app/music</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/xiaomusic/conf:/app/conf</span></span></code></pre></div><p>其中 conf 目录为配置文件存放目录,music 目录为音乐存放目录,建议分开配置为不同的目录。</p><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p>上面配置的 /xiaomusic/music 和 /xiaomusic/conf 是 docker 主机里的 /xiaomusic 目录下的,可以修改为其他目录。如果报错找不到 /xiaomusic/music 目录,可以先执行 <code>mkdir -p /xiaomusic/{music,conf}</code> 命令新建目录。</p></div><p>docker 和 docker compose 二选一即可,启动成功后,在 web 页面可以配置其他参数,带有 <code>*</code> 号的配置是必须要配置的,其他的用不上时不用修改。初次配置时需要在页面上输入小米账号和密码保存后才能获取到设备列表。</p><div class="tip custom-block github-alert"><p class="custom-block-title">TIP</p><p>目前安装步骤已经是最简化了,如果还是嫌安装麻烦,可以微信或者 QQ 约我远程安装,我一般周末和晚上才有时间,收个辛苦费 💰 50 元一次,安装失败不收费。</p></div><h3 id="🔥-修改默认8090端口映射" tabindex="-1">🔥 修改默认8090端口映射 <a class="header-anchor" href="#🔥-修改默认8090端口映射" aria-label="Permalink to "🔥 修改默认8090端口映射"" target="_self"></a></h3><h4 id="方法1-不修改监听端口-8090" tabindex="-1">方法1: 不修改监听端口 8090 <a class="header-anchor" href="#方法1-不修改监听端口-8090" aria-label="Permalink to "方法1: 不修改监听端口 8090"" target="_self"></a></h4><p>【监听端口】保持为默认的 8090 不变,把【外网访问端口】改为 5678 。</p><div class="language-yaml vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">yaml</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">services</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> xiaomusic</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> image</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">hanxi/xiaomusic</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> container_name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">xiaomusic</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> restart</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">unless-stopped</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> ports</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">5678:8090</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> volumes</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/xiaomusic/music:/app/music</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/xiaomusic/conf:/app/conf</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> environment</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> XIAOMUSIC_PUBLIC_PORT</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">5678</span></span></code></pre></div><p>XIAOMUSIC_PUBLIC_PORT 对应后台设置里的【外网访问端口】,修改后可以不用重启。</p><h4 id="方法2-修改监听端口-8090-为-5678" tabindex="-1">方法2: 修改监听端口 8090 为 5678 <a class="header-anchor" href="#方法2-修改监听端口-8090-为-5678" aria-label="Permalink to "方法2: 修改监听端口 8090 为 5678"" target="_self"></a></h4><p>如果需要修改 8090 端口为其他端口,比如 5678,需要这样配,3个数字都需要是 5678 。见 <a href="https://github.com/hanxi/xiaomusic/issues/19" target="_self">https://github.com/hanxi/xiaomusic/issues/19</a></p><div class="language-yaml vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">yaml</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">services</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> xiaomusic</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> image</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">hanxi/xiaomusic</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> container_name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">xiaomusic</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> restart</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">unless-stopped</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> ports</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">5678:5678</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> volumes</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/xiaomusic/music:/app/music</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/xiaomusic/conf:/app/conf</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> environment</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> XIAOMUSIC_PORT</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">5678</span></span></code></pre></div><p>如果不是首次修改端口,还需要修改 /xiaomusic/conf/setting.json 文件里的端口(也可以在后台修改监听端口后重启)。</p><p>遇到问题可以去 web 设置页面底部点击【下载日志文件】按钮,然后搜索一下日志文件内容确保里面没有账号密码信息后(有就删除这些敏感信息),然后在提 issues 反馈问题时把下载的日志文件带上。</p><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p>XIAOMUSIC_PORT 也可以在后台配置,对应的是监听端口,修改后记得重启。</p></div><h3 id="🤐-支持语音口令" tabindex="-1">🤐 支持语音口令 <a class="header-anchor" href="#🤐-支持语音口令" aria-label="Permalink to "🤐 支持语音口令"" target="_self"></a></h3><ul><li>【播放歌曲】,播放本地的歌曲</li><li>【播放歌曲+歌名】,比如:播放歌曲周杰伦晴天</li><li>【上一首】</li><li>【下一首】</li><li>【单曲循环】</li><li>【全部循环】</li><li>【随机播放】</li><li>【关机】,【停止播放】,两个效果是一样的。</li><li>【刷新列表】,当复制了歌曲进 music 目录后,可以用这个口令刷新歌单。</li><li>【播放列表+列表名】,比如:播放列表其他。</li><li>【加入收藏】,把当前播放的歌曲加入收藏歌单。</li><li>【取消收藏】,把当前播放的歌曲从收藏歌单里移除。</li><li>【播放列表收藏】,这个用于播放收藏歌单。</li><li>【播放本地歌曲+歌名】,这个口令和播放歌曲的区别是本地找不到也不会去下载。</li><li>【播放列表第几个+列表名】,具体见: <a href="https://github.com/hanxi/xiaomusic/issues/158" target="_self">https://github.com/hanxi/xiaomusic/issues/158</a></li><li>【搜索播放+关键词】,会搜索关键词作为临时搜索列表播放,比如说【搜索播放林俊杰】,会播放所有林俊杰的歌。</li><li>【本地搜索播放+关键词】,跟搜索播放的区别是本地找不到也不会去下载。</li></ul><div class="tip custom-block github-alert"><p class="custom-block-title">TIP</p><p>隐藏玩法: 对小爱同学说播放歌曲小猪佩奇的故事,会先下载小猪佩奇的故事,然后再播放小猪佩奇的故事。</p></div><h2 id="🛠️-pip-方式安装运行" tabindex="-1">🛠️ pip 方式安装运行 <a class="header-anchor" href="#🛠️-pip-方式安装运行" aria-label="Permalink to "🛠️ pip 方式安装运行"" target="_self"></a></h2><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> pip install -U xiaomusic</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> xiaomusic --help</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> __</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> __</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> _</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> __</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> __</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> _</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> \\</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> \\/</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (_) __ _ ___ </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> \\/</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> _</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> _</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ___</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (_) ___</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> \\</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> /</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> _\` </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> /</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> _ </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\\ </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">\\/</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> /</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> __</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> /</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> __</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> /</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> \\ </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">_</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">_</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">_</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> \\__</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> \\ </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">__</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> /_/\\_\\</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">_</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> \\__,_</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> \\___/</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">_</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">_</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> \\__,_</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">___/</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">_</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> \\___</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> XiaoMusic</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> v0.3.37 by: github.com/hanxi</span></span>
|
|||
|
<span class="line"></span>
|
|||
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">usage:</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> xiaomusic [-h] [--port PORT] [--hardware HARDWARE] [--account ACCOUNT]</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> [--password PASSWORD] [--cookie COOKIE] [--verbose]</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> [--config CONFIG] [--ffmpeg_location FFMPEG_LOCATION]</span></span>
|
|||
|
<span class="line"></span>
|
|||
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">options:</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> -h,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --help</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> show this help message and exit</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> --port</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> PORT 监听端口</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> --hardware</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> HARDWARE 小爱音箱型号</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> --account</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ACCOUNT xiaomi account</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> --password</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> PASSWORD xiaomi password</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> --cookie</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> COOKIE xiaomi cookie</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> --verbose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> show info</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> --config</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> CONFIG config file path</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> --ffmpeg_location</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> FFMPEG_LOCATION</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> ffmpeg</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> bin path</span></span>
|
|||
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> xiaomusic --config config.json</span></span></code></pre></div><p>其中 <code>config.json</code> 文件可以参考 <code>config-example.json</code> 文件配置。见 <a href="https://github.com/hanxi/xiaomusic/issues/94" target="_self">https://github.com/hanxi/xiaomusic/issues/94</a></p><p>不修改默认端口 8090 的情况下,只需要执行 <code>xiaomusic</code> 即可启动。</p><h2 id="🔩-开发环境运行" tabindex="-1">🔩 开发环境运行 <a class="header-anchor" href="#🔩-开发环境运行" aria-label="Permalink to "🔩 开发环境运行"" target="_self"></a></h2><ul><li>使用 install_dependencies.sh 下载依赖</li><li>使用 pdm 安装环境</li><li>默认监听了端口 8090 , 使用其他端口自行修改。</li></ul><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">pdm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> run</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> xiaomusic.py</span></span></code></pre></div><p>如果是开发前端界面,可以通过 <a href="http://localhost:8090/docs" target="_self">http://localhost:8090/docs</a> 查看有什么接口。目前的 web 控制台非常简陋,欢迎有兴趣的朋友帮忙实现一个漂亮的前端,需要什么接口可以随时提需求。</p><h3 id="🚦-代码提交规范" tabindex="-1">🚦 代码提交规范 <a class="header-anchor" href="#🚦-代码提交规范" aria-label="Permalink to "🚦 代码提交规范"" target="_self"></a></h3><p>提交前请执行</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>pdm lintfmt</span></span></code></pre></div><p>用于检查代码和格式化代码。</p><h3 id="本地编译-docker-image" tabindex="-1">本地编译 Docker Image <a class="header-anchor" href="#本地编译-docker-image" aria-label="Permalink to "本地编译 Docker Image"" target="_self"></a></h3><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -t</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> xiaomusic</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .</span></span></code></pre></div><h3 id="技术栈" tabindex="-1">技术栈 <a class="header-anchor" href="#技术栈" aria-label="Permalink to "技术栈"" target="_self"></a></h3><ul><li>后端代码使用 Python 语言编写。</li><li>HTTP 服务使用的是 FastAPI 框架,<s>早期版本使用的是 Flask</s>。</li><li>使用了 Docker ,在 NAS 上安装更方便。</li><li>默认的前端主题使用了 jQuery 。</li></ul><h2 id="已测试支持的设备" tabindex="-1">已测试支持的设备 <a class="header-anchor" href="#已测试支持的设备" aria-label="Permalink to "已测试支持的设备"" target="_self"></a></h2><table tabindex="0"><thead><tr><th>型号</th><th>名称</th></tr></thead><tbody><tr><td>L06A</td><td><a href="https://home.mi.com/baike/index.html#/detail?model=xiaomi.wifispeaker.l06a" target="_self">小爱音箱</a></td></tr><tr><td>L07A</td><td><a href="https://home.mi.com/webapp/content/baike/product/index.html?model=xiaomi.wifispeaker.l7a" target="_self">Redmi小爱音箱
|