{"id":13442365,"url":"https://github.com/darknessomi/musicbox","last_synced_at":"2025-04-23T20:58:25.139Z","repository":{"id":19387864,"uuid":"22628919","full_name":"darknessomi/musicbox","owner":"darknessomi","description":"网易云音乐命令行版本","archived":false,"fork":false,"pushed_at":"2022-06-28T07:42:25.000Z","size":1858,"stargazers_count":9834,"open_issues_count":236,"forks_count":1576,"subscribers_count":282,"default_branch":"master","last_synced_at":"2025-04-23T20:58:17.281Z","etag":null,"topics":["linux","music","netease-musicbox","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/darknessomi.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-08-05T03:28:24.000Z","updated_at":"2025-04-23T04:50:59.000Z","dependencies_parsed_at":"2022-07-14T07:20:36.948Z","dependency_job_id":null,"html_url":"https://github.com/darknessomi/musicbox","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darknessomi%2Fmusicbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darknessomi%2Fmusicbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darknessomi%2Fmusicbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darknessomi%2Fmusicbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darknessomi","download_url":"https://codeload.github.com/darknessomi/musicbox/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250514767,"owners_count":21443208,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["linux","music","netease-musicbox","python"],"created_at":"2024-07-31T03:01:44.868Z","updated_at":"2025-04-23T20:58:25.121Z","avatar_url":"https://github.com/darknessomi.png","language":"Python","funding_links":[],"categories":["Tutorial","Python","好玩项目","Python (1887)","tools"],"sub_categories":["Windows Manager","沙雕项目"],"readme":"# NetEase-MusicBox\n\n**感谢为 MusicBox 的开发付出过努力的[每一个人](https://github.com/darknessomi/musicbox/graphs/contributors)！**\n\n高品质网易云音乐命令行版本，简洁优雅，丝般顺滑，基于 Python 编写。\n\n[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg)](LICENSE)\n[![versions](https://img.shields.io/pypi/v/NetEase-MusicBox.svg)](https://pypi.org/project/NetEase-MusicBox/)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/NetEase-MusicBox.svg)](https://pypi.org/project/NetEase-MusicBox/)\n\n## Demo\n\n[![NetEase-MusicBox-GIF](https://qfile.aobeef.cn/3abba3b8a3994ee3d5cd.gif)](https://pypi.org/project/NetEase-MusicBox/)\n\n## 功能特性\n\n1. 320kbps 的高品质音乐\n2. 歌曲，艺术家，专辑检索\n3. 网易 22 个歌曲排行榜\n4. 网易新碟推荐\n5. 网易精选歌单\n6. 网易主播电台\n7. 私人歌单，每日推荐\n8. 随心打碟\n9. 本地收藏，随时加 ❤\n10. 播放进度及播放模式显示\n11. 现在播放及桌面歌词显示\n12. 歌曲评论显示\n13. 一键进入歌曲专辑\n14. 定时退出\n15. Vimer 式快捷键让操作丝般顺滑\n16. 可使用数字快捷键\n17. 可使用自定义全局快捷键\n18. 对当前歌单列表进行本地模糊搜索\n\n### 键盘快捷键\n\n有 num + 字样的快捷键可以用数字修饰，按键顺序为先输入数字再键入被修饰的键，即 num + 后的快捷键。\n\n| Key                                   | Effect          |                    |\n| ------------------------------------- | --------------- | ------------------ |\n| \u003ckbd\u003ej\u003c/kbd\u003e                          | Down            | 下移               |\n| \u003ckbd\u003ek\u003c/kbd\u003e                          | Up              | 上移               |\n| num + \u003ckbd\u003ej\u003c/kbd\u003e                    | Quick Jump      | 快速向后跳转 n 首  |\n| num + \u003ckbd\u003ek\u003c/kbd\u003e                    | Quick Up        | 快速向前跳转 n 首  |\n| \u003ckbd\u003eh\u003c/kbd\u003e                          | Back            | 后退               |\n| \u003ckbd\u003el\u003c/kbd\u003e                          | Forword         | 前进               |\n| \u003ckbd\u003eu\u003c/kbd\u003e                          | Prev Page       | 上一页             |\n| \u003ckbd\u003ed\u003c/kbd\u003e                          | Next Page       | 下一页             |\n| \u003ckbd\u003ef\u003c/kbd\u003e                          | Search          | 当前列表模糊搜索   |\n| \u003ckbd\u003e\\[\u003c/kbd\u003e                         | Prev Song       | 上一曲             |\n| \u003ckbd\u003e]\u003c/kbd\u003e                          | Next Song       | 下一曲             |\n| num + \u003ckbd\u003e\\[\u003c/kbd\u003e                   | Quick Prev Song | 快速前 n 首        |\n| num + \u003ckbd\u003e]\u003c/kbd\u003e                    | Quick Next Song | 快速后 n 首        |\n| num + \u003ckbd\u003eShift\u003c/kbd\u003e + \u003ckbd\u003eg\u003c/kbd\u003e | Index for Song  | 跳到第 n 首        |\n| \u003ckbd\u003e=\u003c/kbd\u003e                          | Volume +        | 音量增加           |\n| \u003ckbd\u003e-\u003c/kbd\u003e                          | Volume -        | 音量减少           |\n| \u003ckbd\u003eSpace\u003c/kbd\u003e                      | Play/Pause      | 播放/暂停          |\n| \u003ckbd\u003e?\u003c/kbd\u003e                          | Shuffle         | 手气不错           |\n| \u003ckbd\u003em\u003c/kbd\u003e                          | Menu            | 主菜单             |\n| \u003ckbd\u003ep\u003c/kbd\u003e                          | Present/History | 当前/历史播放列表  |\n| \u003ckbd\u003ei\u003c/kbd\u003e                          | Music Info      | 当前音乐信息       |\n| \u003ckbd\u003eShift\u003c/kbd\u003e + \u003ckbd\u003ep\u003c/kbd\u003e       | Playing Mode    | 播放模式切换       |\n| \u003ckbd\u003ea\u003c/kbd\u003e                          | Add             | 添加曲目到打碟     |\n| \u003ckbd\u003eShift\u003c/kbd\u003e + \u003ckbd\u003ea\u003c/kbd\u003e       | Enter Album     | 进入专辑           |\n| \u003ckbd\u003eg\u003c/kbd\u003e                          | To the First    | 跳至首项           |\n| \u003ckbd\u003eShift\u003c/kbd\u003e + \u003ckbd\u003eg\u003c/kbd\u003e       | To the End      | 跳至尾项           |\n| \u003ckbd\u003ez\u003c/kbd\u003e                          | DJ List         | 打碟列表           |\n| \u003ckbd\u003es\u003c/kbd\u003e                          | Star            | 添加到收藏         |\n| \u003ckbd\u003ec\u003c/kbd\u003e                          | Collection      | 收藏列表           |\n| \u003ckbd\u003er\u003c/kbd\u003e                          | Remove          | 删除当前条目       |\n| \u003ckbd\u003eShift\u003c/kbd\u003e + \u003ckbd\u003ej\u003c/kbd\u003e       | Move Down       | 向下移动当前项目   |\n| \u003ckbd\u003eShift\u003c/kbd\u003e + \u003ckbd\u003ek\u003c/kbd\u003e       | Move Up         | 向上移动当前项目   |\n| \u003ckbd\u003eShift\u003c/kbd\u003e + \u003ckbd\u003ec\u003c/kbd\u003e       | Cache           | 缓存歌曲到本地     |\n| \u003ckbd\u003e,\u003c/kbd\u003e                          | Like            | 喜爱               |\n| \u003ckbd\u003e.\u003c/kbd\u003e                          | Trash FM        | 删除 FM            |\n| \u003ckbd\u003e/\u003c/kbd\u003e                          | Next FM         | 下一 FM            |\n| \u003ckbd\u003eq\u003c/kbd\u003e                          | Quit            | 退出               |\n| \u003ckbd\u003et\u003c/kbd\u003e                          | Timing Exit     | 定时退出           |\n| \u003ckbd\u003ew\u003c/kbd\u003e                          | Quit \u0026 Clear    | 退出并清除用户信息 |\n\n## 安装\n\n### 必选依赖\n\n1. `mpg123` 用于播放歌曲，安装方法参见下面的说明\n2. `python-fuzzywuzzy` 用于模糊搜索\n\n### 可选依赖\n\n1. `aria2` 用于缓存歌曲\n2. `libnotify-bin` 用于支持消息提示（Linux 平台）\n3. `qtpy python-dbus dbus qt` 用于支持桌面歌词\n   (根据系统 qt 的版本还需要安装 pyqt4 pyqt4 pyside pyside2 中的任意一个)\n4. `python-levenshtein` 用于模糊搜索\n\n### PyPi 安装（\\*nix 系统）\n\n```bash\n    pip3 install NetEase-MusicBox\n```\n\n### Git clone 安装 master 分支（\\*nix 系统）\n\n```bash\n    git clone https://github.com/darknessomi/musicbox.git \u0026\u0026 cd musicbox\n    poetry build \u0026\u0026 poetry install\n```\n\n### macOS 安装\n\n```bash\n    pip3 install NetEase-MusicBox\n    brew install mpg123\n```\n\n### Linux 安装\n\n**注意：通过以下方法安装可能仍然需要`pip3 install -U NetEase-MusicBox`更新到最新版**。\n\n#### Fedora\n\n首先添加[FZUG](https://github.com/FZUG/repo/wiki)源，然后`sudo dnf install musicbox`。\n\n#### Ubuntu/Debian\n\n```bash\n    pip3 install NetEase-MusicBox\n    sudo apt-get install mpg123\n```\n\n#### Arch Linux\n\n```bash\n    pacaur -S netease-musicbox-git # or $ yaourt musicbox\n```\n\n#### Centos/Red Hat\n\n```bash\n    sudo yum install -y python3-devel\n    pip3 install NetEase-MusicBox\n    wget http://mirror.centos.org/centos/7/os/x86_64/Packages/mpg123-1.25.6-1.el7.x86_64.rpm\n    sudo yum install -y mpg123-1.25.6-1.el7.x86_64.rpm\n```\n\n## 配置和错误处理\n\n配置文件地址: `~/.config/netease-musicbox/config.json`\n可配置缓存，快捷键，消息，桌面歌词。\n由于歌曲 API 只接受中国大陆地区访问，非中国大陆地区用户请自行设置代理（可用 polipo 将 socks5 代理转换成 http 代理）：\n\n```bash\nexport http_proxy=http://IP:PORT\nexport https_proxy=http://IP:PORT\ncurl -L ip.cn\n```\n\n显示 IP 属于中国大陆地区即可。\n\n### 已测试的系统兼容列表\n\n| OS    | Version |\n| ----- | ------- |\n| Arch  | Rolling |\n| macOS | 10.15.7 |\n\n### 错误处理\n\n当某些歌曲不能播放时，总时长为 00:01 时，请检查是否为版权问题导致。\n\n如遇到在特定终端下不能播放问题，首先检查**此终端**下 mpg123 能否正常使用，其次检查**其他终端**下 musicbox 能否正常使用，报告 issue 的时候请告知以上使用情况以及出问题终端的报错信息。\n\n同时，您可以通过`tail -f ~/.local/share/netease-musicbox/musicbox.log`自行查看日志。\nmpg123 最新的版本可能会报找不到声音硬件的错误，测试了 1.25.6 版本可以正常使用。\n\n### 已知问题及解决方案\n\n- [#374](https://github.com/darknessomi/musicbox/issues/374) i3wm 下播放杂音或快进问题，此问题常见于 Arch Linux。尝试更改 mpg123 配置。\n- [#405](https://github.com/darknessomi/musicbox/issues/405) 32 位 Python 下 cookie 时间戳超出了 32 位整数最大值。尝试使用 64 位版本的 Python 或者拷贝 cookie 文件到对应位置。\n- [#347](https://github.com/darknessomi/musicbox/issues/347) 暂停时间超过一定长度（数分钟）之后 mpg123 停止输出，导致切换到下一首歌。此问题是 mpg123 的 bug，暂时无解决方案。\n- [#791](https://github.com/darknessomi/musicbox/issues/791) 版权问题，master 分支已经修复\n\n## 使用\n\n```bash\n    musicbox\n```\n\nEnjoy it !\n\n## 更新日志\n\n2021-01-18 版本 0.3.1 错误修复\n\n2020-10-23 版本 0.3.0 接口更新，错误修复\n\n2018-11-28 版本 0.2.5.4 修复多处错误\n\n2018-06-21 版本 0.2.5.3 修复多处播放错误\n\n2018-06-07 版本 0.2.5.1 修复配置文件错误\n\n2018-06-05 版本 0.2.5.0 全部迁移到新版 api，大量错误修复\n\n[更多\u003e\u003e](https://github.com/darknessomi/musicbox/blob/master/CHANGELOG.md)\n\n## LICENSE\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarknessomi%2Fmusicbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarknessomi%2Fmusicbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarknessomi%2Fmusicbox/lists"}