{"id":35180717,"url":"https://github.com/dsy4567/rpi-tools","last_synced_at":"2026-04-13T09:31:18.144Z","repository":{"id":222926897,"uuid":"758577726","full_name":"dsy4567/rpi-tools","owner":"dsy4567","description":"把树莓派 / Linux 机器改造成娱乐工具，亦可用作无需屏幕的第三方网易云音乐客户端","archived":false,"fork":false,"pushed_at":"2025-02-02T14:47:56.000Z","size":340,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-02T15:31:51.759Z","etag":null,"topics":["mpg123","music-player","netease-cloud-music","neteasecloudmusicapi","nodejs","raspberry-pi"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/dsy4567.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-16T16:09:43.000Z","updated_at":"2025-02-02T14:48:00.000Z","dependencies_parsed_at":"2024-02-24T08:29:36.170Z","dependency_job_id":"4a77bb22-8754-4553-b4f7-c37054d881d0","html_url":"https://github.com/dsy4567/rpi-tools","commit_stats":null,"previous_names":["dsy4567/rpi-tools"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dsy4567/rpi-tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsy4567%2Frpi-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsy4567%2Frpi-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsy4567%2Frpi-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsy4567%2Frpi-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dsy4567","download_url":"https://codeload.github.com/dsy4567/rpi-tools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsy4567%2Frpi-tools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31746290,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T09:16:15.125Z","status":"ssl_error","status_checked_at":"2026-04-13T09:16:05.023Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["mpg123","music-player","netease-cloud-music","neteasecloudmusicapi","nodejs","raspberry-pi"],"created_at":"2025-12-29T01:19:30.760Z","updated_at":"2026-04-13T09:31:18.132Z","avatar_url":"https://github.com/dsy4567.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rpi-tools\n\n把树莓派 / Linux 机器改造成娱乐工具。\n\n## ✨ 特色\n\n-   纯键盘/蓝牙耳机 + 文字转语音交互，无需屏幕\n-   专为难以联网的使用场景设计\n-   代码很烂\n\n## 💩 主要功能\n\n-   网易云音乐\n    -   搜索单曲/歌单\n    -   更新歌单/日推\n    -   MV 转音频（针对付费音乐）\n    -   按 id 下载歌单（支持心动模式）/ 单曲\n    -   清理/修复音乐\n    -   离线点赞，联网后同步\n-   拍照（使用 `rpicam`）\n-   蓝牙耳机切歌/使用快捷菜单进行常用操作\n-   崩溃保护\n    -   多次崩溃后使用 [Music On Console](https://github.com/jonsafari/mocp) 提供最低限度的音乐播放服务\n\n## 🛠 安装\n\n\u003e rpi-tools 仅可在 Linux 平台运行，如需在 Windows 进行开发，可在 Win 安装依赖后使用 WSL 或 Linux 虚拟机运行\n\n1. 下载源码，安装依赖\n\n    ```bash\n    # 安装音频服务 pipewire\n    sudo apt install pipewire pipewire-pulse pulseaudio-utils\n    # 或 pulseaudio\n    sudo apt install pulseaudio pulseaudio-module-bluetooth\n\n    # 安装其他必须依赖\n    sudo apt install mpg123 espeak bluez bluez-tools\n\n    # 非必须但建议安装的依赖，不安装会导致少量功能残缺\n    sudo apt install moc cpufrequtils ffmpeg screen\n\n    # 安装最新版的 nodejs\n    curl -fsSL https://www.unpkg.com/n/bin/n | bash -s latest\n\n    # 克隆仓库，安装依赖\n    git clone --recursive https://github.com/dsy4567/rpi-tools\n    cd rpi-tools\n    sudo npm i -g pnpm\n    pnpm i --no-optional\n\n    # 如果开发时遇到编辑器自动补全异常，请尝试执行以下命令\n    cd ./NeteaseCloudMusicApi\n    pnpm i --no-optional\n    cd ./NeteaseCloudMusicApi-hook\n    pnpm i --no-optional\n\n    ```\n\n2. 配置 sudo 免密（用于关机重启、设置进程优先级、使用 `rpicam` 拍照等）\n\n3. 登录网易云音乐（可选）\n\n    \u003e **⚠ 警告：登录第三方网易云音乐客户端存在较大封号风险**\n\n    在 `rpi-tools/data/` 文件夹下创建 `ncmCookie.txt`，内容参考：\n\n    ```text\n    MUSIC_U=******;\n    ```\n\n    或者，按照控制台输出的提示，使用浏览器登录网易云音乐\n\n4. 运行\n\n    ```bash\n    bash ./run.sh\n    ```\n\n## 🕺 操作方法\n\n### 🎧 蓝牙耳机\n\n| 按键        | 操作                                                             |\n| ----------- | ---------------------------------------------------------------- |\n| 播放/暂停键 | 播放/暂停，选中菜单                                              |\n| 上一曲      | 打开快捷菜单（播放状态下），上一曲（暂停状态下），选择上一个菜单 |\n| 下一曲      | 下一曲（播放状态下），打开快捷菜单（暂停状态下），选择下一个菜单 |\n\n### ⌨ 键盘\n\n无特别说明的按键均需在主页下使用\n\n| 按键               | 操作                                                |\n| ------------------ | --------------------------------------------------- |\n| `H`                | 查看当前可用按键                                    |\n| `b` / `n`          | 上、下一曲/选项                                     |\n| `Space`            | 播放/暂停                                           |\n| `m`                | 打开快捷菜单                                        |\n| `Esc` / `Del`      | 返回上一级菜单                                      |\n| `g` / `h`          | 音量-/+ 3%                                         |\n| `t` / `y`          | 音量-/+ 5%                                         |\n| `p`                | 切换歌单（按 `b` / `n` / `Enter` 选择和确认项目）   |\n| `U`                | 更新歌单（按 `b` / `n` / `Enter` 选择和确认项目）   |\n| `0` ~ `9`          | 快速切换歌单                                        |\n| `N`                | 顺序播放                                            |\n| `R`                | 单曲循环                                            |\n| `S`                | 随机播放                                            |\n| `i`                | 当前音乐信息                                        |\n| `L`                | 说出歌词                                            |\n| `l`                | 添加到喜欢（按 `b` / `n` / `Enter` 选择和确认项目） |\n| `D`                | 下载（按 `b` / `n` / `Enter` 选择和确认项目）          |\n| `s`                | 搜索                                                |\n| `Q` / `Ctrl` + `C` | 退出                                                |\n\n| 更多选项 |                                                               |\n| -------- | ------------------------------------------------------------- |\n| `M`      | 进入更多选项                                                  |\n| `c`      | 使用 `rpicam-still` 拍照                                      |\n| `S`      | 立即关机（更多选项下）                                        |\n| `s`      | 40 分钟后关机（更多选项下）                                   |\n| `p`      | 性能选项（更多选项下，按 `b` / `n` / `Enter` 选择和确认项目） |\n\n## 📄 快捷菜单项\n\n-   喜欢\n-   下一曲\n-   网易云音乐-更多选项\n    -   选择播放列表\n    -   更新播放列表\n    -   歌曲信息\n    -   更新登录信息\n    -   取消全部下载任务\n    -   删除播放列表\n-   电源\n    -   关机\n    -   定时关机\n    -   重启\n-   小工具\n    -   拍照\n-   上一曲\n\n## 🕒 待开发\n\n- 使用 TypeScript 重写\n- 添加对 B 站视频的支持\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdsy4567%2Frpi-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdsy4567%2Frpi-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdsy4567%2Frpi-tools/lists"}