Sign inSign up

spf20081/yesplaymusic

By spf20081

•Updated 9 months ago

Image
0

5.6K

spf20081/yesplaymusic repository overview

⁠YesPlayMusic 功能介绍

⁠原有功能

YesPlayMusic 是一款高颜值的第三方网易云音乐播放器,支持 Windows / macOS / Linux / Docker 部署。

⁠核心功能
  • 🎵 音乐播放 - 支持播放网易云音乐曲库中的歌曲
  • 🔍 搜索 - 搜索歌曲、专辑、歌手、歌单
  • 📋 歌单 - 浏览和播放歌单,支持创建和管理个人歌单
  • 💿 专辑 - 浏览专辑详情和曲目列表
  • 🎤 歌手 - 查看歌手主页、热门歌曲、专辑
  • ❤️ 音乐库 - 管理喜欢的音乐、专辑、歌手、MV
  • 📝 歌词 - 支持歌词显示,包括翻译歌词
  • 🎨 主题 - 支持浅色/深色/自动主题切换
  • 🌐 多语言 - 支持中文、英文等多种语言
⁠播放功能
  • 播放/暂停、上一首/下一首
  • 播放模式:顺序播放、随机播放、单曲循环
  • 音量控制
  • 播放列表管理
  • 心动模式

⁠新增功能

⁠1. GD Studio 音源支持

使用 GD Studio API 作为主要音源,解决部分歌曲无法播放的问题。

特点:

  • 支持多种音质:128kbps、192kbps、320kbps、无损(FLAC)
  • 自动回退到备用音源
  • 通过代理避免跨域问题

⁠2. 下载功能

支持将歌曲下载到本地或 Docker 容器内部。

⁠2.1 下载位置

在 设置 → 下载 → 下载位置 中选择:

  • 本地目录 - 下载到浏览器默认下载目录
  • 容器内部 - 下载到 Docker 容器的 /app/downloads 目录
⁠2.2 下载音质

支持选择下载音质:

  • 128kbps
  • 192kbps
  • 320kbps
  • FLAC (无损)
⁠2.3 下载方式

单曲下载:

  • 右键点击歌曲 → 选择"下载歌曲"

批量下载:

  1. 进入歌单或专辑页面
  2. 点击"选择"按钮进入选择模式
  3. 勾选要下载的歌曲(或点击"全选")
  4. 点击"下载所选"按钮
⁠2.4 下载管理器

当下载位置设置为"容器内部"时,页面右下角会显示悬浮按钮,点击可打开下载管理器。

功能:

  • 查看下载队列和进度
  • 查看下载历史
  • 从容器下载文件到本地
  • 删除已下载的文件

也可以在 设置 → 下载 → 打开下载管理器 中打开。


⁠3. 元数据内嵌

下载的歌曲会自动内嵌以下元数据:

MP3 格式 (ID3 标签):

  • 标题、艺术家、专辑
  • 年份、曲目编号
  • 专辑封面
  • 歌词 (USLT 帧)

FLAC 格式 (Vorbis Comment):

  • 标题、艺术家、专辑
  • 年份、曲目编号
  • 专辑封面 (PICTURE 块)
  • 歌词 (LYRICS 标签)

⁠4. 喜欢的歌曲自动同步

自动将"喜欢的音乐"歌单中的歌曲下载到容器。

⁠4.1 启用方法
  1. 设置 → 下载 → 下载位置 → 选择"容器内部"
  2. 开启"自动同步喜欢的歌曲"
⁠4.2 相关设置
设置项说明
同步间隔(秒)自动检查新歌曲的时间间隔,默认 300 秒(5分钟),最小 30 秒
立即同步手动触发一次同步
跳过已删除的歌曲手动删除的歌曲不会重新下载
删除时取消喜欢删除歌曲时自动取消喜欢(从喜欢列表移除)
清空已删除列表清空已删除记录,允许这些歌曲重新被同步
⁠4.3 工作原理
  1. 定时获取"喜欢的音乐"歌单
  2. 对比容器中已下载的文件
  3. 检测手动删除的文件并记录
  4. 下载新增的歌曲(跳过已存在和已删除的)

⁠5. 删除歌曲管理

在下载管理器中删除歌曲时:

  1. 从容器中删除文件
  2. 记录到"已删除列表"(防止重新同步)
  3. 如果开启"删除时取消喜欢",会自动取消喜欢该歌曲

注意: 如果直接在文件系统中删除文件(而不是通过下载管理器),同步时会自动检测并记录到已删除列表。


⁠Docker 部署

⁠使用 docker-compose
version: '3'
services:
  yesplaymusic:
    build: .
    ports:
      - "80:80"
    volumes:
      - ./downloads:/app/downloads  # 挂载下载目录
    restart: unless-stopped
⁠启动命令
# 构建并启动
docker-compose up -d

# 全量重新构建
docker-compose build --no-cache
docker-compose up -d
⁠访问

打开浏览器访问 http://localhost


⁠文件结构

新增/修改的主要文件:

src/
├── api/
│   └── download.js          # 下载 API(GD Studio 音源)
├── components/
│   └── DownloadManager.vue  # 下载管理器组件
├── store/
│   ├── downloadManager.js   # 下载状态管理
│   └── initLocalStorage.js  # 新增下载相关设置
├── utils/
│   ├── download.js          # 下载工具函数
│   ├── likedSongsSync.js    # 喜欢歌曲同步服务
│   └── Player.js            # 播放器(使用新音源)
├── views/
│   ├── settings.vue         # 设置页面(新增下载设置)
│   ├── playlist.vue         # 歌单页面(新增批量下载)
│   └── album.vue            # 专辑页面(新增批量下载)
└── locale/lang/
    └── zh-CN.js             # 中文翻译

server/
└── download-server.js       # 下载服务后端(元数据内嵌)

⁠常见问题

⁠Q: 为什么有些歌曲显示灰色无法播放?

A: 部分歌曲可能因版权限制无法获取音源。新版本已通过 GD Studio API 解决大部分问题。

⁠Q: 下载的歌曲在哪里?

A:

  • 本地下载:浏览器默认下载目录
  • 容器下载:/app/downloads 目录(可通过 docker-compose 挂载到本地)
⁠Q: 如何查看/管理已下载的歌曲?

A: 点击页面右下角的悬浮按钮打开下载管理器,或在设置页面点击"打开下载管理器"。

⁠Q: 删除的歌曲为什么还会重新下载?

A: 请通过下载管理器删除歌曲,这样会记录到已删除列表。如果直接删除文件,下次同步时会自动检测并记录。

⁠Q: 如何让已删除的歌曲重新下载?

A: 在设置中点击"清空已删除列表",然后手动同步或等待自动同步。

Tag summary

Content type

Image

Digest

sha256:30a3b74cc…

Size

78.9 MB

Last updated

9 months ago

docker pull spf20081/yesplaymusic