Skip to content
dsh.fish
Bundle

dsh-netease-music

Netease Cloud Music player for the dsh web GUI: a sidebar entry that plays the logged-in user's liked songs plus search and online playback.

Source
Yuanlang3
stars
1 stars
License
Apache-2.0
Updated
Updated yesterday

Readme

# dsh-netease-music

网易云音乐播放器(DSH Web GUI 插件):在侧边栏底部提供入口,支持搜索在线试听,以及登录后播放「我喜欢的音乐」(红心收藏)。

## 安装

```bash
dsh plugin --profile web add https://github.com/Yuanlang3/dsh-netease-music-plugin
```

安装后重启 DSH(`dsh web`)即可生效。侧边栏底部「设置」上方会出现红色 `♪` 图标。

## 登录「我喜欢的音乐」的方法

两种方式任选:**扫码登录**(推荐,无需手动复制凭证)或 **Cookie + UID**。

### 方式一:扫码登录(推荐)

1. 点侧边栏底部的 `♪` 图标打开播放器。
2. 切到「我喜欢的音乐」标签(会弹出登录框)。
3. 点「扫码登录」,用网易云音乐 App 扫面板上的二维码。
4. 在手机上确认登录,面板会自动完成登录并加载歌单。

> 扫码登录走网易云官方 eapi 接口(`/eapi/login/qrcode/*`,`type=3` 新版客户端协议,带客户端设备指纹)。
> 若返回 `8821 请切换其他登录方式或升级新版本再试`,说明账号或网络触发了风控,请稍等几分钟再试,或改用方式二。

### 方式二:Cookie + UID

要播放「我喜欢的音乐」,需要登录你的网易云账号,共需要两样东西:**Cookie** 和 **UID**。

#### 1. 获取 Cookie

> ⚠️ 关键:登录凭证 `MUSIC_U` 是 **HttpOnly** Cookie,用 `document.cookie` 是拿不到的,必须从请求头里复制。

1. 打开 https://music.163.com 并登录你的账号。
2. 按 `F12` 打开开发者工具,切到 **Network(网络)** 标签。
3. 按 `F5` 刷新页面。
4. 在请求列表里,点任意一个 `music.163.com` 的请求。
5. 在右侧 **Request Headers(请求标头)** 里找到 **Cookie** 那一行。
6. 复制 **Cookie** 后面的整串文本(形如 `MUSIC_U=...; __csrf=...; ...`,关键是里面必须包含 `MUSIC_U=` 这一项)。

#### 2. 获取 UID

任选其一:

- 在 **Console(控制台)** 标签里输入 `GUser.userId` 回车,返回的纯数字就是 UID;
- 或点右上角头像进入个人主页,看地址栏 `id=` 后面的数字。

#### 3. 登录

1. 点侧边栏底部的 `♪` 图标打开播放器。
2. 切到「我喜欢的音乐」标签(会弹出登录框)。
3. 把 **Cookie** 粘到 Cookie 输入框,把 **UID** 粘到 UID 输入框。
4. 点「登录」。

> **Cookie 和 UID 必须是同一个账号的**,否则会查到别的账号(或空歌单)。
> Cookie 会明文暂存在进程内存里,重启 DSH 后清除;用完可点「退出登录」。

## 使用

- **搜索**:无需登录,输入关键词即可搜歌试听。
- **我喜欢的音乐**:登录后加载你的红心收藏列表。
- **播放**:点击歌曲即播放,支持播放/暂停、上一首/下一首、进度条拖拽。
- **悬浮窗口**:播放窗口可按住标题栏**拖拽**到任意位置;点标题栏的「—」可**最小化**成迷你条(歌名 + 播放/暂停),写代码的同时听歌不挡操作,点「▢」展开。

## 说明

- VIP / 版权受限的歌曲无法在线试听(会提示「需 VIP 或版权受限」)。
- 播放地址有时效,每次点歌都会重新获取。
- 歌曲数据、播放地址均由本插件 Host 端代理请求网易云音乐 API 获得。

Install

dsh plugin --profile web add github:Yuanlang3/dsh-netease-music-plugin

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source