Skip to main content

Play Music with xiaomi AI speaker

Project description

xiaomusic

使用小爱/红米音箱播放音乐,音乐使用 yt-dlp 下载。

运行

  • 使用 install_dependencies.sh 下载依赖
  • 使用 pdm 安装环境
  • 参考 xiaogpt 设置好环境变量
export MI_USER="xxxxx"
export MI_PASS="xxxx"
export MI_DID=00000
export XIAOMUSIC_SEARCH='bilisearch:'

然后启动即可。默认监听了端口 8090 , 使用其他端口自行修改。

pdm run xiaomusic.py

支持口令

  • 播放歌曲
  • 播放歌曲+歌名 比如:播放歌曲周杰伦晴天
  • 下一首
  • 单曲循环
  • 全部循环

隐藏玩法: 对小爱同学说播放歌曲小猪佩奇的故事,会播放小猪佩奇的故事。

已测试设备

"L07A": ("5-1", "5-5"),  # Redmi小爱音箱Play(l7a)

支持音乐格式

  • mp3
  • flac

本地音乐会搜索 mp3 和 flac 格式的文件,下载的歌曲是 mp3 格式的。

在 Docker 里使用

docker run -e MI_USER=<your-xiaomi-account> -e MI_PASS=<your-xiaomi-password> -e MI_DID=<your-xiaomi-speaker-mid> -e MI_HARDWARE='L07A' -e XIAOMUSIC_PROXY=<proxy-for-yt-dlp> -e XIAOMUSIC_HOSTNAME=192.168.2.5 -e XIAOMUSIC_SEARCH='bilisearch:' -p 8090:8090 -v ./music:/app/music hanxi/xiaomusic
  • XIAOMUSIC_SEARCH 可以配置为 'bilisearch:' 表示歌曲从哔哩哔哩下载;
    • 配置为 'ytsearch:' 表示歌曲从 youtube 下载。
  • XIAOMUSIC_PROXY 用于配置代理,默认为空;
    • 当 XIAOMUSIC_SEARCH 配置为 'ytsearch:' 时在国内需要用到。
  • MI_HARDWARE 是小米音箱的型号,默认为'L07A'
  • 注意端口必须映射为与容器内一致, XIAOMUSIC_HOSTNAME 需要设置为宿主机的 IP 地址,否则小爱无法正常播放。
  • 可以把 /app/music 目录映射到本地,用于保存下载的歌曲。

XIAOMUSIC_PROXY 参数格式参考 yt-dlp 文档说明:

Use the specified HTTP/HTTPS/SOCKS proxy. To
enable SOCKS proxy, specify a proper scheme,
e.g. socks5://user:pass@127.0.0.1:1080/.
Pass in an empty string (--proxy "") for
direct connection

https://github.com/hanxi/xiaomusic/issues/2https://github.com/hanxi/xiaomusic/issues/11

本地编译Docker Image

docker build -t xiaomusic .

docker compose 示例

使用哔哩哔哩下载歌曲:

version: '3'

services:
  xiaomusic:
    image: hanxi/xiaomusic
    container_name: xiaomusic
    restart: unless-stopped
    ports:
      - 8090:8090
    volumes:
      - ./music:/app/music
    environment:
      MI_USER: '小米账号'
      MI_PASS: '小米密码'
      MI_DID: 00000
      MI_HARDWARE: 'L07A'
      XIAOMUSIC_SEARCH: 'bilisearch:'
      XIAOMUSIC_HOSTNAME: '192.168.2.5'

使用 youtobe 下载歌曲:

version: '3'

services:
  xiaomusic:
    image: hanxi/xiaomusic
    container_name: xiaomusic
    restart: unless-stopped
    ports:
      - 8090:8090
    volumes:
      - ./music:/app/music
    environment:
      MI_USER: '小米账号'
      MI_PASS: '小米密码'
      MI_DID: 00000
      MI_HARDWARE: 'L07A'
      XIAOMUSIC_SEARCH: 'ytsearch:'
      XIAOMUSIC_PROXY: 'http://192.168.2.5:8080'
      XIAOMUSIC_HOSTNAME: '192.168.2.5'

简易的控制面板

浏览器进入 http://192.168.2.5:8090

  • ip 是 XIAOMUSIC_HOSTNAME 设置的
  • 8090 是默认端口

感谢

Star History

Star History Chart

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xiaomusic-0.1.20.tar.gz (46.1 kB view details)

Uploaded Source

Built Distribution

xiaomusic-0.1.20-py3-none-any.whl (46.2 kB view details)

Uploaded Python 3

File details

Details for the file xiaomusic-0.1.20.tar.gz.

File metadata

  • Download URL: xiaomusic-0.1.20.tar.gz
  • Upload date:
  • Size: 46.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for xiaomusic-0.1.20.tar.gz
Algorithm Hash digest
SHA256 5460a7e4610f400efbbc64774d24e4c34d8ef802af8a5e1f1b5a28ba91f27102
MD5 fe0366a3a49c89e4def7173040fc3ac3
BLAKE2b-256 4199b51e1ac84f3bc1fb4754e31e696cc4379e438c1d2676866840c092d6d383

See more details on using hashes here.

File details

Details for the file xiaomusic-0.1.20-py3-none-any.whl.

File metadata

  • Download URL: xiaomusic-0.1.20-py3-none-any.whl
  • Upload date:
  • Size: 46.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for xiaomusic-0.1.20-py3-none-any.whl
Algorithm Hash digest
SHA256 adcde149109a5555c55b232eb38ded88208263b0b85d671d230328ef42cc97b3
MD5 550c20e8453f82ff3e1fe20bf4c5b84c
BLAKE2b-256 d94b8bdce354a2a39064bb6cd1db7adab82c0465d00b4cd2c9933b6b1add6be8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page