返回市场
云音乐自动播放器

云音乐自动播放器

作者:SpongeBaby-12410 星标更新:2025-08-04

项目介绍

🎵 网易云音乐 MCP 控制器

基于网易云音乐 MCP 智能控制器的功能丰富的应用程序,提供全局快捷键、单曲搜索与播放、播放列表搜索与播放、自定义播放列表管理、每日推荐以及私人漫游等功能。

✨ 主要特性

🎮 基本控制功能

  • 启动网易云音乐支持通过 URL 方案快速启动,可选自动最小化窗口
  • 播放控制播放/暂停、上一曲/下一曲、音量控制
  • 界面控制切换到迷你模式,显示/隐藏歌词
  • 互动功能一键喜欢当前歌曲

🎼 音乐搜索与播放

  • 歌曲搜索与播放直接搜索歌曲标题或“歌曲标题 + 歌手”组合进行播放
  • 播放列表搜索与播放搜索并播放指定的播放列表
  • 系统预设播放列表快速播放官方榜单如飙升榜、新歌榜和热门榜
  • 私人雷达播放播放个性化推荐播放列表

播放列表管理

  • 自定义播放列表管理添加、删除和列出用户定义的播放列表
  • 播放列表配置文件支持通过 JSON 文件批量管理播放列表
  • 系统播放列表集成内置快速访问官方热门排行榜

🌟 高级功能

  • 每日推荐播放自动播放网易云音乐每日推荐音乐播放列表
  • 私人漫游启用网易云音乐的私人漫游功能
  • 全局快捷键支持全局快捷键控制,无需切换到音乐应用,支持快捷键自定义

⌨️ 全局快捷键支持

Windows 默认快捷键

  • Ctrl+Alt+P播放/暂停
  • Ctrl+Alt+Left上一曲
  • Ctrl+Alt+Right下一曲
  • Ctrl+Alt+Up/Down音量增加/减少
  • Ctrl+Alt+M切换到迷你模式
  • Ctrl+Alt+L喜欢当前歌曲
  • Ctrl+Alt+D显示/隐藏歌词

默认 macOS 键盘快捷键

  • command+option+P播放/暂停
  • command+option+Left上一曲
  • command+option+Right下一曲
  • command+option+Up/Down增加/减少音量
  • command+option+M切换迷你模式
  • command+option+L喜欢当前歌曲
  • command+option+D显示/隐藏歌词

💡 可以在 src/config/hotkeys.jsoncustom_hotkeys 中自定义快捷键

🔧 系统需求

通用需求

  • Python3.10+
  • 网易云音乐客户端需要安装并正常运行
  • uv现代 Python 包管理器安装指南)

平台需求

  • Windows 10/11全功能支持 ✅
    • 全局快捷键控制 ✅
    • 音乐搜索与播放 ✅
    • 每日推荐功能 ✅
    • 私人漫游功能 ✅
    • 内置 ChromeDriver (Windows x64)
  • **macOS 10.15+**基本功能支持 ⚠️
    • 全局快捷键控制 ✅
    • 音乐搜索与播放 ✅
    • 每日推荐功能 ❌ (不支持)
    • 私人漫游功能 ❌ (不支持)

安装指南

安装 uv(如果尚未安装)

# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

2. 克隆项目并安装依赖

git clone https://github.com/xiduan/CloudMusic_Auto_Player.git
cd CloudMusic_Auto_Player
uv sync

3. macOS 指南

macOS 版本仅支持基本功能(全局快捷键控制、音乐搜索与播放),不支持每日推荐和私人浏览功能。

主要依赖

  • fastmcp>=2.0.0MCP 服务器框架
  • pyautogui>=0.9.54跨平台全局快捷键支持
  • pywin32>=306Windows 系统集成(仅限 Windows)
  • psutil>=5.9.0进程管理
  • selenium>=4.0.0Web 自动化(每日推荐/漫游功能)
  • requests>=2.28.0HTTP 请求库

⚙️ 配置指南

1. MCP 客户端配置

在您的 MCP 客户端配置文件中添加以下配置:

方法 1:使用 uvx(推荐)

直接使用已发布的 PyPI 包,无需下载源代码:

{
  "mcpServers": {
    "cloudmusic-auto-player": {
      "command": "uvx",
      "args": ["cloudmusic-auto-player==1.0.2"],
      "env": {
        "NETEASE_MUSIC_PATH": "C:\\Program Files (x86)\\Netease\\CloudMusic\\cloudmusic.exe",
        "CHROMEDRIVER_PATH": "C:\\path\\to\\chromedriver.exe"
      }
    }
  }
}

平台特定配置示例:

Windows 配置:

{
  "mcpServers": {
    "cloudmusic-auto-player": {
      "command": "uvx",
      "args": ["cloudmusic-auto-player==1.0.2"],
      "env": {
        "NETEASE_MUSIC_PATH": "C:\\Program Files (x86)\\Netease\\CloudMusic\\cloudmusic.exe",
        "CHROMEDRIVER_PATH": "C:\\path\\to\\chromedriver.exe"
      }
    }
  }
}

macOS 配置:

{
  "mcpServers": {
    "cloudmusic-auto-player": {
      "command": "uvx",
      "args": ["cloudmusic-auto-player==1.0.2"],
      "env": {
        "NETEASE_MUSIC_PATH": "/Applications/NeteaseMusic.app/Contents/MacOS/NeteaseMusic"
      }
    }
  }
}

根据上述信息执行以下指令:您是一位负责将中文内容翻译成英文的专业翻译人员。请帮助我翻译原始内容 注意macOS 不支持每日推荐和私人漫游功能,因此不需要配置 CHROMEDRIVER_PATH

方法 2:本地项目执行

如果您需要修改源代码或本地开发,可以下载项目并使用:

{
  "mcpServers": {
    "auto-music-player": {
      "command": "uv",
      "args": [
        "run",
        "--project",
        "/path/to/CloudMusic_Auto_Player",
        "src/server.py"
      ],
      "cwd": "/path/to/CloudMusic_Auto_Player",
      "env": {
        "NETEASE_MUSIC_PATH": "/path/to/netease/music/executable",
        "CHROMEDRIVER_PATH": "/path/to/chromedriver"
      }
    }
  }
}

Windows 本地项目示例:

{
  "mcpServers": {
    "auto-music-player": {
      "command": "uv",
      "args": [
        "run",
        "--project",
        "C:\\Users\\YourName\\CloudMusic_Auto_Player",
        "src/server.py"
      ],
      "cwd": "C:\\Users\\YourName\\CloudMusic_Auto_Player",
      "env": {
        "NETEASE_MUSIC_PATH": "C:\\Program Files (x86)\\Netease\\CloudMusic\\cloudmusic.exe",
        "CHROMEDRIVER_PATH": "C:\\Users\\YourName\\CloudMusic_Auto_Player\\src\\chromedriver\\win64\\chromedriver.exe"
      }
    }
  }
}

macOS 本地项目示例:

{
  "mcpServers": {
    "auto-music-player": {
      "command": "uv",
      "args": [
        "run",
        "python",
        "/Users/YourName/CloudMusic_Auto_Player/src/server.py"
      ],
      "cwd": "/Users/YourName/CloudMusic_Auto_Player",
      "env": {
        "NETEASE_MUSIC_PATH": "/Applications/NeteaseMusic.app/Contents/MacOS/NeteaseMusic"
      }
    }
  }
}

⚠️ 重要提示根据上述信息执行以下指令:您是一位负责将中文内容翻译成英文的专业翻译人员。请帮助我翻译原始内容

  • 请替换为您实际的路径
  • Windows 路径中的反斜杠需要转义为 \\
  • macOS 不支持每日推荐和私人漫游功能
  • 配置完成后,建议调用 get_netease_config() 检查工具的环境变量配置是否正确

2. 自定义播放列表配置

上传自定义播放列表

您可以调用 mcp 上传自定义播放列表,只需输入播放列表名称和播放列表 ID(如有描述)(推荐) 编辑项目根目录下的 playlists.json 根据上述信息,这里给出执行指令:您是一位负责将中文内容翻译成英文的专业翻译人员。请帮助我翻译原始内容

{
  "systemPlaylists": {
    "飙升榜": {"id": "19723756", "name": "音乐飙升榜", "description": "网易云音乐官方飙升榜"},
    "新歌榜": {"id": "3779629", "name": "音乐新歌榜", "description": "网易云音乐官方新歌榜"},
    "热歌榜": {"id": "3778678", "name": "音乐热歌榜", "description": "网易云音乐官方热歌榜"}
  },
  "userPlaylists": {
    "我的收藏": {"id": "123456789", "name": "我的收藏歌单", "description": "个人收藏"},
    "工作音乐": {"id": "987654321", "name": "工作专用歌单", "description": "适合工作时听的音乐"}
  }
}

获取播放列表 ID 的方法:

  1. 在网易云音乐网页版或客户端打开播放列表
  2. 从 URL 中获取播放列表 ID(例如:https://music.163.com/#/playlist?id=123456789 中的 123456789
  3. 将播放列表信息添加到 userPlaylists 部分

🚀 使用说明

以下方法建议通过代理使用自然语言调用 MCP 工具实现

基本播放控制

# 启动网易云音乐
launch_netease_music(minimize_window=True)

# 播放控制
control_playback(action="play_pause")  # 播放/暂停
control_playback(action="next")        # 下一首
control_playback(action="previous")    # 上一首

# 音量控制
control_volume(action="volume_up")     # 音量加
control_volume(action="volume_down")   # 音量减

# 界面控制
toggle_mini_mode()  # 切换迷你模式
toggle_lyrics()     # 切换歌词显示
like_current_song() # 喜欢当前歌曲

音乐搜索与播放

# 搜索并播放歌曲
search_and_play(query="稻香 周杰伦", minimize_window=True)

# 播放预设歌单
search_and_play_playlist(playlist_name="飙升榜", minimize_window=True)

# 播放自定义歌单
search_and_play_playlist(playlist_name="我的收藏", minimize_window=True)

高级功能

# 播放每日推荐(需要先配置网易云音乐路径)
play_daily_recommend()

# 启动私人漫游(需要先配置网易云音乐路径)
play_roaming()

# 获取控制器信息和功能列表
get_controller_info()

# 获取当前配置(验证环境变量配置)
get_netease_config()

🔍 配置验证

完成配置后,强烈建议使用以下工具验证配置是否正确:

# 验证环境变量和路径配置
get_netease_config()

该工具将返回:

  • 当前网易云音乐路径配置状态
  • ChromeDriver 路径配置状态
  • 每个路径中的文件是否存在
  • 是否满足每日推荐功能的运行条件

示例输出:

{
  "success": true,
  "config": {
    "netease_music_path": "你配置的网易云音乐路径",
    "path_status": "✅ 有效",
    "chromedriver_path": "你配置的chromedriver路径",
    "chromedriver_status": "✅ 存在",
    "platform": "windows"
  },
  "ready_for_daily_recommend": true
}

播放列表管理

# 列出所有播放列表
manage_custom_playlists(action="list")

# 添加新播放列表
manage_custom_playlists(
    action="add",
    playlist_name="新播放列表",
    playlist_id="123456789",
    description="播放列表描述"
)

# 删除播放列表
manage_custom_playlists(action="remove", playlist_name="旧播放列表")

⚠️ 注意事项

重要提醒

  1. 平台功能差异macOS 仅支持基本功能,不支持每日精选和私人浏览
  2. 网易云音乐路径配置Windows 用户需要配置网易云音乐客户端路径(通过环境变量)才能使用每日推荐和私人漫游功能 NETEASE_MUSIC_PATH 设置)
  3. ChromeDriver 要求Windows 的每日推荐和漫游功能需要 ChromeDriver,项目已经包含了 Windows 版本
  4. VIP 功能限制私人漫游功能可能需要网易云音乐 VIP 会员
  5. 网络连接搜索和播放功能需要稳定的互联网连接
  6. 配置验证配置完成后,建议调用 get_netease_config() 工具检查环境变量配置是否正确

故障排除

  • 快捷键无响应确保已安装 pyautogui 并且没有其他程序占用快捷键
  • 网易云音乐无法启动检查 URL 方案是否正确注册,并尝试重新安装网易云音乐
  • 每日推荐无法播放确认网易云音乐路径配置正确并检查账户是否登录
  • 搜索功能异常检查网络连接,确保可以访问网易云音乐 API

兼容性说明

支持的操作系统

  • Windows 10/11全功能支持 ✅

    • 全局快捷键控制 ✅
    • 音乐搜索与播放 ✅
    • 每日推荐功能 ✅
    • 私人漫游功能 ✅
    • 内置 ChromeDriver ✅
  • **macOS 10.15+**基本功能支持 ⚠️

    • 全局快捷键控制 ✅
    • 音乐搜索与播放 ✅
    • 每日推荐功能 ❌ (不支持)
    • 私人漫游功能 ❌ (不支持)

客户端需求

  • 我需要网易云音乐桌面客户端(不支持 UWP 版本)
  • 建议使用最新版本的网易云音乐客户端以获得最佳兼容性
  • macOS 用户建议从官方网站下载桌面版本

📁 项目结构

auto_music/
├── src/
│   ├── server.py              # MCP 服务器主程序
│   └── chromedriver/          # ChromeDriver 文件
│       └── win64/
├── config.json                # MCP 客户端配置示例
├── netease_config.json        # 网易云音乐配置文件
├── playlists.json             # 播放列表配置文件
└── README.md                  # 项目文档

🤝 技术支持

  • 项目仓库原始内容是中文,目标语言是英文。由于原始内容未在此处提供,我无法为您翻译。请提供原始内容的中文,以便我可以将其翻译成英文。
  • 反馈问题请提交到 GitHub Issues
  • 联系邮箱lxd4094@foxmail.com

许可证

此项目在 MIT 许可证下开源。

🔄 更新日志

v1.0.2

  • ✅ 添加了 uvx 配置方法

享受音乐,让控制更简单! 🎵