第三方网易云音乐播放器YesPlayMusic
Jan. 22, 2022
YesPlayMusic 是非常美观的第三方网易云音乐播放器。其设计精美,播放体验优异。
它使用 Vue.js 和 Electron 框架开发,支持 Windows 、 macOS 、 Linux。如果需要容器版本,则需要自己构建。
YesPlayMusic 依赖于另一个开源项目 Binaryify/NeteaseCloudMusicApi 的部署, 因此 API URL 是不能预先设定的。
FROM node:16.5 as build-deps
MAINTAINER laosu<wbsu2003@gmail.com>
# environment
ENV VUE_APP_NETEASE_API_URL netease_vanau
ENV VUE_APP_ELECTRON_API_URL netease_vaeau
ENV VUE_APP_ELECTRON_API_URL_DEV netease_vaeaud
ENV VUE_APP_LASTFM_API_KEY netease_valak
ENV VUE_APP_LASTFM_API_SHARED_SECRET netease_valass
ENV DEV_SERVER_PORT netease_dsp
WORKDIR /app
COPY package.json yarn.lock ./
RUN yarn
COPY . ./
RUN yarn build
FROM nginx:1.12-alpine
COPY --from=build-deps /app/dist /usr/share/nginx/html
COPY --from=build-deps /app/replace_api_url.sh /
CMD ["sh", "replace_api_url.sh"]
EXPOSE 80
replace_api_url.sh 用于替换 ENV 设置的占位符
#!/usr/bin/env sh
find '/usr/share/nginx/html' -name '*.js' -exec sed -i -e 's,netease_vanau,'"$VUE_APP_NETEASE_API_URL"',g' {} \;
find '/usr/share/nginx/html' -name '*.js' -exec sed -i -e 's,netease_vaeau,'"$VUE_APP_ELECTRON_API_URL"',g' {} \;
find '/usr/share/nginx/html' -name '*.js' -exec sed -i -e 's,netease_vaeaud,'"$VUE_APP_ELECTRON_API_URL_DEV"',g' {} \;
find '/usr/share/nginx/html' -name '*.js' -exec sed -i -e 's,netease_valak,'"$VUE_APP_LASTFM_API_KEY"',g' {} \;
find '/usr/share/nginx/html' -name '*.js' -exec sed -i -e 's,netease_valass,'"$VUE_APP_LASTFM_API_SHARED_SECRET"',g' {} \;
find '/usr/share/nginx/html' -name '*.js' -exec sed -i -e 's,netease_dsp,'"$DEV_SERVER_PORT"',g' {} \;
nginx -g "daemon off;"
构建镜像和容器运行的基本命令如下👇
# 下载代码,当前对应的是 0.4.1
git clone https://github.com/qier222/YesPlayMusic.git
# 或者镜像站点
git clone https://hub.fastgit.org/qier222/YesPlayMusic.git
# 进入目录
cd YesPlayMusic
# 将 Dockerfile 和 replace_api_url.sh 放进代码目录中
# 构建镜像
docker build -t wbsu2003/yesplaymusic:v1 .
# 生成容器
docker run -d \
--name=yesplaymusic \
-p 3310:80 \
-e VUE_APP_NETEASE_API_URL=http://192.168.0.114:3000 \ # 网易云 API 地址
wbsu2003/yesplaymusic:v1
# --------调试-------------
# 将生成的静态文件拷贝到容器外
docker cp yesplaymusic:/usr/share/nginx/html/. ./dist
# 将生成的静态文件拷贝到容器内
docker cp /dist/. yesplaymusic:/usr/share/nginx/html
# ------------------------
在群晖上以 Docker 方式安装。
先部署 API。在注册表中搜索 binaryify ,选择第一个 binaryify/netease_cloud_music_api,双击直接下载。
端口 端口不冲突就行
本地端口 容器端口 3300 3000
运行 在浏览器中输入 http://群晖IP:3300 就能看到主界面,看到界面表示服务已经运行成功了
网易云音乐播放器 注册表中搜索 wbsu2003 ,找到 wbsu2003/yesplaymusic,版本选 latest。
端口 端口不冲突就行
本地端口 容器端口 3310 80
环境
可变 值 VUE_APP_NETEASE_API_URL 网易云 API 地址 VUE_APP_LASTFM_API_KEY Last.fm 获取的 API Key VUE_APP_LASTFM_API_SHARED_SECRET Last.fm 获取的 Shared Secret 如果你还没有 Last.fm 账号,可以去 https://www.last.fm/api/account/create 创建一个 API 帐户。
目前情况下只设置 VUE_APP_NETEASE_API_URL 即可
VUE_APP_NETEASE_API_URL 是必须要的,后两项为可选项,不填也不影响使用
参考文档
- qier222/YesPlayMusic: 高颜值的第三方网易云播放器 https://github.com/qier222/YesPlayMusic
- Binaryify/NeteaseCloudMusicApi: 网易云音乐 Node.js API service https://github.com/Binaryify/NeteaseCloudMusicApi
- 网易云音乐 NodeJS 版 API https://binaryify.github.io/NeteaseCloudMusicApi/#/?id=%e5%ae%89%e8%a3%85