☰
3 步跑通 MusicBox:网易云音乐命令行播放器从安装到源码完整指南
2026/11/6 5:09:47 网站建设 项目流程

3 步跑通 MusicBox:网易云音乐命令行播放器从安装到源码完整指南

【免费下载链接】musicbox网易云音乐命令行版本项目地址: https://gitcode.com/gh_mirrors/mu/musicbox

MusicBox(项目名NetEase-MusicBox)是一个用 Python 编写的网易云音乐命令行播放器,让你直接在终端里搜索、播放和管理歌曲,而不必打开浏览器或桌面客户端。它用字符块渲染出菜单、进度条和歌词,支持多档音质、扫码登录、本地缓存,甚至能配合 AI Agent 通过命令控制播放。本文带你从装好依赖、扫码登录,到读懂核心代码和配置,一步步把它真正用起来。

🚀 安装依赖与系统环境

MusicBox 要求Python 3.10 及以上。真正发声的部分依赖外部解码器,按你需要的音质分两档装:

系统必装(MP3)可选(FLAC / Hi-Res)工具
macOSmpg123mpvbrew install mpg123 mpv uv
Ubuntu / Debianmpg123mpvsudo apt-get install mpg123 mpv
CentOS / Red Hatmpg123mpvsudo yum install -y mpg123 mpv

💡 低配设备(如树莓派)建议只装mpg123,跳过mpv,避免拉入一大串图形/视频依赖。

装好系统依赖后,推荐用uv或pipx把 MusicBox 装成全局命令:

uv tool install netease-musicbox # 或 pipx install NetEase-MusicBox

想参与开发的话,克隆仓库后在目录里执行uv tool install .(开发期可加-e实现源码改动即时生效),或干脆用uv run musicbox在本地直接跑。项目元数据与依赖都声明在 pyproject.toml 里。

🎬 首次运行与扫码登录

安装完成后,在终端敲musicbox即可进入 TUI 界面:

第一次进入登录相关功能时,终端会画出一个二维码。现在只支持扫码登录,不再支持账号密码。用网易云音乐手机 App 扫码并确认,Cookie 就会写入数据目录(默认~/.netease-musicbox/cookie.txt)。

几个容易踩的点:

  • 二维码靠字符块渲染,窗口建议 ≥ 25 行,并使用等宽字体。
  • 必须用手机 App 扫码确认,不支持直接打开 URL 完成登录。

⌨️ 界面操作与 Vim 风格快捷键

MusicBox 的交互逻辑在 menu.py,渲染层在 ui.py。它刻意沿用了 Vim 的操作习惯,上手后效率很高。几个高频键:

按键作用
j/k下移 / 上移
[/]上一曲 / 下一曲
Space播放 / 暂停
m回到主菜单
f当前列表模糊搜索
i当前歌曲信息
Shift + p切换播放模式
q退出

带数字修饰的快捷键(如num + j快速跳 n 首、num + Shift + g跳第 n 首)需要先输入数字再按被修饰的键。完整键位表见 README.md 的快捷键章节。

🧩 核心模块速览

整个播放器都在 NEMbox/ 目录下,各文件职责清晰,方便按需阅读:

模块文件职责
数据接口api.py封装网易云搜索、歌单、榜单、歌词、播放链接等全部请求
播放引擎player.py管理播放队列、模式,并在mpg123/mpv两种后端间切换
加密处理encrypt.pyEAPI 请求加密与解密,登录与接口调用的底层依赖
命令行cli.py面向脚本与 AI Agent 的无状态命令入口,支持--json输出
后台守护daemon.py常驻进程musicboxd,持有唯一播放状态,通过本地 socket 响应控制指令
界面渲染ui.py用 curses 画菜单、进度条、歌词和登录二维码
菜单逻辑menu.py处理按键事件、页面跳转与搜索
持久化storage.py把用户、收藏、歌曲元数据存进database.json
桌面歌词osdlyrics.py基于 Qt 在桌面悬浮窗显示滚动歌词

程序入口在main.py:带参数时走 CLI 分支,不带参数则拉起 TUI;而init.py 负责在导入时自动创建好配置、缓存与日志目录,保证首次运行就有齐全的文件结构。

⚙️ 配置与数据文件

路径规则集中在 const.py,并遵循 XDG 标准。常用文件如下:

文件默认位置用途
config.json~/.netease-musicbox/config.json主配置:音质、后端、快捷键、桌面歌词
cookie.txt数据目录下扫码登录后的凭证
database.json数据目录下本地收藏、播放历史等数据
musicbox.log数据目录下运行日志,排错时先查它
cached/缓存目录下本地缓存歌曲

主配置由 config.py 读写。最常改的两项:

  • music_quality:音质等级,可填数字或名称。

    值说明
    0/exhigh极高,最高 320kbps
    3/lossless无损 FLAC
    4/hires高清臻音 96kHz/24bit
    jymaster超清母带 192kHz/24bit
  • player_backend:默认mpg123只播 MP3;设为mpv则全程用mpv,否则仅 FLAC 自动切到mpv。

⚠️ 网易云歌曲接口目前只接受中国大陆访问。如果你在海外,需要自行设置代理并确认出口 IP 属于大陆地区后再运行。

🤖 进阶:CLI 与 AI Agent 控制

除了 TUI,MusicBox 还能被脚本和 AI Agent 直接驱动。数据类命令(搜索、歌单、榜单)无状态,可单独调用;播放控制类命令则依赖后台守护进程 daemon.py:

musicbox search 周杰伦 --type song --json musicbox play --id 1847408145 --json musicbox status --json

仓库里的 skills/musicbox/SKILL.md 给出了完整的命令速查与「搜歌→播放→读回状态」的操作配方,可以让 Cursor、Claude Code 等 Agent 安全地控制播放。注意 TUI 和守护进程互斥,二者共用同一把运行锁,不能同时启动。

🔧 常见问题排错

  • 某些歌曲总时长显示00:01:通常是版权问题,属正常现象。
  • 特定终端无法出声:先确认同一终端下mpg123能否正常播放,再换终端试musicbox,定位是解码器还是环境问题。
  • 查日志:tail -f ~/.local/share/netease-musicbox/musicbox.log实时跟踪运行状态。

想更新版本或了解改动细节,可参考 CHANGELOG.md;项目基于 MIT 协议开源。装好、扫码、敲下musicbox,音乐就响在终端里了。

【免费下载链接】musicbox网易云音乐命令行版本项目地址: https://gitcode.com/gh_mirrors/mu/musicbox

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询