logo NodeSeekbeta

搭建个人音乐服:从部署Navidrome、刮削音乐到享受音流APP

本文首发至个人博客

写在前面

本文部署过程略显复杂,建议新手朋友搭配宝塔面板食用。
本教程包含:Navidrome部署、音乐刮削、音流APP使用、歌词API搭建。

Navidrome简介

image
Navidrome 是一个自托管的开源音乐服务器和流媒体。它让您可以自由地从任何浏览器或移动设备收听您的音乐收藏。

注意事项

本文所有docker配置均仅允许本地访问,即均需使用nginx反代访问。

安装docker

curl -sSL https://get.docker.com/ | sh

Docker搭建Navidrome音乐服

创建docker compose配置文件

mkdir -p /data/music/compose
cd /data/music/compose
vim docker-compose.yml

写入以下内容,部分内容需要自行更改

version: "3"
services:
  navidrome:
    image: deluan/navidrome:latest
    ports:
      - "127.0.0.1:4533:4533"
    environment:
      # Optional: put your config options customization here. Examples(这些都是可选的):
      ND_SCANSCHEDULE: 1m
      ND_LASTFM_ENABLED:
      ND_LASTFM_APIKEY: 86e0b415978bc46 # 修改成自己的APIKEY
      ND_LASTFM_SECRET: 9a9aec5e5be48f23  # 修改成自己的SECRET
      ND_SPOTIFY_ID: eb662a6a878c1ec  # 修改成自己的ID
      ND_SPOTIFY_SECRET: 5e8941a05b2e3267d6  # 修改成自己的SECRET
      ND_LASTFM_LANGUAGE: zh
      ND_LOGLEVEL: info
      ND_SESSIONTIMEOUT: 24h
      ND_BASEURL: ""
      ND_ENABLETRANSCODINGCONFIG: "true"
      ND_TRANSCODINGCACHESIZE: "4000M"
      ND_IMAGECACHESIZE: "1000M"
    volumes:
      - "./data:/data"
      - "/data/music:/music:ro"  # 冒号左边修改成自己本地的音乐文件夹路径
  miniserve:
    image: svenstaro/miniserve:latest
    depends_on:
      - navidrome
    ports:
      - "4534:8080"
    volumes:
      - "/data/music:/downloads"  # 冒号左边修改成自己本地的音乐文件夹路径
    command: "-r -z -u -q -p 8080 -a Chitanda:Oreki /downloads"  # Chitanda:Oreki 修改成自己的账号:密码
    restart: unless-stopped

其中lashfm和Spotify为外部api,可调用专辑和歌手信息,可选择是否启用,如不启用请删除(该两项服务均不面向中国大陆服务,大陆服务器部署建议删除有关参数)
如不需要可以使用这个配置

version: "3"
services:
  navidrome:
    image: deluan/navidrome:latest
    ports:
      - "127.0.0.1:4533:4533"
    environment:
      # Optional: put your config options customization here. Examples(这些都是可选的):
      ND_SCANSCHEDULE: 1m
      ND_LASTFM_LANGUAGE: zh
      ND_LOGLEVEL: info
      ND_SESSIONTIMEOUT: 24h
      ND_BASEURL: ""
      ND_ENABLETRANSCODINGCONFIG: "true"
      ND_TRANSCODINGCACHESIZE: "4000M"
      ND_IMAGECACHESIZE: "1000M"
    volumes:
      - "./data:/data"
      - "/data/music:/music:ro"  # 冒号左边修改成自己本地的音乐文件夹路径
  miniserve:
    image: svenstaro/miniserve:latest
    depends_on:
      - navidrome
    ports:
      - "4534:8080"
    volumes:
      - "/data/music:/downloads"  # 冒号左边修改成自己本地的音乐文件夹路径
    command: "-r -z -u -q -p 8080 -a Chitanda:Oreki /downloads"  # Chitanda:Oreki 修改成自己的账号:密码
    restart: unless-stopped

Lashfm api创建

访问Lashfm api官网创建api。
获取API Key 和 Shared Secret ID,填入docker compose配置文件

Spotify api创建

访问spotify官网创建api。
获取Client ID 和 Client Secret,填入docker compose配置文件。

纯文字api创建教程看不懂可以访问Navidrome官网阅读官方写的图文教程,为缩短篇幅,本处不再详细介绍api创建。

启动Navidrome音乐服

docker-compose up -d

反代Navidrome音乐服

#PROXY-START/

location ^~ /
{
    proxy_pass http://127.0.0.1:4533;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_http_version 1.1;
    # proxy_hide_header Upgrade;

    add_header X-Cache $upstream_cache_status;
    #Set Nginx Cache

    set $static_filemTH5IpAC 0;
    if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" )
    {
        set $static_filemTH5IpAC 1;
        expires 1m;
    }
    if ( $static_filemTH5IpAC = 0 )
    {
        add_header Cache-Control no-cache;
    }
}
#PROXY-END/

配置Navidrome音乐服

登录并进入后台

image

设置中文

image

开启Lashfm

image

搜集并上传音乐

搜集途径提示:某酷音乐破解版、F12抓去、APP抓包、公开分享网站下载。
推荐一个下载网站:my free mp3,在此感谢该站站长的无私奉献。
下载后,上传至/data/music文件夹下,如果你修改了前面docker的路径,这里上传至你设定的路径。 上传后,等待几秒,Navidrome会自动加载,此时字幕、封面均没有,这时就要对音乐刮削了。

刮削音乐

本步骤使用Music Tag Web进行刮削。

部署Music Tag Web

mkdir -p /data/music_config
docker run -d -p 127.0.0.1:8002:8002 -v /data/music:/app/media -v /data/music_config:/app/data --restart=always xhongc/music_tag_web:latest

docker拉取后,自行反代访问。

编辑音乐

手动刮削

点击左侧音乐列表,选中目标音乐,手动输入、上传元数据。
image

自动刮削

多选歌曲,点击自动刮削。
image
至此,Navidrome音乐服的搭建和音乐上传、刮削均已完成。
从Navidrome界面来看确实不算美观,并且不适合手机使用,综上本文推荐友友使用音流这款app搭配Navidrome音乐服。

导入Navidrome到音流

音流专注于音乐. 支持常见的音乐服务,让您可以通过一个客户端访问多种音乐服务。 跨平台支持. 可在Android、iOS、macOS 和Windows 上使用,并提供与平台一致的体验。

下载并安装音流

访问官网安装音流。

导入Navidrome数据

选择Navidrome

image
输入地址及账号密码
image
至此导入完毕,如未进行音乐刮削-挂在歌词、专辑封面,播放音乐后是没有歌词和封面显示的,这是就需要使用LrcApi。

搭建并使用LrcApi

如可以自行刮削,可以不部署LrcApi。

Docker部署

docker run -d \
    -p 127.0.0.1:28883:28883 \
    -v /home/user/music:/music \
    -e API_AUTH=自定义一个鉴权key \
    hisatri/lrcapi:latest

部署后,自行反代。

导入LrcApi至音流APP

点击自定义API,输入地址、密钥
image
至此,音乐服搭建及使用已经正式完结,Enjoy your music server。

相关项目地址

navidrome
music-tag-web
音流
LrcApi

  • 麻烦。 花钱解决。

  • 好文,点赞加鸡腿,博客ip+1

  • 有没有网盘版的使用方法

  • 感谢分享,鸡腿奉上 xhj003

  • 加鸡腿,点赞收藏

  • 好好好,我喜欢听歌 xhj015

  • 搭建不难,难的是没有资源

  • bd

  • 好文,但是听个歌整这些太麻烦了。

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有61018位seeker

🎉欢迎新用户🎉