使用自己的音乐软件

发布于

最近发现自己网易云音乐的歌曲都没听版权了,听个歌需要在QQ应用和网易云来回转换,太麻烦了,这里我发现了一个支持网易云、虾米音乐、QQ音乐的音乐播放器,不过有些地方需要自己打包部署,这里记录一下打包部署记录

这个音乐播放器一共有4端

如果不需要云歌单的话,则不需要 歌单服务端

PC端有作者打包好的版本,如果不使用云歌单的话,直接可以下载打包好的版本,而Android端则需要自己打包

因为Android端网易云音乐Api有每天 6 小时的强制休眠时间,且有请求限制,推荐自己搭建 网易云音乐的Api

歌单服务端

  • 环境要求
  • mysql >= 5.7.8

安装步骤

# 从Github仓库拉取代码
# 如果觉的慢可以使用我搭建的GitHub镜像 https://github.guiyunweb.com/sunzongzheng/player-be.git
git clone https://github.com/sunzongzheng/player-be.git
# 安装依赖
npm install
# 设置配置文件
cp config/default.js config/local.js

修改配置文件

module.exports = {
    env: "development",
    // 服务端口配置
    server: {
        host: "127.0.0.1",
        port: 8080,
        socket: 8081
    },
    // 数据库配置
    sequelize: {
        host: process.env.APP_MYSQL_HOST || "172.17.0.10",
        port: process.env.APP_MYSQL_PORT || 3306,
        database: process.env.APP_MYSQL_DATABASE || "player",
        username: process.env.APP_MYSQL_USER || "root",
        password: process.env.APP_MYSQL_PASSWORD || "123456",
        dialect: "mysql",
        pool: {
            max: 5,
            min: 0,
            idle: 10000
        },
        timezone: "+08:00",
        logging: false,
        operatorsAliases: false
    },
    session: {
        secret: "secret",
        resave: false,
        saveUninitialized: false
    },
    qqStrategyOption: {
        clientID: 100000,
        clientSecret: "clientSecret",
        callbackURL: "https://127.0.0.1:8080/auth/qq/callback"
    },
    weiboStrategyOption: {
        clientID: 100000,
        clientSecret: "clientSecret",
        callbackURL: "https://127.0.0.1:8080/auth/weibo/callback"
    },
    // 使用GitHub登录
    githubStrategyOption: {
        clientID: '94377',
        clientSecret: "Iv1.0e85a3fb95d31468",
        callbackURL: "https://127.0.0.1:8080/auth/github/callback"
    },
    email: {
        transporter: {
            host: "smtp.163.com",
            secureConnection: true,
            port: 465,
            secure: true,
            auth: {
                user: "user",
                pass: "pass"
            }
        },
        to: "to@email"
    },
    emailSendENV: [
        "production", "test"
    ],
    avoidNotifyIDList: [],
    jwtKey: "jwtKey",
    webhook: {
        path: '/webhook',
        port: 8338,
        secret: 'webhook'
    },
    blacklist: [],
    administrators: []
}

这里第三方登录支持QQ,微博,GitHub 这里推荐使用Github设置

GitHub在setting -> Developer settings ->OAuth Apps

新建一个new OAuth app

回调地址是 https://127.0.0.1:8080/auth/github/callback 的公网地址,请根据你应用的实际地址修改

填写完成点击创建

搭建自己的音乐平台

然后进入设置页面,在设置页面点击生成密钥

屏幕截图 2020-12-30 235844

生成完成后把githubStrategyOption 配置修改完成就Ok了

    githubStrategyOption: {
        clientID: '94377',
        clientSecret: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx",
        callbackURL: "https://127.0.0.1:8080/auth/github/callback" //这个改成公网的回调地址
    },
部署

这里推荐使用pm2部署,如果没有安装pm2则输入下面命令安装

npm install pm2@latest -g
# 使用PM2运行
pm2 start pm2.production.json

也可以使用**npm run start **进行安装

PC端

  • 榜单、云歌单、登录功能均依赖歌单服务端,如果不需要这些功能,可以直接使用打包版本 下载链接
  • 环境要求:
    • Node,12 ~13
    • yarn(推荐)
# 从Github仓库拉取代码
git clone https://github.com/sunzongzheng/music.git

# 进入项目里进行依赖安装 或者使用npm install
yarn 

如果yarn依赖安装慢的话查看我的 yarn 变换为淘宝镜像源 这篇文章更换依赖源

修改仓库里的config/index.js文件

// api: 云歌单服务地址
// socket: socket 服务地址,socket 用于在线人数统计,简易聊天室,不需要可以不填
export default {
    api: 'http://your-player-be-address',
    socket: 'http://your-player-be-address'
}

修改完成后,进行打包服务

# 打包命令 或者使用npm run build
yarn run build

进入releases文件就可以看见打包好的文件,直接进行安装就可以了

搭建自己的音乐平台2

Android

  • Android版本没有打包版,所以需要自己打包

  • 安卓端很简单,下载 MusicLake 代码,导入到Android Studio里面打包就可以了

  • 安卓端的网易云音乐API部署leanCloud上面的,因为是leanCloud的体验实例,所以有每天 6 小时的强制休眠时间,而且每天的请求次数也有 限制,所以不稳定。如果有服务器推荐自己搭建,源码地址 NeteaseCloudMusicApi

Screenshot_2020-12-31-11-13-14-58_b41ecb81ddd09a0

网易云音乐Api搭建
# 拉去网易云音乐Api源码
git clone https://github.com/Binaryify/NeteaseCloudMusicApi.git
# 安装依赖
npm install

# 运行服务
node app.js

服务器启动默认端口为 3000,若不想使用 3000 端口

PORT=4282 node app.js

我自己个人推荐使用PM2 运行

pm2 --name NeteaseCloudMusicApi start app.js

不想使用3000端口的话,修改app.js 第110行代码

const port = process.env.PORT || 4282

在使用运行

pm2 --name NeteaseCloudMusicApi start app.js

评论